introducción a la arquitectura de software
TRANSCRIPT
Arquitectura de Software
Gustavo Alzate Sandoval
Comunidad Avanet - @avanet
Microsoft Community Specialist Colombia
http://www.eltavo.net
@ElTavoDev
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
¿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
¿Qué es?
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
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
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
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
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
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.
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.
Aspectos transversales
• Autenticación
• Autorización
• Chaching
• Comunicación
• Manejo de errores
• Logeo de errores y traza
• Validación
• Mensajería
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
Patrones de diseño
Patrones estructurales:
• Adapter
• Bridge
• Composite
• Decorator
• Proxy
Patrones de diseño
Patrones Creacionales
• Abstract Factory
• Builder
• Factory Method
• Prototype
• Singleton
Patrones de diseño
Patrones de comportamiento:
• Chain of Responsibility
• Command
• Iterator
• Observer
• Strategy
GRACIAS!!!