arquitectura de software - …isis3702/dokuwiki/lib/... · arquitectura de software puntos de vista...
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/30.jpg)
• 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](https://reader031.vdocuments.site/reader031/viewer/2022022701/5bbe2e4509d3f2396a8bcebc/html5/thumbnails/31.jpg)
31
Bibliografía • [1] Rozanski N, Woods E. “Software Systems Architecture” Addison-
Wesley. 2005