Introducción a La Arquitectura de Software Por Carlos Billy Reynoso
Introducción a la Arquitectura de Software
-
Upload
gustavo-alzate-sandoval -
Category
Technology
-
view
1.501 -
download
1
Transcript of Introducción a la Arquitectura de Software
![Page 1: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/1.jpg)
Arquitectura de Software
Gustavo Alzate Sandoval
Comunidad Avanet - @avanet
Microsoft Community Specialist Colombia
http://www.eltavo.net
@ElTavoDev
![Page 2: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/2.jpg)
Agenda
1 2 3 4 5 6
¿Arquitectura SW? Patrones y estilos
Patrones
De diseño
Principios Atributos calidad
Aspectos
transversales
7
Validación
Arquitectura
![Page 3: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/3.jpg)
¿Qué es?
• Proceso a través de cual se define la estructura
base para una solución, la cual debe contemplar
los aspectos funcionales y no funcionales
• Diseño de alto nivel de la estructura de un sistema
• Toma de decisiones, que afectan el éxito del
sistema
• Garantía de los atributos de calidad requeridos
![Page 4: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/4.jpg)
¿Qué es?
![Page 5: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/5.jpg)
Principios
• Construir para el cambio y extensibilidad
• Modelar para minimizar riesgos
• Separación de incumbencias
• Principio de única responsabilidad
• Principio de mínimo conocimiento
• Don’t repeat yourself (DRY)
• Bajo acoplamiento
• Alta cohesión
![Page 6: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/6.jpg)
Consideraciones
• Determinar el tipo de aplicación
• Determinar la estrategia de despliegue
• Definir las tecnologías apropiadas
• Determinar los atributos de calidad
• Determinar los aspectos transversales
![Page 7: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/7.jpg)
Patrones o estilos
Conjunto de principios que proporciona un marco de
trabajo y resuelve problemas comúnmente conocidos.
• Cliente servidor
• Basado en componentes
• Orientado a dominio
• Arquitectura en capas
• Bus de mensajes
• N Tier / 3 Tier
• Orientada a objetos
• SOA
![Page 8: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/8.jpg)
Atributos de calidad
Factores generales que afectan de una forma u otra el
comportamiento del sistema, como por ejemplo el
rendimiento, usabilidad etc. Los atributos de calidad
son determinados por las preocupaciones del
negocio o Divers de negocio.
• Mantenibilidad
• Reusabilidad
• Disponibilidad
• Interoperailidad
• Rendimiento
![Page 9: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/9.jpg)
Atributos de calidad
Factores generales que afectan de una forma u otra el
comportamiento del sistema, como por ejemplo el
rendimiento, usabilidad etc. Los atributos de calidad
son determinados por las preocupaciones del
negocio o Divers de negocio.
• Escalabilidad
• Seguridad
• “Testeability”
• Usabilidad
![Page 10: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/10.jpg)
Aspectos transversales
Funcionalidades comunes para uno o varios sistemas,
permiten generar un marco de trabajo para
desarrollo más ágil y permiten centralizar y reutilizar
implementaciones. La programación orientada a
aspectos promueve este principio. Para la
implementación de estos aspectos transversales
tenga en cuenta las siguientes consideraciones:
• Analice cuales funcionalidades pueden ser
reutilizadas en cada capa y evalué si también
pueden ser reutilizadas por otros sistemas.
![Page 11: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/11.jpg)
Aspectos transversales
• Evalúe la estrategia de despliegue para los
componentes transversales, si se pueden instalar
en un Tier independiente para reutilizarlos
• Considere usar inyección de dependencias para la
utilización de estos componentes en sus
aplicaciones
• Considere usar librerías de terceros para este tipo
de aspectos transversales, como por ejemplo
Entreprise library, spring, etc.
![Page 12: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/12.jpg)
Aspectos transversales
• Autenticación
• Autorización
• Chaching
• Comunicación
• Manejo de errores
• Logeo de errores y traza
• Validación
• Mensajería
![Page 13: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/13.jpg)
![Page 14: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/14.jpg)
Patrones de diseño
Son la base para la búsqueda de soluciones a
problemas comunes en el desarrollo de software.
Posee principalmente dos características:
• Debe haber comprobado su efectividad
resolviendo el problema
• Debe ser reutilizable
![Page 15: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/15.jpg)
Patrones de diseño
Patrones estructurales:
• Adapter
• Bridge
• Composite
• Decorator
• Proxy
![Page 16: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/16.jpg)
Patrones de diseño
Patrones Creacionales
• Abstract Factory
• Builder
• Factory Method
• Prototype
• Singleton
![Page 17: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/17.jpg)
Patrones de diseño
Patrones de comportamiento:
• Chain of Responsibility
• Command
• Iterator
• Observer
• Strategy
![Page 19: Introducción a la Arquitectura de Software](https://reader035.fdocuments.mx/reader035/viewer/2022071710/55a93dde1a28ab99758b47d1/html5/thumbnails/19.jpg)
GRACIAS!!!