resumen ligero primer modulo:
Introducción al curso
Introducción al curso de Profesional de Arquitectura de Software
Atributos de calidad
Definición
Atributos: Idoneidad funcional
Atributos: Eficiencia de ejecución
Atributos: Compatibilidad
Atributos: Usabilidad
Atributos: Confiabilidad
Atributos: Seguridad
Atributos: Mantenibilidad
Atributos: Portabilidad
Tensiones entre atributos
Analizando PlatziServicios
Patrones de arquitectura
Patrones monolíticos vs distribuidos
Patrones: Modelo Vista Controlador
Patrones: Capas
Patrones: Orientado a eventos / Provisión de eventos.
Patrones: Microkernel - Plug-ins
Patrones: Comparte-nada
Patrones: Microservicios
Patrones: CQRS
Patrones: Hexagonal - Puertos y adaptadores
Patrones: Diseño orientado al dominio
Combinando patrones de arquitectura
Analizando nuevamente PlatziServicios
Diseño de una arquitectura
Pararse en hombros de gigantes
Herramientas y partes de un diseño: Tipos de conectores
Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.
Conectores: Enrutador, difusión
Conectores: Pizarra, repositorio, colas, modelo PUBSUB
Escenarios y tácticas
Escenarios: Disponibilidad, detección, reparación
Escenarios: Reintroducción y prevención
Escenarios: Mantenibilidad
Escenarios: Prevenir efectos dominó y diferir enlace
Escenarios: Eficiencia de ejecución
Escenarios: Seguridad
Escenarios: Capacidad de prueba
Escenarios: Usabilidad
Validar las decisiones de diseño: Arquitectura en evolución
Último análisis a PlatziServicios
Modelado y documentación de arquitectura
Cómo comunicar la arquitectura: Vistas y Puntos de vista
Documentación vs implementación
Conclusiones del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 14
Preguntas 1
resumen ligero primer modulo:
Cuando mas grande es el sistema mas capacidad de prueba debe tener para asegurar que ningún cambio rompe funcionalidades anteriores.
A medida que avanza un proyecto se pueden ir usando los atributos de calidad para tomar mejores decisiones de diseño a la hora de implementar una solución.
No hay que implementar todos los atributos a la vez pero una vez que se vayan usando hay que vigilar que no se genere tensión entre los atributos y que un debilite a otro.
Priorizar los atributos y atacarlos en orden
"Aplicando atributos de calidad en base a la madurez del proyecto"
Hay que priorizar los atributos y atacarlos uno a uno
StartUp:
Confiabilidad: Madurez y disponibilidad
Seguridad: Autenticidad y confidencialidad
Compatibilidad: Interoperabilidad
En crecimiento:
Eficiencia de ejecución: Uso de recursos y capacidad
Compatibilidad: Interoperabilidad
Seguridad: Comprobación de hechos, traza de responsabilidad, confidenciabilidad
Gran escala
Usabilidad: Accesibilidad, reconocimiento de idoneidad, operabilidad
Mantenibilidad: Modularidad, capacidad de prueba, capacidad de modificación
Confiabilidad: Tolerancia a fallos, capacidad de recuperación
Atributos de calidad de una start up:
Confiabilidad: representa que cuando quiera acceder este disponible.
Seguridad: Verificar autenticidad de quien ingrese, o sea el usuario.
Compatibilidad: Que sea apato a comunicarse con otros sistemas.
ATRIBUTOS DE CALIDAD EN CRECIMIENTO
Eficiencia de ejecución: Como empresa prestadora necesito medir el rendimineto de mis profesionales para comprender mi proprio crecimiento.
Compatibilidad > Interoperabilidad > Significa que otros sistemas puedan comunicarse con el nuestro sistema, puede ser lo mismo con una API , extracción o envio de datos.
Seguridad> Comprobación de hecho > traza de responsabilidad> Confidencialidad> Es un termino sencillo , y lo que se trata es de la seguridad juridica.
Usabilidad > accesibilidad > reconocimiento de idoneidad> operabilidad > Una forma de atender esa característica es teniendo el idioma del usuario.
Mantenibilidad>capacidad de prueba>capacidad de modificación: Ese punto se trata que tan accesible es dar mantenimiento al sistema.
Confiabilidad> tolerancia a fallos>capacidad de recuperación: que tan seguro son los datos guardados en el sistema y que capacidad de recuperación tiene el sistema.
Una de las cosas más importantes al momento de identificar los atributos de calidad es que sean detallados y medibles. La arquitectura puede cambiar bastante si puedo esperar segundos incluso minutos para obtener un resultado, como en un reporte, a si debe ser en tiempo cercano al real, como un sensor de un avión. Eso naturalmente depende del negocio, pero es importante saber sin lugar a ambiguedades la disponibilidad, seguridad, desempeño, etc que de verdad requirere el sistema y con base en eso priorizar.
Es lo que conecta los requerimientos del usuario con la forma en que se implementa en el sistema.
Completitud funcional: cuan completa esta la implementación con respecto a lo que se espera.
Exactitud funcional: Cuan preciso es el sistema al implementar.
Pertinencia funcional: Cuan alineado esta lo que se implementa con lo que se necesita.
trata de cuan bueno o eficiente es el sistema a la hora de responder a lo que el usuario necesita y que tan bien gestiona los recursos.
Tiempo a comportamiento: Que tan bueno es el tiempo de respuesta.
Uso de recursos: Cuanto el sistema aprovecha los recursos.
Capacidad: Cuales son las limitaciones del sistema y si corresponden con las esperadas.
Que tanto puede el sistema interoperar con otros sistemas y bajo otros contextos.
Interoperabilidad: Que tan fácil es comunicarse con el sistema.
Coexistencia: Si puede convivir junto a otros sistemas dentro de la red sin ningún inconveniente.
Facilidad de uso
Reconocimiento de idoneidad: Cuanto nos damos cuenta que un sistema es lo que nosotros necesitamos usar para resolver nuestro objetivo.
Curva de aprendizaje: Que tanta dificultad tiene aprender a usar el sistema.
Operabilidad: Cantidad de esfuerzo que conlleva su uso u operaciones.
Protección a errores: Se trata de indicarle al usuario cuando realiza alguna acción errónea que se equivoco de manera que este pueda entender y a la vez darle feedback para solucionar el problema.
Estética de interfaz: brindar buena experiencia al usuario en cuanto a interfaces graficas.
Accesibilidad: Facilidad de uso para la mayor cantidad de gente con condiciones especiales posible.
Cuanto el sistema nos permitirá su buen uso a través del tiempo.
Madurez: Trata de que cuanto menos fallo presente el sistema más maduro es. La distancia temporal entre cada fallo permite medir su nivel de madurez.
Disponibilidad: Cuanto tiempo esta fuera de servicio el sistema respecto a su siclo de vida normal (Expresado en porcentajes).
Tolerancia a fallos: Que tanto puede el sistema seguir dando servicio a pesar de los fallos.
Capacidad de recuperación: Cuanto el sistema puede seguir dando servicio luego de un fallo y cuanto se tomó volver a dar servicio luego de un fallo en caso de que haya estado fuera de servicio.
Hablamos de que tanto el sistema protege la información del usuario, lo autentifica, y le gestiona los accesos.
Confidencialidad: Como el sistema relaciona a cada usuario con lo que puede o no puede acceder.
Integridad: Que tan seguro es el sistema.
Comprobación de hechos: Como el sistema puede demostrar de manera veraz cada acción o decisión del usuario.
Traza de responsabilidad: Relacionar cada acción realizada en el sistema el usuario que la ejecuto.
Autenticidad: Como el sistema identifica al usuario o como comprueba que el usuario es quien dice ser.
Es todo eso que hace que un sistema pueda cambiar o evolucionar.
Modularidad: La capacidad de un sistema en ser dividido por partes donde cada una sea independiente de otra.
Reusabilidad: Que tanto podemos aprovechar funcionalidades del sistema para reutilizarlas.
Capacidad de análisis: Cuanto podemos relacionar un problema con la implementación del sistema. Es decir, si se realiza algún cambio podremos entender rápidamente lo que podría conllevar dicha alteración. Conexión entre el código y los requerimientos.
Capacidad de modificación: Que tan fácil es realizar cambios al sistema, como se que lo que hago no causara conflicto a otras funcionalidades (Se suelen usar test automatizados para dicha acción).
Capacidad de prueba: Como garantizar que el sistema cumple con todos los requerimientos.
La compatibilidad del sistema en diferentes entornos de ejecución.
Adaptabilidad: Cuan fuertemente depende el sistema de un entorno especifico.
Capacidad de instalación: que tanta dificultad presenta el despliegue del sistema en diferentes entornos.
Capacidad de reemplazo: La podemos medir conociendo los nuevos requerimientos o facilidades que hay hoy y configurarlo a favor de nuestro sistema.
✅
Es importante tener en cuenta que estos atributos son dependientes de las historias de usuario. Una vez que se tiene la historia de usuario se puede hacer este análisis
ATRIBUTOS DE CALIDAD EN CRECIMIENTO
Eficiencia de ejecución: Como empresa prestadora necesito medir el rendimineto de mis profesionales para comprender mi proprio crecimiento.
Compatibilidad > Interoperabilidad > Significa que otros sistemas puedan comunicarse con el nuestro sistema, puede ser lo mismo con una API , extracción o envio de datos.
🤖🤖🤖
Atributos de calidad
Confiabilidad:
• Madurez.
• Disponibilidad.
Seguridad:
• Autenticidad.
• Confidencialidad.
Compatibilidad:
• Interoperabilidad.
Atributos de calidad en crecimiento
Eficiencia de ejecución:
• Uso de recursos.
• Capacidad.
Compatibilidad:
• Interoperabilidad
Seguridad:
• Comprobación de hechos.
• Traza de responsabilidad.
• Confidencialidad.
Atributos de calidad Gran escala
Usabilidad:
• Accesibilidad.
• Reconocimiento de idoneidad.
• Operabilidad.
Mantenibilidad:
• Modularidad.
• Capacidad de prueba.
• Capacidad de modificación.
Confiabilidad:
• Tolerancia a fallos.
• Capacidad de recuperación.
A medida que avance el diseño, es importante tener en cuenta estos atributos de calidad.
Estas consideraciones sobre atributos de calidad, pueden aplicarse para realizar un análisis sobre un sistema que ya está prácticamente construido?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.