Arquitectura de Software III: Representación
Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María
<hernan at acm.org>
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
2
Contenido del curso
• Introducción, motivación y contexto
• Representación de arquitecturas
– Vistas– Calidad
• Elaboración de arquitecturas
– Patrones– Líneas de productos
• Procesos y evaluación de arquitecturas
– Procesos (incl. taller)• Prácticas de arquitectura
– Organizaciones y Mercados – ComponentesP
III: Representación
• Fuentes de diversidad
• Vistas
– Vistas y perspectivas – Vistas sincrónicas y diacrónicas – Booch, OMT, 4+1, RM-ODP, Zachman
• Notaciones para vistas
– UML, lenguajes de RM-ODP, ADLsVistas
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
5
Stakeholders
arquitecto
revisor specs
sistema implantador
arquitetura
QA analista
arquitetura
admin sistema arquitetura
jefe de projeto
Complejidad
• Sistemas de software son complejos
– Controlar variedad del sistema con variedad del modelo – Modelos de arquitectura son extremadamente complejos
• Fuentes de complejidad
– Imprecisión– Intangibilidad
– Concurrencia en ejecución – Concurrencia en construcción – Diversificación (líneas de productos) – Tamaño
• Problema: controlar variedad del modelo
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
7
Vistas
• Representación de un (sub-)sistema...
– ...parcial
– ...basada en una perspectiva
• Idea:
– participantes necesitan razonar sobre el sistema – entregar información que suprima detalles irrelevantes
• Conceptos
– Vista = representación de un conjunto de elementos y relaciones del sistema [Clements+]
– Perspectiva = preocupaciones propias de un stakeholder – Esquema de vistas = definiciones de vistas y perspectivas
asociadas
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
8
Enfoque conceptual de vistas
• Enfoque de [Clements+]
– Unidades – Relaciones
Vistas antes de “vistas”: Parnas
• Vistas antes de “vistas”
• Parnas (1974): “estructuras” (=unidad + relación) 1. módulos
– sobre: asignaciones de trabajo, parte-de – para: razonar sobre construcción
2. usos
– sobre: programas, depende-de – para: razonar sobre dependencias
3. procesos
– sobre: procesos, trabaja-con – para: razonar sobre ejecución
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
10
Vistas, participantes y productos
• Algunos esquemas de vistas se corresponden con…
– …los participantes en el proceso – …los productos del proceso
• Computaciones: sistema en ejecución
• Ejecutables: colección de artefactos instalables/entregables para operaciones
• Software : programas, configuración build- time
• Especificación de software : descripciones de software
• Categorización propuesta para Esquemas
– Síncrónicos: describen aspectos simultáneos de unamisma cosa
– Diacrónicos: describen aspectos sucesivos de una cosa
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
11
Vistas: Booch y OMT
1. Visión Estructural
2. Visión Dinámica 3. Visión Funcional
Vistas: Booch y OMT
• OMT: Rumbaugh, Blaha, Premerlani, Eddy, Lorenson (1991)
1. Vista estructural: estructura estática del mundo real
• sobre: objetos y relaciones
2. Vista dinámica : comportamiento del sistema
• sobre: acciones en el tiempo
• para: describir secuencias de interacciones y eventos
• Representación: diagrama de eventos (escenarios), diagrama de flujo de eventos, diagrama de estados
3. Vista funcional: procesamiento de información
• sobre: procesamiento de valores
• para: describir dependencia entre valores y funciones
• Representación: diagrama de flujo de datos
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
13
Vistas: Booch
Semántica dinámica Semántica estática
Estructura de Clase Estructura de Objeto
Arquitectura de Módulo Arquitectura de Proceso
1. Visión lógica 2. Visión física
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
14
Vistas: Kruchten “4+1” [1]
• Propuestas por Kruchten [1995]
• Incorporadas a RUP (Rational Unified Process)
Vistas: Kruchten “4+1” [2]
• Kruchten (1995): 4+1 “views”
1. Vista lógica: requisitos funcionales
• sobre: abstracciones clave del dominio (objetos/clases)
• para: completitud de requisitos, síntesis de entidades y funciones
2. Vista de procesos: ejecución
• sobre: procesos y máquinas
• para: concurrencia/distribución, integridad, tolerancia a fallas
3. Vista de desarrollo: software y trabajo
• sobre: módulos, asignación de requisitos, asignación de trabajo
• para: planificar, evaluar costos, medir progreso, razonar sobre reuso
• (Cont.)
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
16
Vistas: Kruchten “4+1” [3]
4.Vista física : requisitos no funcionales
• sobre: mapeamiento de elementos a máquinas
• para: razonar sobre requisitos no funcionales (disponibilidad, confiabilidad, rendimiento, escalabilidad...) 5.Vista de escenarios: combinación
• sobre: casos de uso
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
17
Vistas: RM-ODP [1]
• Open Distributed Processing – Reference Model
– originalmente para describir sistemas de Telecomp o l í t i c a Visió n de Empresa
Visión de Ingeniería
Visión de Tecnología Visió n de
Informació n
Visión de Computación
Vistas: RM-ODP [2]
1. Vista de la empresa
• sobre: propósito, ámbito y restricciones que rigen el negocio
• para: extraer requisitos y estructuras de la organización de la empresa
• representación: “enterprise language” (ver ejemplo)
2. Vista da información
• sobre: información (datos) requeridos por el sistema
• representación: esquemas (estático, invariante, y dinámico)
3. Vista computacional
• sobre: aplicaciones y objetos de infraestructura (interfaces, actividades, contratos); modelos dinámicos
• para: descomponer funcionalidad
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
19
Vistas: RM-ODP [3]
4. Vista de ingeniería
• sobre: objetos y canales
• para: infraestructura de distribución
5. Vista tecnológica
• sobre: hardware y software específicos
• para: razonar sobre tecnología y productos
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
20
Vistas: Hofmeister
Vistas: Zachman
• Marco metodológico para vistas
– Enfocado a organizaciones– Estructura lógica: clasifica y organizar elementos empresariales necesarios para hacer sistemas
• Vistas
1. Vista contextual (propósito del negocio) 2. Vista conceptual (naturaleza del negocio) 3. Vista arquitectural o lógica
4. Vista física (tecnología) 5. Vista de proyecto
6. Vista del sistema listo (funciones)
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
22
e.g. DATA
ENTERPRISE ARCHITECTURE - A FRAMEWORK
Builder S C O P E (CONTEXTUAL)
M O D E L ( C O N C E P T U A L ) ENTERPRISE
Designer SYSTEM M O D E L (LOGICAL)
T E C H N O L O G Y M O D E L (PHYSICAL)
DETAILED REPRESEN- TATIONS (OUT-OF- CONTEXT) S u b - C o n t r a c t o r
FUNCTIONING ENTERPRISE
DATA FUNCTION N E T W O R K
e.g. Data Definition
Ent = Field Reln = Address e.g. Physical Data Model
Ent = Segment/Table/etc.
Reln = Pointer/Key/etc.
e.g. Logical Data Model
Ent = Data Entity Reln = Data Relationship e.g. Semantic Model
Ent = Business Entity Reln = Business Relationship List of Things Important to the Business
ENTITY = Class of Business Thing
List of Processes the Business Performs
Function = Class of Business Process
e.g. Application Architecture
I/O = User Views P r o c . = A p p l i c a t i o n F u n c t i o n e.g. System Design
I/O = Data Elements/Sets Proc.= Computer Function e.g. Program
I/O = Control Block Proc.= Language Stmt
e.g. FUNCTION e.g. Business Process Model
Proc. = Business Process I/O = Business Resources
List of Locations in which the Business Operates
Node = Major Business Location e.g. Business Logistics System
Node = Business Location Link = Business Linkage e.g. Distributed System
Node = I/S Function (Processor, Storage, etc) Link = Line Characteristics e.g. Technology Architecture
Node = Hardware/System S o f t w a r e Link = Line Specifications e.g. Network Architecture
Node = Addresses Link = Protocols e . g . N E T W O R K Architecture Planner
Owner
Builder E N T E R P R I S E MODEL ( C O N C E P T U A L )
Designer SYSTEM MODEL (LOGICAL)
T E C H N O L O G Y MODEL (PHYSICAL)
DETAILED REPRESEN- T A T I O N S (OUT-OF CONTEXT) S u b - Contractor F U N C T I O N I N G MOTIVATION T I M E
P E O P L E
e.g. Rule Specification
End = Sub-condition Means = Step e.g. Rule Design
End = Condition Means = Action e.g., Business Rule Model
End = Structural Assertion Means =Action Assertion End = Business Objective Means = Business Strategy List of Business Goals/Strat
E n d s / M e a n s = M a j o r B u s . G o a l / Critical Success Factor List of Events Significant
Time = Major Business Event
e.g. Processing Structure
Cycle = Processing Cycle Time = System Event e.g. Control Structure
C y c l e = C o m p o n e n t C y c l e Time = Execute e.g. Timing Definition
Cycle = Machine Cycle Time = Interrupt
e . g . S C H E D U L E e.g. Master Schedule
Time = Business Event Cycle = Business Cycle List of Organizations
People = Major Organizations e.g. Work Flow Model
People = Organization Unit Work = Work Product e.g. Human Interface
People = Role Work = Deliverable e.g. Presentation Architecture
People = User Work = Screen Format e.g. Security Architecture
P e o p l e = I d e n t i t y W o r k = J o b e . g . O R G A N I Z A T I O N
Planner
O w n e r t o t h e B u s i n e s s
Important to the Business
W h a t How Where Who W h e n W h y
John A. Zachman, Zachman International (810) 231-0531
S C O P E (CONTEXTUAL)
Architecture
e.g. STRATEGY ENTERPRISE e . g . B u s i n e s s P l a n
T M
Figura A.1 – Framework de Zachman
Sesión 4/5 [2004-iv-06] Arquitectura de Software - H.Astudillo
23
Referencias
• Documenting Software Architectures: Views and Beyond – Paul Clements (Ed.), Felix Bachmann, Len Bass, David Garlan,
James Ivers, Reed Little, Robert Nord, Judith Stafford – Addison Wesley (2002)
• The Rational Unified Process: An Introduction (2nd Ed.) – Philippe Kruchten
– Addison Wesley (2000)
• Software Architectures for Product Families – Mehdi Jazayeri, Alexander Ran, Frank van der Linden – Addison Wesley (2000)