![Page 1: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/1.jpg)
Mario González
![Page 2: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/2.jpg)
AgendaIntroducción histórica¿Qué es la arquitectura de software?Arquitectura y sus efectos en los StakeholdersEstructuras arquitectónicas
Vista lógicaVista de códigoVista de desarrolloVista de coincidenciaVista física
Escenarios
![Page 3: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/3.jpg)
Agenda (Cont.)
Lenguajes de descripción arquitectónica (ADLs)Arquitectura como decisiones prematuras de diseñoEstilos arquitectónicosArquitecturas para líneas de producciónDiseño y análisis de la arquitecturaDiseño basado en arquitectura
![Page 4: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/4.jpg)
Agenda (Cont.)
Análisis basado en arquitecturaAnalizando los Impactos en el negocio de las decisiones arquitectónicasIngeniería en reversa de la arquitecturaEl futuro
![Page 5: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/5.jpg)
Introducción histórica
Se comenzó a usar desde 1990 debidoal tamaño y complejidad de los sistemasque comenzaron a surgir.
Razones:Comunicación entre stakeholdersDecisiones de diseñoAbstracción transferible de un sistema
![Page 6: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/6.jpg)
¿Qué es la arquitectura de software
La arquitectura de software de unprograma o sistema de computación esla(s) estructura(s) del sistema quecomprende los componentes del software,las propiedades visibles de esoscomponentes y las relaciones entre ellos.
![Page 7: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/7.jpg)
Arquitectura y sus efectos en los Stakeholders
La arquitectura afecta a todos losrelacionados con el proyecto, afecta a losclientes, al gerentes, al equipo dedesarrollo, al equipo de pruebas, etc. Cadastakeholder se preocupa por partesespecificas del sistema, y esto se vereflejado en la arquitectura del sistema. Laarquitectura provee un lenguaje medianteel cual los stakeholders comprenden elsistema y se comunican para tomardecisiones importantes.
![Page 8: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/8.jpg)
Estructuras arquitectónicas
Existen diferentes tipos de vistas que permiten ver la arquitectura de un sistema más en detalle
Vista lógicaVista de códigoVista de desarrolloVista de coincidenciaVista física
![Page 9: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/9.jpg)
Vista lógica
Abstracción de las funciones el sistema y sus relaciones.
![Page 10: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/10.jpg)
Vista de código
Esta vista es la que ve elprogramador, los elementos quetiene este tipo de vista sonclases, objetos, métodos yfunciones y su composición paraformar subsistemas, capas ymódulos
![Page 11: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/11.jpg)
Vista de código (Cont.)
![Page 12: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/12.jpg)
Vista de desarrollo
La vista de desarrollo la usan losdesarrolladores, pero es diferentea la vista de código, esta es unavista de la estructura del códigofuente, como un repositorio elcual varios usuarios(programadores y demantenimiento) crean, modificany administran
![Page 13: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/13.jpg)
Vista de desarrollo (Cont.)
![Page 14: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/14.jpg)
Vista de coincidencia
Esta vista permite deducir los procesose hilos que se van a crear y como sevan a comunicar y a compartir recursos.
![Page 15: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/15.jpg)
Vista física
La vista física describe losrecursos de HW del sistema.En sistemas pequeños estrivial la vista física puestoque un solo computador es elque se encarga de manejartodos los procesos
![Page 16: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/16.jpg)
Vista física (Cont.)
![Page 17: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/17.jpg)
Escenarios
![Page 18: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/18.jpg)
Escenarios (Cont.)
Los escenarios se usan para:Entender y validar la arquitectura.Establecer cierta comunicación entre la arquitectura y aquellos que no tuvieron mucho que ver con su creación.Unir las diferentes vistas.Entender los límites de la arquitectura.
![Page 19: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/19.jpg)
Lenguajes de descripción arquitectónica (ADLs)
Debido a la gran importancia de ladescripción arquitectónica, y a suuso como medio de comunicaciónentre los diferentes stakeholders, sehan tratado de desarrollar diferenteslenguajes para soportar estadescripción, algunos han tenidoéxito, y otros han fracasado.
![Page 20: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/20.jpg)
Decisiones tempranas de diseño
El diseño de la arquitectura describela forma en que el sistema estácompuesto. Esto hace que se creenuna serie de restricciones a laimplementación como la forma decomunicación, y como se van aasignar los recursos.
![Page 21: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/21.jpg)
Estilos arquitectónicosDescriben una clase de arquitecturas,
o piezas significantes de una arquitectura.
Son muy usados en la práctica.
Es un paquete coherente de decisiones de diseño.
Tienen propiedades identificadas que permiten el re-uso.
![Page 22: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/22.jpg)
Estilos arquitectónicos (Cont.)
Algunos estilos arquitectónicos considerados por Shaw y Garlan:
Componentes independientes: procesos de comunicación, invocación explicita e invocación implícita.Flujo de datos: batch sequential, pipe and filter.Centralización de datos: repositorio, blackboard.Maquina virtual: Interpreter, sistema basado en reglas.Call/return: programa principal y subrutina, Orientado a objetos, por capas.
![Page 23: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/23.jpg)
Estilos arquitectónicos (Cont.)
Deben tener por lo menos la siguiente información:
Un conjunto de tipos de componentes.Un conjunto de tipos de mecanismos de conexión.Una disposición topológica de los componentes.Una serie de restricciones topológicas y de comportamiento.Una descripción acerca de los costos y beneficios de cada uno de los estilos.
![Page 24: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/24.jpg)
Diseño y análisis de la arquitectura
Asegurar que nuestras decisiones de diseño son coherentes con las metas de calidad establecidas.Predecir los atributos de calidad que el sistema tendrá.Asegurar que el sistema satisface las necesidades de su stakeholder.Asegurar que as decisiones de diseño traen el mayor beneficio a la organización.
![Page 25: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/25.jpg)
Diseño basado en arquitectura
Propone un método detransformar un conjunto derequerimientos del cliente en unaarquitectura para un sistema opara una línea de producción, através de descomposiciones yrefinamientos.
![Page 26: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/26.jpg)
Diseño basado en arquitectura (Cont.)
Lista de requerimientos.
Descomponer diseño
arquitectónico.
Se satisfacen los atributos de calidad asociando estilos
arquitectónicos con los requerimientos.
![Page 27: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/27.jpg)
Diseño basado en arquitectura (Cont.)
El diseño se concentra en tres vistas arquitectónicas:
la funcionalla de coincidenciala física.
![Page 28: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/28.jpg)
Análisis basado en arquitectura
Se hace un análisis al diseño conel fin de asegurar que lascualidades que el arquitecto haplaneado para la arquitectura sepuedan realizar. Este análisis sehace basándose en escenarios,de los cuales se sacan los datosque se quieren medir.
![Page 29: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/29.jpg)
Ingeniería en reversa de la arquitectura
Razones:Las arquitecturas pueden no haber sidodocumentadas nunca, y los únicos queentienden la arquitectura son empleadosque ya dejaron la organización.Se adquieren nuevos productos sindocumentación arquitectónica.El trabajo de los programadores hacambiado algunas de las restriccionespreviamente establecidas por el arquitecto.
![Page 30: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/30.jpg)
Futuro
![Page 31: Arquitectura de software - LDC Noticiasabianc/materias/ci4712/Software Architecture... · permiten ver la arquitectura de un sistema más en detalle y Vista lógica y Vista de código](https://reader031.vdocumento.com/reader031/viewer/2022021622/5ba1bcf609d3f2616b8cfdbc/html5/thumbnails/31.jpg)
Referencias
Rick Kazman, Software Architecture, Handbook of Software Engineering and Knowledge Engineering, 2001.