• No se han encontrado resultados

Arquitectura de Software III: Representación. Contenido del curso. III: Representación

N/A
N/A
Protected

Academic year: 2022

Share "Arquitectura de Software III: Representación. Contenido del curso. III: Representación"

Copied!
8
0
0

Texto completo

(1)

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 – Componentes

P

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, ADLs

(2)

Vistas

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

(3)

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

(4)

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 una

misma 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

(5)

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.)

(6)

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 Telecom

p 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

(7)

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)

(8)

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)

Referencias

Documento similar

En este Capitulo luego de realizar una representación de las diferentes Vistas Arquitectónicas, permitiendo describir la arquitectura, se puede concluir, que las mismas

Número de tarea: 1 Número de Historia de usuario: 2 Nombre de tarea: Creación de la tabla en la Base de Datos del módulo Medias Tipo de tarea: Desarrollo Puntos estimado:

En este capítulo de describió la necesidad de evaluar la arquitectura de software, los momentos en que se debe evaluar, las personas que están involucradas en

Este documento contiene un estudio de los fundamentales elementos que constituyen la Arquitectura de Software, partiendo de sus principales conceptos, tendencias de los

OracleMaps es el nombre de una librería en JavaScript que tiene la cualidad de poder acceder a información geoespacial almacenada en bases de datos espaciales a través del servidor

De este modo, el objeto de la arquitectura de software no es el diseño de algoritmos o estructuras de datos, sino la organización a alto nivel de los sistemas de

Para desarrollar esta capa se ha elegido Plone, debido a que es un marco de trabajo de componentes de interfase de usuario del lado del servidor para aplicaciones Web, permite

El presente trabajo de diploma contiene un estudio de los principales elementos que constituyen la Arquitectura de Software, durante su desarrollo se realiza un análisis de