SlideShare una empresa de Scribd logo
1 de 40
Architect Academy:
Seminario de Arquitectura
de Software
Billy Reynoso
UNIVERSIDAD DE BUENOS AIRES

Billyr@microsoft.com.ar
Roadmap

 Webcast #1: ¿Qué es la Arquitectura de
Software?
 Webcast #2: Drilldown en Estilos de
Arquitectura
 Webcast #3: Arquitectura para distribución
y agregación: Services Oriented
Architecture (SOA)
 Webcast #4: Diseñando la arquitectura
¿Qué es la Arquitectura de Software?
 Objetivos del curso
 Breve historia y definición
 Principales conceptos arquitectónicos
• Estilos de arquitectura: componentes, conectores, restricciones
(constraints), configuraciones
• Diseñar para calidad de desarrollo: Estilos y Patrones
• Puntos de vista arquitectónicos: componente, concurrencia,
despliegue
• Requerimientos no funcionales: Tácticas y frameworks de
conocimiento
• Más allá de los casos de uso: Escenarios y atributos de calidad
• Lenguajes de Descripción Arquitectónica (ADLs)

 Arquitectura, razonamiento de alto nivel y calidad operacional:
Ejemplo canónico de práctica arquitectónica (Garlan & Shaw)
Objetivos del curso
 Clarificar el carácter distintivo de la Arquitectura de
Software
 Proporcionar lineamientos y recursos para la práctica
arquitectónica
 Vincular visiones de la academia y la industria
 Establecer situación actual y perspectivas, con énfasis en
las herramientas, middleware y sistemas operativos de
Microsoft
Contexto
 Los 3 grandes temas de ingeniería de software
• Patrones
Design patterns (GoF) - 1995
 Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides

Architectural patterns (POSA) - 1996
 Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad y Michael
Stal

Organizational patterns (Coplien)

• Métodos heterodoxos (2001)
eXtreme Programming, Scrum, Evo, FDD, DSDM, RUP, AM, Crystal, LD,
ASD…)

• Arquitectura de Software (1992)
Surgimiento
 1969 – Conferencia OTAN
 Dewayne Perry, Alexander Wolf – 1992
• “Foundations for the study of software architecture”
•

“La década de 1990, creemos, será la década de la arquitectura de
software. Usamos el término “arquitectura” en contraste con “diseño”, para
evocar nociones de codificación, de abstracción, de estándares, de
entrenamiento formal (de los arquitectos de software) y de estilo. … Es
tiempo de re-examinar el papel de la arquitectura de software en el contexto
más amplio del proceso de software y de su administración, así como
señalar las nuevas técnicas que han sido adoptadas”.

 Escuela de Carnegie Mellon (CMU-SEI)
• Mary Shaw, David Garlan, Paul Clements, Robert Allen

Bibl…
Definición
 http://www.sei.cmu.edu/architecture/definitions.html
• (1) Proceso dentro del ciclo de vida, (2) Topología, (3) Disciplina.

 Arquitectura - IEEE 1471-2000:
• La Arquitectura de Software es la organización fundamental de un
sistema encarnada en sus componentes, las relaciones entre ellos y el
ambiente y los principios que orientan su diseño y evolución.
Adoptada por Microsoft en estrategia arquitectónica / MSF

 Ingeniería - IEEE 610.12.1990:
• La aplicación de una estrategia sistemática, disciplinada y cuantificable
al desarrollo, aplicación y mantenimiento del software; esto es, la
aplicación de la ingeniería al software.
La Arquitectura no es…
 Una normativa madura
 Igual en la academia y en la industria
 Diseño de software con UML
 Naturalmente vinculada con ingeniería & ciclo de vida
• Ocurre en algún punto entre la elicitación de requerimientos y la
especificación de casos de uso, o entre éstos y el diseño

 Naturalmente vinculada a metodología (RUP)
 Naturalmente relacionada con modelado Orientado a Objetos
 Hay vínculo “natural” entre requerimientos (casos de uso) y clases
 Las herramientas arquitectónicas generan el código de la aplicación
Arquitectura es…

 Vista estructural de alto nivel
 Define estilo o combinación de estilos para una solución
 Se concentra en requerimientos no funcionales
• Los requerimientos funcionales se satisfacen mediante modelado
y diseño de aplicación

 Esencial para éxito o fracaso de un proyecto
Corrientes principales
 Arquitectura estructural – SEI – Carnegie Mellon
• Garlan, Shaw, Clements
• Variantes con modelos de datos (Medvidovic), radicales, formales
(Moriconi-SRI), etc

 Arquitectura como etapa de la ingeniería de software orientada
a objetos
• James Rumbaugh, Grady Booch, Ivar Jacobson (“los 3…”), Craig
Larman…

 Arquitectura basada en patrones – SEI
• Redefinición de estilos como patrones POSA
• Microsoft Patterns & Practices

 Arquitectura procesual y metodologías
• Kazman, Bass (SEI)
• Variantes de arquitectura basada en escenarios
Estilos Arquitectónicos
 Rumbaugh & al 1991
• (1) transformaciones en lote, (2) transformaciones
continuas, (3) interfaz interactiva, (4) simulación dinámica de
objetos del mundo real, (5) sistemas de tiempo real, (6)
administrador de transacciones con almacenamiento y
actualización de datos
• Pero: “estilos arquitectónicos”, “arquitecturas comunes”,
“marcos de referencia arquitectónicos prototípicos”, “formas
comunes”, “clases de sistemas”
Estilos – Nueva concepción
 Perry & Wolf, 1992
 Componentes (ahora: Elementos)
 Conectores
 Configuraciones
 Restricciones (Constraints)
 “Mano mágica” (Fielding, 2000)

UML?
Estilos Arquitectónicos
Estilos de Flujo de Datos
• Tubería y filtros

Estilos Centrados en Datos
• Arquitecturas de Pizarra o
Repositorio

Estilos de Llamada y Retorno
• Model-View-Controller (MVC)
• Arquitecturas en Capas
• Arquitecturas Orientadas a
Objetos
• Arquitecturas Basadas en
Componentes

Estilos de Código Móvil
• Arquitectura de Máquinas
Virtuales

Estilos heterogéneos
• Sistemas de control de
procesos
• Arquitecturas Basadas en
Atributos

Estilos Peer-to-Peer
• Arquitecturas Basadas en
Eventos
• Arquitecturas Orientadas a
Servicios
• Arquitecturas Basadas en
Recursos
Estilos derivados
 C2
 GenVoca
 REST
Estilos
 Sirven para sintetizar estructuras de soluciones
 Pocos estilos abstractos encapsulan una enorme variedad
de configuraciones concretas
 Definen los patrones posibles de las aplicaciones
 Permiten evaluar arquitecturas alternativas con ventajas y
desventajas conocidas ante diferentes conjuntos de
requerimientos no funcionales
Ejemplo
 Mala práctica:
• Aplicaciones clientes que consultan si sucedió algo
• Listener de HTTP, Archivo, Colas

 Buena práctica:
• Estilo basado en Eventos
Ejemplo
Arquitectura basada en eventos
Modelo de push a veces se vincula con patrón Observador (Observer
pattern)
Arquitectura basada en eventos
 Ventajas
• Simplicidad
• Evolución: se pueden reemplazar componentes suscriptores
• Modularidad: una sola modalidad para eventos diversos
• Puede mejorar eficiencia, eliminando la necesidad de polling por
ocurrencia de evento

 Desventajas
• Posibilidad de desborde
• Potencial imprevisión de escalabilidad
• Pobre comprensibilidad: Puede ser difícil prever qué pasará en
respuesta a una acción
• No hay garantía del lado del publisher que el suscriptor responderá
al evento
• No hay mucho soporte de recuperación en caso de falla parcial
Arquitectura basada en eventos

 Dos modelos de arquitectura e implementación
 Tightly coupled events (TCE, eventos fuertemente acoplados)
• P. ej. COM Connection Points.
• Requiere que ambos componentes estén corriendo
simultáneamente. No hay forma de filtrar evento (p. ej. cuando
acción alcance cierto valor)
• Requiere conocer ambas interfaces específicas

 Losely coupled events (LCE, eventos débilmente acoplados)
• P. ej. COM+ Events
• Almacenamiento de eventos (COM+ Catalog)
• Referencia: MSDN Library – COM+ Technical Series: Losely
coupled events
Arquitectura basada en eventos
 Permiten invocación implícita de una herramienta cuando otra
herramienta produce un evento
 También se llama Invocación implícita
• Un componente anuncia un evento. Otros registran interés en ese tipo de
evento. Cuando se produce, el sistema (la “mano invisible”) lo comunica a
los suscriptores.

 Algunos incluyen a MVC en esta clase
 Modelo Publish / Subscribe
 MS: Registración de Eventos COM+, eventos (listeners) de BizTalk
Server, Notification Service de SQL Server

Demo
Arquitectura basada en eventos
 Herramientas en ambiente COM+/.NET
 En muchos casos no se requiere programación de bajo
nivel
 También hay profusión de herramientas programáticas y
servicios de “mano mágica”
 Administrative tools
• Component Services
COM+ Applications
 .NET Utilities, Biztalk Server/Interchange
Relación entre Estilos y
Patrones (Patterns)
Patterns
 Christopher Alexander, 1977
 Un patrón es una solución a un problema en un
contexto
 Un patrón codifica conocimiento específico
acumulado por la experiencia en un dominio
 Un sistema bien estructurado está lleno de patrones
Patterns - Alexander
 “Cada patrón describe un problema que ocurre una y
otra vez en nuestro ambiente, y luego describe el
núcleo de la solución a ese problema, de tal manera
que puedes usar esa solución un millón de veces
más, sin hacer jamás la misma cosa dos veces.”
 Ejemplos: galería, paseo, patio compartido,
columnata, estacionamiento
Elementos de un patrón
 Nombre
• Define un vocabulario de diseño
• Facilita abstracción

 Problema
• Describe cuando aplicar el patrón
• Conjunto de fuerzas: objetivos y restricciones
• Prerrequisitos

 Solución
• Elementos que constituyen el diseño (template)
• Forma canónica para resolver fuerzas

 Consecuencias
• Resultados, extensiones y tradeoffs

MVC
Comentario

Problemas

Soluciones

Fase de Desarrollo

Patrones de
Arquitectura

Relacionados a la
interacción de objetos
dentro o entre niveles
arquitectónicos

Problemas arquitectónicos,
adaptabilidad a requerimientos
cambiantes, performance,
modularidad, acoplamiento

Patrones de llamadas
entre objetos (similar a
los patrones de diseño),
decisiones y criterios
arquitectónicos,
empaquetado de
funcionalidad

Patrones de
Diseño

Conceptos de ciencia de
computación en general,
independiente de
aplicación

Claridad de diseño,
multiplicación de clases,
adaptabilidad a requerimientos
cambiantes, etc

Comportamiento de
factoría, ClaseResponsabilidadContrato (CRC)

Diseño detallado

Patrones de
Análisis

Usualmente específicos de
aplicación o industria

Modelado del dominio,
completitud, integración y
equilibrio de objetivos múltiples,
planeamiento para capacidades
adicionales comunes

Modelos de dominio,
conocimiento sobre lo
que habrá de incluirse (p.
ej. logging & reinicio)

Análisis

Patrones de
Proceso o de
Organización

Desarrollo o procesos de
administración de
proyectos, o técnicas, o
estructuras de organización

Productividad, comunicación
efectiva y eficiente

Armado de equipo, ciclo
de vida del software,
asignación de roles,
prescripciones de
comunicación

Planeamiento

Estándares de codificación
y proyecto

Operaciones comunes bien
conocidas en un nuevo ambiente,
o a través de un grupo.
Legibilidad, predictibilidad.

Sumamente específicos
de un lenguaje,
plataforma o ambiente

Implementación,
Mantemimiento,
Despliegue

Idiomas

Diseño inicial
Organización de Patrones
 Propuesta por MS para Enterprise Solution Patterns Using
Microsoft .NET (ESP)
 Propósito:
• Identificar relaciones entre patrones
• Agrupar patrones en clusters
• Identificar patrones a diversos niveles de abstracción
• Aplicar patrones a múltiples aspectos de una solución
• Organizar patrones en un frame
• Usar patrones para describir en forma concisa una solución…
Ejemplos de ESP

Niveles de abstracción
Vistas

Documento
Frame
Requerimientos no funcionales
Escenarios, tácticas, frameworks
 Performance
 Disponibilidad
 Modificabilidad
 Seguridad
 Verificabilidad (Testability)
 Gestionabilidad (instrumentación, management, estado)
 Usabilidad
Atributos de Calidad
Escenarios
 Estímulo, ambiente, respuesta


Escenario de caso de uso:
•



Escenario de crecimiento:
•



Un usuario remoto de web requiere un reporte de base de datos en hora
pico y lo recibe dentro de los 5 segundos.

Agregar un nuevo servidor de base de datos para reducir latencia en
escenario 1 a 2.5 segundos dentro de una persona-semana.

Escenario exploratorio:
•

La mitad de los servidores se bajará durante operación normal sin afectar la
disponibilidad del sistema.
Ejemplo de metodología
Refinamiento de Escenario



Los escenarios se refinan considerando:
•

1. Estímulo - La condición que afecta al sistema

•

2. Respuesta - La actividad que resulta del estímulo

•

3. Fuente del estímulo - La entidad que lo genera

•

4. Ambiente - La condición bajo la cual el estímulo ocurre

•

5. Artefacto estimulado

•

6. Medida de respuesta - Para evaluar la respuesta del sistema



Se describen los objetivos de negocio/misión afectados por el escenario y las
cualidades relevantes asociadas con él



En funcíón de los escenarios se pueden evaluar los estilos arquitectónicos que
pueden satisfacer los requerimientos
Lenguajes de Descripción Arquitectónica
(ADLs)
 Componentes
 Conectores
 Configuraciones o sistemas
 Propiedades no funcionales
 Restricciones
 Estilos
 Evolución
 Herramientas de verificación
ADL
Acme
Aesop

Fecha
1995
1994

Investigador - Organismo
Monroe & Garlan (CMU), Wile (USC)
Garlan (CMU)

ArTek

1994

Armani
C2 SADL
CHAM
Darwin
Jacal

1998
1996
1990
1991
1997

LILEANNA
MetaH
Rapide
SADL

1993
1993
1990
1995

Terry, Hayes-Roth, Erman
(Teknowledge, DSSA)
Monroe (CMU)
Taylor/Medvidovic (UCI)
Berry / Boudol
Magee, Dulay, Eisenbach, Kramer
Kicillof , Yankelevich (Universidad de
Buenos Aires)
Tracz (Loral Federal)
Binns, Englehart (Honeywell)
Luckham (Stanford)
Moriconi, Riemenschneider (SRI)

UML

1995

Rumbaugh, Jacobson, Booch (Rational)

UniCon

1995

Shaw (CMU)

Wright

1994

Garlan (CMU)

xADL

2000

Medvidovic, Taylor (UCI, UCLA)

Observaciones
Lenguaje de intercambio de ADLs
ADL de propósito general, énfasis
en estilos
Lenguaje específico de dominio No es ADL
ADL asociado a Acme
ADL específico de estilo
Lenguaje de especificación
ADL con énfasis en dinámica
Adl - Notación de alto nivel para
descripción y prototipado
Lenguaje de conexión de módulos
ADL específico de dominio
ADL & simulación
ADL con énfasis en mapeo de
refinamiento
Lenguaje genérico de modelado –
No es ADL
ADL de propósito general, énfasis
en conectores y estilos
ADL de propósito general, énfasis
en comunicación
ADL basado en XML
Métodos basados en Arquitectura


Architecture Tradeoff Analysis Method (ATAM)



Quality Attribute Workshops (QAW)



Attribute-Driven Design (ADD)



Active Reviews for Intermediate Designs (ARID)



Cost-Benefit Analysis Method (CBAM)



Software Architecture Comparison Analysis Method (SACAM)



Quality-Attribute-Driven Software Architecture Reconstruction
(QADSAR)



Architecture Based Design Method (ABD)



Software Architecture Analysis Method (SAAM)
Usos de estilos
Mary Shaw, David Garlan, 1996
•

IEEE98SA-Styles-Patterns.pdf

•

Inspirado en trabajo de Parnas, 1972 (“On the criteria to be used in
decomposing systems into modules”) – Datos compartidos vs ocultamiento de
información

Sistema de indexación de palabras claves
•

Datos compartidos

•

Tipos abstractos de datos

•

Invocación implícita

•

Tubería y filtros

Comparación de versatilidad, dependencia, modularidad, reutilización,
refinamiento, ventajas & desventajas
Antes de escribir una línea de código
Tablas de comparación de
atributos
Asignación de pesos a prioridades

Paper
Síntesis
 Arquitectura:
 Visión de alto nivel
 Estilo - Patrón
 Previo a diseño de aplicación
 Requerimientos no funcionales
 Escenarios
 Lenguajes de descripción arquitectónica
Referencias

 Len Bass, Paul Clements, Rick Lazman. Software Architecture in
Practice, 2a edición, Addison-Wesley, 2003
 Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad,
Michael Stal. Pattern Oriented Software Architecture, vol. 1. Wiley,
1996
 Documentos en http://www.microsoft.com/spanish/msdn/Arquitectura

Docs…
Webcast # 2 – Drilldown en estilos de arquitectura
 Diseñar desde arriba: La especificidad de la abstracción
arquitectónica
 Estilos: historia, definición, inventario
 Estilos fundamentales
 Práctica arquitectónica
 Implementando estilos con Windows services, Middleware
MS y .NET Framework
¿Preguntas?
http://www.microsoft.com/spanish/msdn/arquitectura
Billyr@microsoft.com.ar

Más contenido relacionado

La actualidad más candente

Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria WebLiszeth
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Marta Silvia Tabares
 
Evaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones Web
Evaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones WebEvaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones Web
Evaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones WebSoftware Guru
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturasenlinea70
 
Metodologias para el desarrollo de aplicacones web
Metodologias para el desarrollo de aplicacones webMetodologias para el desarrollo de aplicacones web
Metodologias para el desarrollo de aplicacones webJosafat Mtz
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del softwaredeahesy najera garcia
 
Requerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones webRequerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones webAlonzer Acid Nox
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Jose Emilio Labra Gayo
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria webMirsha01
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de softwareJose Diaz Silva
 
Metodología para creación de sitios web
Metodología para creación de sitios webMetodología para creación de sitios web
Metodología para creación de sitios webAlfredo Anotha Diego
 

La actualidad más candente (20)

Metodologia Diseño Web
Metodologia Diseño WebMetodologia Diseño Web
Metodologia Diseño Web
 
Wsdm
WsdmWsdm
Wsdm
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
Evaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones Web
Evaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones WebEvaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones Web
Evaluación de Propuestas Metodológicas para el Desarrollo de Aplicaciones Web
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Metodologias para el desarrollo de aplicacones web
Metodologias para el desarrollo de aplicacones webMetodologias para el desarrollo de aplicacones web
Metodologias para el desarrollo de aplicacones web
 
Metodologias web
Metodologias webMetodologias web
Metodologias web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del software
 
Requerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones webRequerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de software
 
Metodología para creación de sitios web
Metodología para creación de sitios webMetodología para creación de sitios web
Metodología para creación de sitios web
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 

Destacado

CAdip Dirección de Proyectos
CAdip Dirección de ProyectosCAdip Dirección de Proyectos
CAdip Dirección de ProyectosJCarreraM
 
Fbc PlaySchool Registration 2015
Fbc PlaySchool Registration 2015Fbc PlaySchool Registration 2015
Fbc PlaySchool Registration 2015Natasha Burris
 
Gross State Product using the Production approach GSP(P) Information Paper, A...
Gross State Product using the Production approach GSP(P) Information Paper, A...Gross State Product using the Production approach GSP(P) Information Paper, A...
Gross State Product using the Production approach GSP(P) Information Paper, A...Fundação de Economia e Estatística
 
2895 CCID CViews Autumn Mar May 2016 1-8 LowResSingles
2895 CCID CViews Autumn Mar May 2016 1-8 LowResSingles2895 CCID CViews Autumn Mar May 2016 1-8 LowResSingles
2895 CCID CViews Autumn Mar May 2016 1-8 LowResSinglesBrent Smith
 
Flirt, Date, Commit: Injecting Design into an Open Source Project
Flirt, Date, Commit: Injecting Design into an Open Source ProjectFlirt, Date, Commit: Injecting Design into an Open Source Project
Flirt, Date, Commit: Injecting Design into an Open Source ProjectJuhan Sonin
 
Corporate Benefits Brochure
Corporate Benefits BrochureCorporate Benefits Brochure
Corporate Benefits Brochureaa130229
 
Mitsubishi listino recuperatori_calore
Mitsubishi listino recuperatori_caloreMitsubishi listino recuperatori_calore
Mitsubishi listino recuperatori_caloreOlivier Bessire
 
Publicación obtenida de la revista Stratego
Publicación obtenida de la revista StrategoPublicación obtenida de la revista Stratego
Publicación obtenida de la revista Strategoanibalbasurto
 
Leading Business July 2015 Digital
Leading Business July 2015 DigitalLeading Business July 2015 Digital
Leading Business July 2015 DigitalShane Frost
 
Clinica Dental
Clinica DentalClinica Dental
Clinica DentalJimenosky
 
Las Las pesetas españolas
Las Las pesetas españolasLas Las pesetas españolas
Las Las pesetas españolasRafael Sarria
 
Experience is the new differentiator
Experience is the new differentiatorExperience is the new differentiator
Experience is the new differentiatoraFrogleap
 
2.1 android cep jaen 2014 estructura de aplicación
2.1 android cep jaen 2014   estructura de aplicación2.1 android cep jaen 2014   estructura de aplicación
2.1 android cep jaen 2014 estructura de aplicaciónJose Antonio Vacas
 

Destacado (20)

CAdip Dirección de Proyectos
CAdip Dirección de ProyectosCAdip Dirección de Proyectos
CAdip Dirección de Proyectos
 
Fbc PlaySchool Registration 2015
Fbc PlaySchool Registration 2015Fbc PlaySchool Registration 2015
Fbc PlaySchool Registration 2015
 
Ilford_presentation
Ilford_presentationIlford_presentation
Ilford_presentation
 
Gross State Product using the Production approach GSP(P) Information Paper, A...
Gross State Product using the Production approach GSP(P) Information Paper, A...Gross State Product using the Production approach GSP(P) Information Paper, A...
Gross State Product using the Production approach GSP(P) Information Paper, A...
 
2895 CCID CViews Autumn Mar May 2016 1-8 LowResSingles
2895 CCID CViews Autumn Mar May 2016 1-8 LowResSingles2895 CCID CViews Autumn Mar May 2016 1-8 LowResSingles
2895 CCID CViews Autumn Mar May 2016 1-8 LowResSingles
 
Trabajo. tics
Trabajo. ticsTrabajo. tics
Trabajo. tics
 
Flirt, Date, Commit: Injecting Design into an Open Source Project
Flirt, Date, Commit: Injecting Design into an Open Source ProjectFlirt, Date, Commit: Injecting Design into an Open Source Project
Flirt, Date, Commit: Injecting Design into an Open Source Project
 
Corporate Benefits Brochure
Corporate Benefits BrochureCorporate Benefits Brochure
Corporate Benefits Brochure
 
Visibility BTL Home Market
Visibility BTL Home MarketVisibility BTL Home Market
Visibility BTL Home Market
 
Mitsubishi listino recuperatori_calore
Mitsubishi listino recuperatori_caloreMitsubishi listino recuperatori_calore
Mitsubishi listino recuperatori_calore
 
Publicación obtenida de la revista Stratego
Publicación obtenida de la revista StrategoPublicación obtenida de la revista Stratego
Publicación obtenida de la revista Stratego
 
Leading Business July 2015 Digital
Leading Business July 2015 DigitalLeading Business July 2015 Digital
Leading Business July 2015 Digital
 
Los Museos y El turismo
Los Museos y El turismoLos Museos y El turismo
Los Museos y El turismo
 
Clinica Dental
Clinica DentalClinica Dental
Clinica Dental
 
Las Las pesetas españolas
Las Las pesetas españolasLas Las pesetas españolas
Las Las pesetas españolas
 
La Publicidad
La PublicidadLa Publicidad
La Publicidad
 
crema nocturna
crema nocturnacrema nocturna
crema nocturna
 
The cloud talk
The cloud talkThe cloud talk
The cloud talk
 
Experience is the new differentiator
Experience is the new differentiatorExperience is the new differentiator
Experience is the new differentiator
 
2.1 android cep jaen 2014 estructura de aplicación
2.1 android cep jaen 2014   estructura de aplicación2.1 android cep jaen 2014   estructura de aplicación
2.1 android cep jaen 2014 estructura de aplicación
 

Similar a 050608 architect academy webcast 1

Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webgabiar1708
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicionjuca piro
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdfssuser20fade
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Metodologia orientada a objetos
Metodologia orientada a objetosMetodologia orientada a objetos
Metodologia orientada a objetosMariana Rodríguez
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosWilfredo Mogollón
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 

Similar a 050608 architect academy webcast 1 (20)

S12-DAW-2022S1.pptx
S12-DAW-2022S1.pptxS12-DAW-2022S1.pptx
S12-DAW-2022S1.pptx
 
Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_web
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicion
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
 
Paradigmas
ParadigmasParadigmas
Paradigmas
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
Clase7
Clase7Clase7
Clase7
 
Metodologia orientada a objetos
Metodologia orientada a objetosMetodologia orientada a objetos
Metodologia orientada a objetos
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetos
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 

050608 architect academy webcast 1

  • 1. Architect Academy: Seminario de Arquitectura de Software Billy Reynoso UNIVERSIDAD DE BUENOS AIRES Billyr@microsoft.com.ar
  • 2. Roadmap  Webcast #1: ¿Qué es la Arquitectura de Software?  Webcast #2: Drilldown en Estilos de Arquitectura  Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA)  Webcast #4: Diseñando la arquitectura
  • 3. ¿Qué es la Arquitectura de Software?  Objetivos del curso  Breve historia y definición  Principales conceptos arquitectónicos • Estilos de arquitectura: componentes, conectores, restricciones (constraints), configuraciones • Diseñar para calidad de desarrollo: Estilos y Patrones • Puntos de vista arquitectónicos: componente, concurrencia, despliegue • Requerimientos no funcionales: Tácticas y frameworks de conocimiento • Más allá de los casos de uso: Escenarios y atributos de calidad • Lenguajes de Descripción Arquitectónica (ADLs)  Arquitectura, razonamiento de alto nivel y calidad operacional: Ejemplo canónico de práctica arquitectónica (Garlan & Shaw)
  • 4. Objetivos del curso  Clarificar el carácter distintivo de la Arquitectura de Software  Proporcionar lineamientos y recursos para la práctica arquitectónica  Vincular visiones de la academia y la industria  Establecer situación actual y perspectivas, con énfasis en las herramientas, middleware y sistemas operativos de Microsoft
  • 5. Contexto  Los 3 grandes temas de ingeniería de software • Patrones Design patterns (GoF) - 1995  Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides Architectural patterns (POSA) - 1996  Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad y Michael Stal Organizational patterns (Coplien) • Métodos heterodoxos (2001) eXtreme Programming, Scrum, Evo, FDD, DSDM, RUP, AM, Crystal, LD, ASD…) • Arquitectura de Software (1992)
  • 6. Surgimiento  1969 – Conferencia OTAN  Dewayne Perry, Alexander Wolf – 1992 • “Foundations for the study of software architecture” • “La década de 1990, creemos, será la década de la arquitectura de software. Usamos el término “arquitectura” en contraste con “diseño”, para evocar nociones de codificación, de abstracción, de estándares, de entrenamiento formal (de los arquitectos de software) y de estilo. … Es tiempo de re-examinar el papel de la arquitectura de software en el contexto más amplio del proceso de software y de su administración, así como señalar las nuevas técnicas que han sido adoptadas”.  Escuela de Carnegie Mellon (CMU-SEI) • Mary Shaw, David Garlan, Paul Clements, Robert Allen Bibl…
  • 7. Definición  http://www.sei.cmu.edu/architecture/definitions.html • (1) Proceso dentro del ciclo de vida, (2) Topología, (3) Disciplina.  Arquitectura - IEEE 1471-2000: • La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución. Adoptada por Microsoft en estrategia arquitectónica / MSF  Ingeniería - IEEE 610.12.1990: • La aplicación de una estrategia sistemática, disciplinada y cuantificable al desarrollo, aplicación y mantenimiento del software; esto es, la aplicación de la ingeniería al software.
  • 8. La Arquitectura no es…  Una normativa madura  Igual en la academia y en la industria  Diseño de software con UML  Naturalmente vinculada con ingeniería & ciclo de vida • Ocurre en algún punto entre la elicitación de requerimientos y la especificación de casos de uso, o entre éstos y el diseño  Naturalmente vinculada a metodología (RUP)  Naturalmente relacionada con modelado Orientado a Objetos  Hay vínculo “natural” entre requerimientos (casos de uso) y clases  Las herramientas arquitectónicas generan el código de la aplicación
  • 9. Arquitectura es…  Vista estructural de alto nivel  Define estilo o combinación de estilos para una solución  Se concentra en requerimientos no funcionales • Los requerimientos funcionales se satisfacen mediante modelado y diseño de aplicación  Esencial para éxito o fracaso de un proyecto
  • 10. Corrientes principales  Arquitectura estructural – SEI – Carnegie Mellon • Garlan, Shaw, Clements • Variantes con modelos de datos (Medvidovic), radicales, formales (Moriconi-SRI), etc  Arquitectura como etapa de la ingeniería de software orientada a objetos • James Rumbaugh, Grady Booch, Ivar Jacobson (“los 3…”), Craig Larman…  Arquitectura basada en patrones – SEI • Redefinición de estilos como patrones POSA • Microsoft Patterns & Practices  Arquitectura procesual y metodologías • Kazman, Bass (SEI) • Variantes de arquitectura basada en escenarios
  • 11. Estilos Arquitectónicos  Rumbaugh & al 1991 • (1) transformaciones en lote, (2) transformaciones continuas, (3) interfaz interactiva, (4) simulación dinámica de objetos del mundo real, (5) sistemas de tiempo real, (6) administrador de transacciones con almacenamiento y actualización de datos • Pero: “estilos arquitectónicos”, “arquitecturas comunes”, “marcos de referencia arquitectónicos prototípicos”, “formas comunes”, “clases de sistemas”
  • 12. Estilos – Nueva concepción  Perry & Wolf, 1992  Componentes (ahora: Elementos)  Conectores  Configuraciones  Restricciones (Constraints)  “Mano mágica” (Fielding, 2000) UML?
  • 13. Estilos Arquitectónicos Estilos de Flujo de Datos • Tubería y filtros Estilos Centrados en Datos • Arquitecturas de Pizarra o Repositorio Estilos de Llamada y Retorno • Model-View-Controller (MVC) • Arquitecturas en Capas • Arquitecturas Orientadas a Objetos • Arquitecturas Basadas en Componentes Estilos de Código Móvil • Arquitectura de Máquinas Virtuales Estilos heterogéneos • Sistemas de control de procesos • Arquitecturas Basadas en Atributos Estilos Peer-to-Peer • Arquitecturas Basadas en Eventos • Arquitecturas Orientadas a Servicios • Arquitecturas Basadas en Recursos
  • 14. Estilos derivados  C2  GenVoca  REST
  • 15. Estilos  Sirven para sintetizar estructuras de soluciones  Pocos estilos abstractos encapsulan una enorme variedad de configuraciones concretas  Definen los patrones posibles de las aplicaciones  Permiten evaluar arquitecturas alternativas con ventajas y desventajas conocidas ante diferentes conjuntos de requerimientos no funcionales
  • 16. Ejemplo  Mala práctica: • Aplicaciones clientes que consultan si sucedió algo • Listener de HTTP, Archivo, Colas  Buena práctica: • Estilo basado en Eventos
  • 17. Ejemplo Arquitectura basada en eventos Modelo de push a veces se vincula con patrón Observador (Observer pattern)
  • 18. Arquitectura basada en eventos  Ventajas • Simplicidad • Evolución: se pueden reemplazar componentes suscriptores • Modularidad: una sola modalidad para eventos diversos • Puede mejorar eficiencia, eliminando la necesidad de polling por ocurrencia de evento  Desventajas • Posibilidad de desborde • Potencial imprevisión de escalabilidad • Pobre comprensibilidad: Puede ser difícil prever qué pasará en respuesta a una acción • No hay garantía del lado del publisher que el suscriptor responderá al evento • No hay mucho soporte de recuperación en caso de falla parcial
  • 19. Arquitectura basada en eventos  Dos modelos de arquitectura e implementación  Tightly coupled events (TCE, eventos fuertemente acoplados) • P. ej. COM Connection Points. • Requiere que ambos componentes estén corriendo simultáneamente. No hay forma de filtrar evento (p. ej. cuando acción alcance cierto valor) • Requiere conocer ambas interfaces específicas  Losely coupled events (LCE, eventos débilmente acoplados) • P. ej. COM+ Events • Almacenamiento de eventos (COM+ Catalog) • Referencia: MSDN Library – COM+ Technical Series: Losely coupled events
  • 20. Arquitectura basada en eventos  Permiten invocación implícita de una herramienta cuando otra herramienta produce un evento  También se llama Invocación implícita • Un componente anuncia un evento. Otros registran interés en ese tipo de evento. Cuando se produce, el sistema (la “mano invisible”) lo comunica a los suscriptores.  Algunos incluyen a MVC en esta clase  Modelo Publish / Subscribe  MS: Registración de Eventos COM+, eventos (listeners) de BizTalk Server, Notification Service de SQL Server Demo
  • 21. Arquitectura basada en eventos  Herramientas en ambiente COM+/.NET  En muchos casos no se requiere programación de bajo nivel  También hay profusión de herramientas programáticas y servicios de “mano mágica”  Administrative tools • Component Services COM+ Applications  .NET Utilities, Biztalk Server/Interchange
  • 22. Relación entre Estilos y Patrones (Patterns)
  • 23. Patterns  Christopher Alexander, 1977  Un patrón es una solución a un problema en un contexto  Un patrón codifica conocimiento específico acumulado por la experiencia en un dominio  Un sistema bien estructurado está lleno de patrones
  • 24. Patterns - Alexander  “Cada patrón describe un problema que ocurre una y otra vez en nuestro ambiente, y luego describe el núcleo de la solución a ese problema, de tal manera que puedes usar esa solución un millón de veces más, sin hacer jamás la misma cosa dos veces.”  Ejemplos: galería, paseo, patio compartido, columnata, estacionamiento
  • 25. Elementos de un patrón  Nombre • Define un vocabulario de diseño • Facilita abstracción  Problema • Describe cuando aplicar el patrón • Conjunto de fuerzas: objetivos y restricciones • Prerrequisitos  Solución • Elementos que constituyen el diseño (template) • Forma canónica para resolver fuerzas  Consecuencias • Resultados, extensiones y tradeoffs MVC
  • 26. Comentario Problemas Soluciones Fase de Desarrollo Patrones de Arquitectura Relacionados a la interacción de objetos dentro o entre niveles arquitectónicos Problemas arquitectónicos, adaptabilidad a requerimientos cambiantes, performance, modularidad, acoplamiento Patrones de llamadas entre objetos (similar a los patrones de diseño), decisiones y criterios arquitectónicos, empaquetado de funcionalidad Patrones de Diseño Conceptos de ciencia de computación en general, independiente de aplicación Claridad de diseño, multiplicación de clases, adaptabilidad a requerimientos cambiantes, etc Comportamiento de factoría, ClaseResponsabilidadContrato (CRC) Diseño detallado Patrones de Análisis Usualmente específicos de aplicación o industria Modelado del dominio, completitud, integración y equilibrio de objetivos múltiples, planeamiento para capacidades adicionales comunes Modelos de dominio, conocimiento sobre lo que habrá de incluirse (p. ej. logging & reinicio) Análisis Patrones de Proceso o de Organización Desarrollo o procesos de administración de proyectos, o técnicas, o estructuras de organización Productividad, comunicación efectiva y eficiente Armado de equipo, ciclo de vida del software, asignación de roles, prescripciones de comunicación Planeamiento Estándares de codificación y proyecto Operaciones comunes bien conocidas en un nuevo ambiente, o a través de un grupo. Legibilidad, predictibilidad. Sumamente específicos de un lenguaje, plataforma o ambiente Implementación, Mantemimiento, Despliegue Idiomas Diseño inicial
  • 27. Organización de Patrones  Propuesta por MS para Enterprise Solution Patterns Using Microsoft .NET (ESP)  Propósito: • Identificar relaciones entre patrones • Agrupar patrones en clusters • Identificar patrones a diversos niveles de abstracción • Aplicar patrones a múltiples aspectos de una solución • Organizar patrones en un frame • Usar patrones para describir en forma concisa una solución…
  • 28. Ejemplos de ESP Niveles de abstracción Vistas Documento Frame
  • 29. Requerimientos no funcionales Escenarios, tácticas, frameworks  Performance  Disponibilidad  Modificabilidad  Seguridad  Verificabilidad (Testability)  Gestionabilidad (instrumentación, management, estado)  Usabilidad
  • 31. Escenarios  Estímulo, ambiente, respuesta  Escenario de caso de uso: •  Escenario de crecimiento: •  Un usuario remoto de web requiere un reporte de base de datos en hora pico y lo recibe dentro de los 5 segundos. Agregar un nuevo servidor de base de datos para reducir latencia en escenario 1 a 2.5 segundos dentro de una persona-semana. Escenario exploratorio: • La mitad de los servidores se bajará durante operación normal sin afectar la disponibilidad del sistema.
  • 32. Ejemplo de metodología Refinamiento de Escenario  Los escenarios se refinan considerando: • 1. Estímulo - La condición que afecta al sistema • 2. Respuesta - La actividad que resulta del estímulo • 3. Fuente del estímulo - La entidad que lo genera • 4. Ambiente - La condición bajo la cual el estímulo ocurre • 5. Artefacto estimulado • 6. Medida de respuesta - Para evaluar la respuesta del sistema  Se describen los objetivos de negocio/misión afectados por el escenario y las cualidades relevantes asociadas con él  En funcíón de los escenarios se pueden evaluar los estilos arquitectónicos que pueden satisfacer los requerimientos
  • 33. Lenguajes de Descripción Arquitectónica (ADLs)  Componentes  Conectores  Configuraciones o sistemas  Propiedades no funcionales  Restricciones  Estilos  Evolución  Herramientas de verificación
  • 34. ADL Acme Aesop Fecha 1995 1994 Investigador - Organismo Monroe & Garlan (CMU), Wile (USC) Garlan (CMU) ArTek 1994 Armani C2 SADL CHAM Darwin Jacal 1998 1996 1990 1991 1997 LILEANNA MetaH Rapide SADL 1993 1993 1990 1995 Terry, Hayes-Roth, Erman (Teknowledge, DSSA) Monroe (CMU) Taylor/Medvidovic (UCI) Berry / Boudol Magee, Dulay, Eisenbach, Kramer Kicillof , Yankelevich (Universidad de Buenos Aires) Tracz (Loral Federal) Binns, Englehart (Honeywell) Luckham (Stanford) Moriconi, Riemenschneider (SRI) UML 1995 Rumbaugh, Jacobson, Booch (Rational) UniCon 1995 Shaw (CMU) Wright 1994 Garlan (CMU) xADL 2000 Medvidovic, Taylor (UCI, UCLA) Observaciones Lenguaje de intercambio de ADLs ADL de propósito general, énfasis en estilos Lenguaje específico de dominio No es ADL ADL asociado a Acme ADL específico de estilo Lenguaje de especificación ADL con énfasis en dinámica Adl - Notación de alto nivel para descripción y prototipado Lenguaje de conexión de módulos ADL específico de dominio ADL & simulación ADL con énfasis en mapeo de refinamiento Lenguaje genérico de modelado – No es ADL ADL de propósito general, énfasis en conectores y estilos ADL de propósito general, énfasis en comunicación ADL basado en XML
  • 35. Métodos basados en Arquitectura  Architecture Tradeoff Analysis Method (ATAM)  Quality Attribute Workshops (QAW)  Attribute-Driven Design (ADD)  Active Reviews for Intermediate Designs (ARID)  Cost-Benefit Analysis Method (CBAM)  Software Architecture Comparison Analysis Method (SACAM)  Quality-Attribute-Driven Software Architecture Reconstruction (QADSAR)  Architecture Based Design Method (ABD)  Software Architecture Analysis Method (SAAM)
  • 36. Usos de estilos Mary Shaw, David Garlan, 1996 • IEEE98SA-Styles-Patterns.pdf • Inspirado en trabajo de Parnas, 1972 (“On the criteria to be used in decomposing systems into modules”) – Datos compartidos vs ocultamiento de información Sistema de indexación de palabras claves • Datos compartidos • Tipos abstractos de datos • Invocación implícita • Tubería y filtros Comparación de versatilidad, dependencia, modularidad, reutilización, refinamiento, ventajas & desventajas Antes de escribir una línea de código Tablas de comparación de atributos Asignación de pesos a prioridades Paper
  • 37. Síntesis  Arquitectura:  Visión de alto nivel  Estilo - Patrón  Previo a diseño de aplicación  Requerimientos no funcionales  Escenarios  Lenguajes de descripción arquitectónica
  • 38. Referencias  Len Bass, Paul Clements, Rick Lazman. Software Architecture in Practice, 2a edición, Addison-Wesley, 2003  Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal. Pattern Oriented Software Architecture, vol. 1. Wiley, 1996  Documentos en http://www.microsoft.com/spanish/msdn/Arquitectura Docs…
  • 39. Webcast # 2 – Drilldown en estilos de arquitectura  Diseñar desde arriba: La especificidad de la abstracción arquitectónica  Estilos: historia, definición, inventario  Estilos fundamentales  Práctica arquitectónica  Implementando estilos con Windows services, Middleware MS y .NET Framework