Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introducción a la Arquitectura de Software

2,889 views

Published on

Introducción a la Arquitectura de Software, aspectos básicos y enfoque.

Published in: Technology
  • Be the first to comment

Introducción a la Arquitectura de Software

  1. 1. Arquitectura de Software Gustavo Alzate Sandoval Comunidad Avanet - @avanet Microsoft Community Specialist Colombia http://www.eltavo.net @ElTavoDev
  2. 2. Agenda ¿Arquitectura SW? Patrones y estilos Aspectos transversales 1 2 3 4 5 6 Patrones De diseño Principios Atributos calidad 7 Validación Arquitectura
  3. 3. ¿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
  4. 4. ¿Qué es?
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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.
  11. 11. 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.
  12. 12. Aspectos transversales • Autenticación • Autorización • Chaching • Comunicación • Manejo de errores • Logeo de errores y traza • Validación • Mensajería
  13. 13. 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
  14. 14. Patrones de diseño Patrones estructurales: • Adapter • Bridge • Composite • Decorator • Proxy
  15. 15. Patrones de diseño Patrones Creacionales • Abstract Factory • Builder • Factory Method • Prototype • Singleton
  16. 16. Patrones de diseño Patrones de comportamiento: • Chain of Responsibility • Command • Iterator • Observer • Strategy
  17. 17. Preguntas http://www.eltavo.net @ElTavoDev
  18. 18. GRACIAS!!!

×