Está en la página 1de 31

Mario Gonzlez

Agenda
Introduccin histrica Qu es la arquitectura de software? Arquitectura y sus efectos en los Stakeholders Estructuras arquitectnicas
Vista lgica Vista de cdigo Vista de desarrollo Vista de coincidencia Vista fsica

Escenarios

Agenda (Cont.)
Lenguajes de descripcin arquitectnica (ADLs) Arquitectura como decisiones prematuras de diseo Estilos arquitectnicos Arquitecturas para lneas de produccin Diseo y anlisis de la arquitectura Diseo basado en arquitectura

Agenda (Cont.)
Anlisis basado en arquitectura Analizando los Impactos en el negocio de las decisiones arquitectnicas Ingeniera en reversa de la arquitectura El futuro

Introduccin histrica
Se comenz a usar desde 1990 debido al tamao y complejidad de los sistemas que comenzaron a surgir. Razones:
Comunicacin entre stakeholders Decisiones de diseo Abstraccin transferible de un sistema

Qu es la arquitectura de software
La arquitectura de software de un programa o sistema de computacin es la(s) estructura(s) del sistema que comprende los componentes del software, las propiedades visibles de esos componentes y las relaciones entre ellos.

Arquitectura y sus efectos en los Stakeholders


La arquitectura afecta a todos los relacionados con el proyecto, afecta a los clientes, al gerentes, al equipo de desarrollo, al equipo de pruebas, etc. Cada stakeholder se preocupa por partes especificas del sistema, y esto se ve reflejado en la arquitectura del sistema. La arquitectura provee un lenguaje mediante el cual los stakeholders comprenden el sistema y se comunican para tomar decisiones importantes.

Estructuras arquitectnicas
Existen diferentes tipos de vistas que permiten ver la arquitectura de un sistema ms en detalle
Vista lgica Vista de cdigo Vista de desarrollo Vista de coincidencia Vista fsica

Vista lgica
Abstraccin de las funciones el sistema y sus relaciones.

Vista de cdigo
Esta vista es la que ve el programador, los elementos que tiene este tipo de vista son clases, objetos, mtodos y funciones y su composicin para formar subsistemas, capas y mdulos

Vista de cdigo (Cont.)

Vista de desarrollo
La vista de desarrollo la usan los desarrolladores, pero es diferente a la vista de cdigo, esta es una vista de la estructura del cdigo fuente, como un repositorio el cual varios usuarios (programadores y de mantenimiento) crean, modifican y administran

Vista de desarrollo (Cont.)

Vista de coincidencia
Esta vista permite deducir los procesos e hilos que se van a crear y como se van a comunicar y a compartir recursos.

Vista fsica
La vista fsica describe los recursos de HW del sistema. En sistemas pequeos es trivial la vista fsica puesto que un solo computador es el que se encarga de manejar todos los procesos

Vista fsica (Cont.)

Escenarios

Escenarios (Cont.)
Los escenarios se usan para:
Entender y validar la arquitectura. Establecer cierta comunicacin entre la arquitectura y aquellos que no tuvieron mucho que ver con su creacin. Unir las diferentes vistas. Entender los lmites de la arquitectura.

Lenguajes de descripcin arquitectnica (ADLs)


Debido a la gran importancia de la descripcin arquitectnica, y a su uso como medio de comunicacin entre los diferentes stakeholders, se han tratado de desarrollar diferentes lenguajes para soportar esta descripcin, algunos han tenido xito, y otros han fracasado.

Decisiones tempranas de diseo


El diseo de la arquitectura describe la forma en que el sistema est compuesto. Esto hace que se creen una serie de restricciones a la implementacin como la forma de comunicacin, y como se van a asignar los recursos.

Estilos arquitectnicos
Describen una clase de arquitecturas, o piezas significantes de una arquitectura.

Son muy usados en la prctica.

Es un paquete coherente de decisiones de diseo.

Tienen propiedades identificadas que permiten el re-uso.

Estilos arquitectnicos (Cont.)


Algunos estilos arquitectnicos considerados por Shaw y Garlan:
Componentes independientes: procesos de comunicacin, invocacin explicita e invocacin implcita. Flujo de datos: batch sequential, pipe and filter. Centralizacin de datos: repositorio, blackboard. Maquina virtual: Interpreter, sistema basado en reglas. Call/return: programa principal y subrutina, Orientado a objetos, por capas.

Estilos arquitectnicos (Cont.)


Deben tener por lo menos la siguiente informacin:
Un conjunto de tipos de componentes. Un conjunto de tipos de mecanismos de conexin. Una disposicin topolgica de los componentes. Una serie de restricciones topolgicas y de comportamiento. Una descripcin acerca de los costos y beneficios de cada uno de los estilos.

Diseo y anlisis de la arquitectura


Asegurar que nuestras decisiones de diseo 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 diseo traen el mayor beneficio a la organizacin.

Diseo basado en arquitectura


Propone un mtodo de transformar un conjunto de requerimientos del cliente en una arquitectura para un sistema o para una lnea de produccin, a travs de descomposiciones y refinamientos.

Diseo basado en arquitectura (Cont.)


Lista de requerimientos.

Descomponer diseo arquitectnico.

Se satisfacen los atributos de calidad asociando estilos arquitectnicos con los requerimientos.

Diseo basado en arquitectura (Cont.)

El diseo se concentra en tres vistas arquitectnicas:


la funcional la de coincidencia la fsica.

Anlisis basado en arquitectura


Se hace un anlisis al diseo con el fin de asegurar que las cualidades que el arquitecto ha planeado para la arquitectura se puedan realizar. Este anlisis se hace basndose en escenarios, de los cuales se sacan los datos que se quieren medir.

Ingeniera en reversa de la arquitectura


Razones:
Las arquitecturas pueden no haber sido documentadas nunca, y los nicos que entienden la arquitectura son empleados que ya dejaron la organizacin. Se adquieren nuevos productos sin documentacin arquitectnica. El trabajo de los programadores ha cambiado algunas de las restricciones previamente establecidas por el arquitecto.

Futuro

Referencias
Rick Kazman, Software Architecture, Handbook of Software Engineering and Knowledge Engineering, 2001.

También podría gustarte