Estructuras Arquitectonicas de Software

download Estructuras Arquitectonicas de Software

of 31

Transcript of Estructuras Arquitectonicas de Software

  • 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