Professional Documents
Culture Documents
Sesion 9 - Defincion de La Arquitectura - Cont
Sesion 9 - Defincion de La Arquitectura - Cont
de Sistemas
SESIÓN 8: PROCESO DE DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA
EXPLICAR ALCANCE DE LA SESION 7
• A lo largo del curso veremos dos enfoques del Ciclo de Vida de Sistemas:
• Enfoque de SEBoK
Utilización/
Concepto Desarrollo Producción Retiro
Soporte
Procesos de Ciclo de Vida de Sistemas
Procesos Ténicos
del Modelo
ISO 15288:2015
Empresa
Concepto de
Operaciones Estrategias de la
(CONOPS) Empresa
Estado del
Desarrollo del
Análisis
Sistema
Especificación de Requisitos
del Negocio(BRS)
Sistema
Necesidades del Requisitos
Requisititos de los Interesados SIstema:(Opscon,
SIstema:(Opscon,
SIstema:(Opscon,
Adquisiciones,
Adquisiciones,
Adquisiciones,
Sistema Sistema del Sistema
Requisitos del Definición de
Implementación,
Implementación,
Implementación,
Soporte,
Soporte,
Soporte,
Retiro
Retiro
Retiro
(StRS) Análisis (SyRS)
Sistema Arquitectura
Conceptos
Conceptos
Conceptos
de de
Ciclo
de
Ciclo
de
Ciclo
de
Vida
de
Vida
del
Vida
deldel Necesidades del Requisitos del Especificación de Proceso de Proceso de
Elemento
Elemento
Elemento
deldel
Sistema:(Opscon,
del
Sistema:(Opscon,
Sistema:(Opscon, Elemento de Requisitos
Adquisiciones,
Adquisiciones,
Adquisiciones,
Implementación,
Implementación,
Implementación,
Elemento de Requisitos del Definición de
Soporte,
Soporte,
Soporte,
Retiro
Retiro
Retiro Sistema Análisis Sistema del Elemento del Sistema Arquitectura
Sistema
¿Qué es Arquitectura de Software”
https://manuelzapata.co/que-es-arquitectura-de-software/
Modelado y Diseño
de la Arquitectura
del Sistema
En base a los requisitos funcionales
y de calidad se establecen los
primeros criterios para decidir que
patrón de arquitectura es el que
debemos adoptar.
Los requisitos
determinan el
modelo
¿Qué puede afectar nuestra arquitectura?
¿Qué puede afectar nuestra arquitectura?
Requerimientos Funcionales
Los requerimientos funcionales tienen relación directa con los atributos
de calidad
La funcionalidad es la capacidad del sistema de hace lo que se
pretendía que hiciese
Los sistemas se descomponen en elementos para lograr variados
propósitos, más allá de la funcionalidad:
Las opciones de arquitectura promueven ciertas cualidades al tiempo que
implementan la funcionalidad deseada
¿Qué puede afectar nuestra arquitectura?
Restricciones y principios
Las restricciones (constraints) imponen
condiciones sobre la arquitectura que
normalmente no son negociables
Ej. Que se use C# como lenguaje de
programación/Que se indique que toda la
lógica de negocio este en procedimientos
almacenados / Que no se pueda usar open
source
Limitan el rango de alternativas de decisión
del arquitecto
Algunas a veces hacen la vida más fácil para el
arquitecto, en otras lo complica
Se pueden clasificar según su naturaleza:
Negocio, Desarrollo, Tiempo, Costo, etc.
¿Qué puede afectar nuestra arquitectura?
Equipo de Desarrollo
Se basan en los skils del equipo de desarrollo, es decir,
aquellos skills que el equipo no tiene respecto de la
arquitectura que se plantea
En caso que el equipo no tenga los skills necesarios se debe
tener en cuenta la curva de aprendizaje, el tiempo y costo
que va a tomar
La otra alternativa es incorporar elementos nuevos al equipo
que también implica cierto tiempo para el proceso de
inducción y adaptación
¿Qué puede afectar nuestra arquitectura?
Atributos de calidad
Disponibilidad ➢ Usabilidad
Interoperabilidad ➢ Extensibilidad
Seguridad ➢ Elasticidad
Escalibilidad ➢ Legalidad
Recuperación ante ➢ Portabilidad
desastres
➢ Desplegabilidad
Agilidad
➢ Mantenibilidad
➢ Rendimiento
Atributos de Calidad de SW
https://youtu.be/NmRuhzyKCWM
Realidad sobre la Arquitectura de
Sistemas
Los requisitos de atributos de calidad son las principales guias para
el diseño de la arquitectura
La medida en que un sistema alcance sus requisitos de atributos de
calidad depende de las decisiones de arquitectura
El desarrollo requiere ser guiado por las decisiones de arquitectura
Influencia de los Interesados
Interesados
Involucrados
Desarrollo de
Software
Tradicional
Creación de una Arquitectura del Sistema
Concepto de
Operaciones Estrategias de la
(CONOPS) Empresa
Gestión del Negocio
Especificación de
Conceptos
Conceptos
Conceptos
de de
Ciclo
de
Ciclo
de
Ciclo
de
Vida
de
Vida
del
Vida
deldel Requisitos del Proceso de Proceso de
Sistema
Conceptos
Conceptos
Conceptos
de de
Ciclo
de
Ciclo
de
Ciclo
de
Vida
de
Vida
del
Vida
deldel Necesidades del Requisitos del Especificación de Proceso de Proceso de
Elemento
Elemento
Elemento
deldel
Sistema:(Opscon,
del
Sistema:(Opscon,
Sistema:(Opscon, Elemento de Requisitos
Adquisiciones,
Adquisiciones,
Adquisiciones,
Implementación,
Implementación,
Implementación,
Elemento de Requisitos del Definición de
Soporte,
Soporte,
Soporte,
Retiro
Retiro
Retiro Sistema Análisis Sistema del Elemento del Sistema Arquitectura
Sistema
Diseño de la Arquitectura
Paso 1. Escoger
la Arquitectura
de Referencia
Arquitectura de Referencia /
Patrones de Arquitectura
https://daneshjavaji.files.wordpress.com/2018/02/sznikak_jegyzet_p
attern-oriented-sa_vol1.pdf
Patrones de Arquitectura de SW
https://www.youtube.com/watch?v=a8YpqVbtf6A&ab_channel=M
anuelZapata
Patrones de Arquitectura
El patrón arquitectónico Microkernel también se conoce como un patrón arquitectónico enchufable. Se utiliza típicamente
cuando los equipos de software crean sistemas con componentes intercambiables.
Microservicios:
Cuando escribes tu solicitud como un conjunto de microservicios, en realidad estás escribiendo múltiples solicitudes que
funcionarán juntas.
Cada microservicio tiene su propia responsabilidad y los equipos pueden desarrollarlos independientemente de otros
microservicios.
La única dependencia entre ellos es la comunicación. A medida que los microservicios se comunican entre sí, tendrás que
asegurarte de que los mensajes enviados entre ellos sean compatibles con los anteriores.
Ejemplo de Mapeo
de patrones a
atributos de calidad
Elementos esenciales:
Encapsulación del Proceso: El
proceso contiene la logica
requerida para alcanzar el
objetivo del proceso de
negocio, siendo un solo punto
de definición hace más fácil
entender y modificar.
Bajo Acoplamiento: Los
componentes de servidores no
son concientes de su rol en el
proceso ni su orden de
ejecución
Comunicacion Flexible: La
comunicación entre el
coordinador y los servidores
puede ser sincrono o asincrona
Atributos de calidad para el Patrón Coordinator
Atributo de Calidad Problemas
Disponibilidad El coordinator es un solo punto de falla. Por lo tanto, necesita ser replicado
para crear una solución de alta disponibilidad
Manejo de Fallas El manejo de fallas es complejo, puede ocurrir en cualquier momento del
proceso de coordinación. Falla en un paso posterior del proceso puede
requerir deshacer el proceso en un paso previo usando una transacción de
compensación. El manejo de fallas necesita un diseño cuidadoso para
asegurar que la data mantenida en los servidores se mantiene consistente
Modificabilidad El proceso de modificabilidad es mejorado porque el proceso de definición es
encapsulado en el proceso de coordinador. Los servidores pueden cambiar su
implementación sin afectar al coordinador o a otros servidores, tanto tiempo
como su servicio de definición externo no cambie
Performance Para lograr alta performance, el coordinador debe ser capaz de manejar
múltiples requerimientos concurrentes y manejar el estado de proceso en la
medida que van progresando. Además, la performance de cualquier proceso
debe estar limitado por el paso mas lento a saber el servidor mas lento en el
proceso
Escalabilidad El coordinador puede ser replicado para escalar tanto hacia arriba como
hacia afuera.
Diseño de la Arquitectura
Paso 2:
Asignación de
Componentes
Guías de Diseño
de
Componentes
(1)
Guías de Diseño
de Componentes
(2)
https://www.youtube.com/watch?v=cy_3qSA0a
4s Ejemplo de Diagramación de Arquitectura de
Sistemas