Introducción a la Arquitectura de Software

Post on 18-Jul-2015

1.501 views 1 download

Transcript of Introducción a la Arquitectura de Software

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

Preguntas

http://www.eltavo.net

@ElTavoDev

GRACIAS!!!