Post on 06-Apr-2018
transcript
8/2/2019 Estructuras Arquitectonicas de Software
1/31
Mario Gonzlez
8/2/2019 Estructuras Arquitectonicas de Software
2/31
AgendaIntroduccin histricaQu es la arquitectura de software?
Arquitectura y sus efectos en losStakeholdersEstructuras arquitectnicas
Vista lgicaVista de cdigoVista de desarrolloVista de coincidenciaVista fsica
Escenarios
8/2/2019 Estructuras Arquitectonicas de Software
3/31
Agenda (Cont.)
Lenguajes de descripcin arquitectnica
(ADLs) Arquitectura como decisionesprematuras de diseoEstilos arquitectnicos
Arquitecturas para lneas de produccinDiseo y anlisis de la arquitecturaDiseo basado en arquitectura
8/2/2019 Estructuras Arquitectonicas de Software
4/31
Agenda (Cont.)
Anlisis basado en arquitectura
Analizando los Impactos en el negociode las decisiones arquitectnicas
Ingeniera en reversa de la arquitecturaEl futuro
8/2/2019 Estructuras Arquitectonicas de Software
5/31
Introduccin histrica
Se comenz a usar desde 1990 debido
al tamao y complejidad de los sistemasque comenzaron a surgir.
Razones:Comunicacin entre stakeholders
Decisiones de diseo
Abstraccin transferible de un sistema
8/2/2019 Estructuras Arquitectonicas de Software
6/31
Qu es la arquitectura de
software
La arquitectura de software de unprograma o sistema de computacin esla(s) estructura(s) del sistema quecomprende los componentes del software,
las propiedades visibles de esoscomponentes y las relaciones entre ellos.
8/2/2019 Estructuras Arquitectonicas de Software
7/31
Arquitectura y sus efectos en los
StakeholdersLa 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 tomar decisiones importantes.
8/2/2019 Estructuras Arquitectonicas de Software
8/31
Estructuras arquitectnicas
Existen diferentes tipos de vistas que
permiten ver la arquitectura de unsistema ms en detalle
Vista lgicaVista de cdigo
Vista de desarrolloVista de coincidenciaVista fsica
8/2/2019 Estructuras Arquitectonicas de Software
9/31
Vista lgica
Abstraccin de las funciones el sistema
y sus relaciones.
8/2/2019 Estructuras Arquitectonicas de Software
10/31
Vista de cdigo
Esta vista es la que ve elprogramador, los elementos quetiene este tipo de vista son
clases, objetos, mtodos yfunciones y su composicin para
formar subsistemas, capas ymdulos
8/2/2019 Estructuras Arquitectonicas de Software
11/31
Vista de cdigo (Cont.)
8/2/2019 Estructuras Arquitectonicas de Software
12/31
Vista de desarrollo
La vista de desarrollo la usan losdesarrolladores, pero es diferentea la vista de cdigo, esta es una
vista de la estructura del cdigofuente, como un repositorio el
cual varios usuarios(programadores y demantenimiento) crean, modificany administran
8/2/2019 Estructuras Arquitectonicas de Software
13/31
Vista de desarrollo (Cont.)
8/2/2019 Estructuras Arquitectonicas de Software
14/31
Vista de coincidencia
Esta vista permite deducir los procesos
e hilos que se van a crear y como sevan a comunicar y a compartir recursos.
8/2/2019 Estructuras Arquitectonicas de Software
15/31
Vista fsica
La vista fsica describe losrecursos de HW del sistema.En sistemas pequeos estrivial la vista fsica puestoque un solo computador es elque se encarga de manejar todos los procesos
8/2/2019 Estructuras Arquitectonicas de Software
16/31
Vista fsica (Cont.)
8/2/2019 Estructuras Arquitectonicas de Software
17/31
Escenarios
8/2/2019 Estructuras Arquitectonicas de Software
18/31
Escenarios (Cont.)
Los escenarios se usan para:Entender y validar la arquitectura.Establecer cierta comunicacin
entre la arquitectura y aquellos queno tuvieron mucho que ver con sucreacin.
Unir las diferentes vistas.Entender los lmites de la
arquitectura.
L j d d i i
8/2/2019 Estructuras Arquitectonicas de Software
19/31
Lenguajes de descripcinarquitectnica (ADLs)
Debido a la gran importancia de la
descripcin arquitectnica, y a suuso como medio de comunicacin
entre los diferentes stakeholders, sehan tratado de desarrollar diferenteslenguajes para soportar estadescripcin, algunos han tenidoxito, y otros han fracasado.
8/2/2019 Estructuras Arquitectonicas de Software
20/31
Decisiones tempranas de diseo
El diseo de la arquitectura describe
la forma en que el sistema estcompuesto. Esto hace que se creenuna serie de restricciones a laimplementacin como la forma decomunicacin, y como se van a
asignar los recursos.
8/2/2019 Estructuras Arquitectonicas de Software
21/31
Estilos arquitectnicosDescriben una clase de arquitecturas,
o piezas significantes de una
arquitectura.
Son muy usados en la prctica.
Es un paquete coherente dedecisiones de diseo.
Tienen propiedades identificadas quepermiten el re-uso.
8/2/2019 Estructuras Arquitectonicas de Software
22/31
Estilos arquitectnicos (Cont.)
Algunos estilos arquitectnicosconsiderados por Shaw y Garlan:
Componentes independientes: procesos decomunicacin, invocacin explicita e invocacinimplcita.Flujo de datos: batch sequential, pipe and filter.Centralizacin de datos: repositorio, blackboard.Maquina virtual: Interpreter, sistema basado enreglas.Call/return: programa principal y subrutina,Orientado a objetos, por capas.
8/2/2019 Estructuras Arquitectonicas de Software
23/31
Estilos arquitectnicos (Cont.)
Deben tener por lo menos la siguienteinformacin:
Un conjunto de tipos de componentes.Un conjunto de tipos de mecanismos deconexin.Una disposicin topolgica de loscomponentes.
Una serie de restricciones topolgicas y decomportamiento.Una descripcin acerca de los costos ybeneficios de cada uno de los estilos.
8/2/2019 Estructuras Arquitectonicas de Software
24/31
Diseo y anlisis de la
arquitectura Asegurar que nuestras decisiones de
diseo son coherentes con las metas decalidad establecidas.Predecir los atributos de calidad que el
sistema tendr. Asegurar que el sistema satisface lasnecesidades de su stakeholder.
Asegurar que as decisiones de diseotraen el mayor beneficio a laorganizacin.
8/2/2019 Estructuras Arquitectonicas de Software
25/31
Diseo basado en arquitectura
Propone un mtodo detransformar un conjunto derequerimientos del cliente en una
arquitectura para un sistema opara una lnea de produccin, a
travs de descomposiciones yrefinamientos.
8/2/2019 Estructuras Arquitectonicas de Software
26/31
Diseo basado en arquitectura
(Cont.)
Lista derequerimientos.
Descomponer diseo
arquitectnico.
Se satisfacen losatributos de calidad
asociando estilosarquitectnicos conlos requerimientos.
8/2/2019 Estructuras Arquitectonicas de Software
27/31
Diseo basado en arquitectura
(Cont.)
El diseo se concentra entres vistas arquitectnicas:
la funcionalla de coincidenciala fsica.
8/2/2019 Estructuras Arquitectonicas de Software
28/31
Anlisis basado en arquitectura
Se hace un anlisis al diseo con
el fin de asegurar que lascualidades que el arquitecto ha
planeado para la arquitectura sepuedan realizar. Este anlisis se
hace basndose en escenarios,de los cuales se sacan los datosque se quieren medir.
Ingeniera en reversa de la
8/2/2019 Estructuras Arquitectonicas de Software
29/31
Ingeniera en reversa de laarquitectura
Razones:
Las arquitecturas pueden no haber sidodocumentadas nunca, y los nicos queentienden la arquitectura son empleados
que ya dejaron la organizacin.Se adquieren nuevos productos sindocumentacin arquitectnica.
El trabajo de los programadores hacambiado algunas de las restriccionespreviamente establecidas por el arquitecto.
8/2/2019 Estructuras Arquitectonicas de Software
30/31
Futuro
8/2/2019 Estructuras Arquitectonicas de Software
31/31
Referencias
Rick Kazman, Software Architecture ,
Handbook of Software Engineering andKnowledge Engineering, 2001.
http://sophia.javeriana.edu.co/~cbustaca/Arquitectura%20Software/Documentos/Introduccion/Articulos/Kaz2001.pdfhttp://sophia.javeriana.edu.co/~cbustaca/Arquitectura%20Software/Documentos/Introduccion/Articulos/Kaz2001.pdf