arquitectura de software - …isis3702/dokuwiki/lib/... · arquitectura de software puntos de vista...

31
Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación

Upload: lyhanh

Post on 10-Oct-2018

240 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Arquitectura de Software

Puntos de Vista

Departamento de Ingeniería de Sistemas y Computación

Page 2: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2

1. El proceso de definición de arquitectura

2. Viewpoints / Views

3. Ejercicio

Agenda del día

Page 3: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

1. El proceso de Definición de la Arquitectura

•  Normalmente comienza •  Con un conocimiento inicial del problema y su

alcance

•  Sin conocer el tamaño total del producto

•  Sin conocer todos los riesgos

•  Sin entender los conflictos internos entre los Stakeholders

3

Page 4: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

1. El proceso de Definición de la Arquitectura

•  Principios – Basado en las necesidades de los

Stakeholders – Comunicación de las decisiones – Debe ser un proceso estructurado – Debe ser pragmatico (tiempo, dinero, etc.) – Debe ser flexible – Debe ser independiente de tecnología – Debe ser integrado al proceso de desarrollo – Estar alineado con las políticas de calidad 4

Page 5: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

1. El proceso de Definición de la Arquitectura

•  Productos Esperados – Principal

•  Documento de Arquitectura – Secundarios

•  Claridad en los requerimientos •  Expectativas de los Stakeholders •  Indentificación y evaluación de posibles

arquitecturas •  Criterios de aceptación de la arquitectura •  Un conjunto de artefactos para iniciar el diseño

detallado 5

Page 6: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

1. El proceso de Definición de la Arquitectura

6

Definir contexto y alcance inicial

Involucrar Stakeholders

Identificar Concerns Relevantes

Definir Arquitectura

Concerns

Contexto y alcance

Arquitectura del Sistema (AD)

Lineamientos y Restricciones

Entradas Salidas

Tomado de [1] pag 78

Page 7: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

1. El proceso de Definición de la Arquitectura

•  Definición de la arquitectura del sistema

7

1. Consolidar Entradas

2. Identificar Escenarios

3. Identificar Estilos de Arquitectura

4. Producir Arquitectura Candidata

5. Explorar Opciones Arquitecturales

6. Evaluar la Arquitectura con los

Stakeholders

7b. Revisar Requerim.

7a. Modificar la Arquitectura

KEY: FlowChart Aceptada No aceptada

Tomado de [1] pag 81

Page 8: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

1. El proceso de Definición de la Arquitectura

•  Producir Arquitectura Candidata •  Objetivos

–  Producir una primera versión de la arquitectura

•  Entradas – Concerns –  Architectural Styles –  Viewpoints –  Perspectives

•  Salidas –  Architectural Views (Draft)

8

Page 9: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Agenda

9

1. El proceso de definición de arquitectura

2. Viewpoints / Views

3. Ejercicio

Page 10: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

•  Algunas preguntas relevantes durante la definición de la arquitectura

– Cuáles son los principales elementos funcionales?

– Cómo interactuan entre ellos? – Qué información almacenar y presentar? – Qué hardware y software se va a necesitar? – Cómo serán los ambientes de desarrollo,

pruebas y producción ? 10

Page 11: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

•  Opciones para responder estas y otras preguntas

– Hacer un único modelo ✖

– Utilizar las vistas arquitecturales ✔

11

Page 12: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

12

Estrategia Describir un sistema complejo, utilizando un conjunto de vistas interrelacionadas para ilustrar sus carácterísticas funcionales y propiedades de calidad.[1]

Page 13: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

13

“ A view is a representation of one or more structural aspects of an architecture that illustrates how the architecture addresses one or more concerns held by one or more stakeholders” [1]

Page 14: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

•  Qué información incluir en una vista?

– A cuál stakeholder esta orientada? – Qué tanto entiende de tecnología el

stakeholder? – Cuáles concerns se pretenden resolver en

dicha vista?

14

Page 15: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

15

“ A viewpoint is a collection of patterns, templates, and conventions for construncting one type of view. It defines the stakeholders whose concerns are reflected in the viewpoint and the guidelines, principles, and template models for constructing its views” [1]

Page 16: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

•  Beneficios al utilizar vistas

– Separación de Concerns – Comunicacción con los Stakeholders – Reducción de complejidad – Facilidad en el diseño y desarrollo del sistema

16

Page 17: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

•  Problemas al utilizar vistas

–  Inconsistencia entre las vistas – Error en la selección de las vistas – Fragmentación de la información

17

Page 18: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views

•  El catálogo de Puntos de vista [1]

18

Functional Viewpoint

Information Viewpoint

Development Viewpoint

Deployment Viewpoint

Concurrency Viewpoint

Operational Viewpoint

Page 19: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

2. Viewpoints / Views Viewpoint Propósito

Functional Describir los elementos funcionales del sistema, sus responsabilidades, interfaces e interacciones.

Information Describe la manera como la arquitectura guarda, manipula, maneja y distribuye información.

Concurrency Describe la estructura de concurrencia del sistema y relaciona elementos funcionales con unidades de concurencia y como serán coordinadas y controladas.

Development Describe la arquitectura que soporta el proceso de desarrollo del sistema.

Deployment Describe el ambiente dentro del cual el sistema será instalado, incluyendo las dependencias con el ambiente de ejecución, incluyendo una correspondencia de los elementos de software con el ambiente de su ejecución.

Operational Describe como el sistema será operado, administrado y soportado cuando este ejecutandose en su ambiente de producción.

19

Page 20: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Agenda

20

1. El proceso de definición de arquitectura

2. Viewpoints / Views

3. Ejercicio

Page 21: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Caso de Estudio WWW

•  Para cada una de las vistas identifique: – Que concerns abordan? – Si las pudiera clasificar en alguna de los 6

tipos propuestos, cuál sería, y porqué? – A cuál (es) stakeholders les puede interesar

cada vista? – Qué tipo de elementos arquitecturales

presenta?

Page 22: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Caso de Estudio WWW

•  Para cada una de las vistas identifique: – Cuáles son sus responsabilidades? – Qué conjunto de interfaces deben ofrecer? – Qué relaciones existen entre los elementos? – Corresponden a estructuras estáticas o

dinámicas?

Page 23: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Caso de Estudio WWW

•  El primer párrafo de la pagina 339 describe el proceso de manejo de una solicitud de un CGI por parte del servidor. –  Qué relación puede encontrar entre la descripción del

proceso y los elementos los elementos de la figura 13.5?

Page 24: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Caso de Estudio WWW

•  Construya una diagrama de secuencia del flujo de datos y de control entre los varios componentes del servidor HTTP para cumplir la solicitud (vista dinámica) –  Comience el diagrama con un evento del HTTP Client

llamado “request”

Page 25: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Diagrama de Secuencia HTTP Server

Request

Path Resolver

Resolve path and type

Access Control

Consult Access List

Stream Manager

Request

Request Analysis

Write Request

OutputStream

User Valid

OutputStream OutputStream

Page 26: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Caso WWW

•  Relacione los componentes de la figura 13.5 con las capas de las que dependen para ejecutar sus servicios.

•  Piense en el tipo de servicios que debe usar cada componente de la figura 13.5 y que capa debería ser la encargada de ofrecerlos.

Page 27: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Vista por capas de libWWW Application Modules

Access Modules

Stream Modules

Core

Generic Utilities

Page 28: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Vista Despliegue

HTTP Client HTTP Server

Access Control

Cache Manager

Stream Manager

Presentation Manager

UI Manager

Protocol Manager

Logging Path Resolver

Stream Manager

Access Control

Request Analysis

Page 29: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

Relaciones

Page 30: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

•  Material preparado por – Darío Correal – Nicolás López

30

Page 31: Arquitectura de Software - …isis3702/dokuwiki/lib/... · Arquitectura de Software Puntos de Vista Departamento de Ingeniería de Sistemas y Computación . 2 1. El proceso de definición

31

Bibliografía •  [1] Rozanski N, Woods E. “Software Systems Architecture” Addison-

Wesley. 2005