introducción a la arquitectura de software

19
Arquitectura de Software Gustavo Alzate Sandoval Comunidad Avanet - @avanet Microsoft Community Specialist Colombia http://www.eltavo.net @ElTavoDev

Upload: gustavo-alzate-sandoval

Post on 18-Jul-2015

1.501 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 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

Page 2: Introducción a la Arquitectura de Software

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

¿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

¿Qué es?

Page 5: Introducción a la Arquitectura de Software

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

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

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

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

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

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

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

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
Page 14: Introducción a la Arquitectura de Software

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

Patrones de diseño

Patrones estructurales:

• Adapter

• Bridge

• Composite

• Decorator

• Proxy

Page 16: Introducción a la Arquitectura de Software

Patrones de diseño

Patrones Creacionales

• Abstract Factory

• Builder

• Factory Method

• Prototype

• Singleton

Page 17: Introducción a la Arquitectura de Software

Patrones de diseño

Patrones de comportamiento:

• Chain of Responsibility

• Command

• Iterator

• Observer

• Strategy

Page 18: Introducción a la Arquitectura de Software

Preguntas

http://www.eltavo.net

@ElTavoDev

Page 19: Introducción a la Arquitectura de Software

GRACIAS!!!