Introducci贸n al curso

1

Introducci贸n al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definici贸n

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecuci贸n

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monol铆ticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisi贸n de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Dise帽o orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Dise帽o de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un dise帽o: Tipos de conectores

27

Conectores: Llamado asincr贸nico / sincr贸nico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusi贸n

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y t谩cticas

31

Escenarios: Disponibilidad, detecci贸n, reparaci贸n

32

Escenarios: Reintroducci贸n y prevenci贸n

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos domin贸 y diferir enlace

35

Escenarios: Eficiencia de ejecuci贸n

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de dise帽o: Arquitectura en evoluci贸n

40

脷ltimo an谩lisis a PlatziServicios

Modelado y documentaci贸n de arquitectura

41

C贸mo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentaci贸n vs implementaci贸n

43

Conclusiones del curso

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Analizando PlatziServicios

12/43
Recursos

Aportes 14

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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.

Resumen de todo el modulo:

Atributos de calidad


Idoneidad funcional

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.


Eficiencia de ejecuci贸n

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.


Compatibilidad

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.


Usabilidad

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.


Confiabilidad

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.


Seguridad

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.


Mantenibilidad

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.


Portabilidad

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?

"La simplicidad es la mayor sofisticaci贸n" atendiendo esta premisa debemos enfocarnos en aplicar los atributos de calidad en base a la madurez del proyecto