Estructuras Arquitectonicas de Software

Mario González

Agenda
Introducción histórica ¿Qué es la arquitectura de software? Arquitectura y sus efectos en los Stakeholders Estructuras arquitectónicas
Vista lógica Vista de código Vista de desarrollo Vista de coincidencia Vista física

Escenarios

Agenda (Cont.)
Lenguajes de descripción arquitectónica (ADLs) Arquitectura como decisiones prematuras de diseño Estilos arquitectónicos Arquitecturas para líneas de producción Diseño y análisis de la arquitectura Diseño basado en arquitectura

Agenda (Cont.) Análisis basado en arquitectura Analizando los Impactos en el negocio de las decisiones arquitectónicas Ingeniería en reversa de la arquitectura El futuro .

Razones: Comunicación entre stakeholders Decisiones de diseño Abstracción transferible de un sistema .Introducción histórica Se comenzó a usar desde 1990 debido al tamaño y complejidad de los sistemas que comenzaron a surgir.

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

al equipo de desarrollo. al equipo de pruebas. etc.Arquitectura y sus efectos en los Stakeholders La arquitectura afecta a todos los relacionados con el proyecto. afecta a los clientes. al gerentes. 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. . Cada stakeholder se preocupa por partes especificas del sistema.

Estructuras arquitectónicas Existen diferentes tipos de vistas que permiten ver la arquitectura de un sistema más en detalle Vista lógica Vista de código Vista de desarrollo Vista de coincidencia Vista física .

Vista lógica Abstracción de las funciones el sistema y sus relaciones. .

métodos y funciones y su composición para formar subsistemas. los elementos que tiene este tipo de vista son clases.Vista de código Esta vista es la que ve el programador. objetos. capas y módulos .

Vista de código (Cont.) .

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

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. .

En sistemas pequeños es trivial la vista física puesto que un solo computador es el que se encarga de manejar todos los procesos .Vista física La vista física describe los recursos de HW del sistema.

Vista física (Cont.) .

Escenarios .

Entender los límites de la arquitectura. Unir las diferentes vistas. Establecer cierta comunicación entre la arquitectura y aquellos que no tuvieron mucho que ver con su creación.Escenarios (Cont. .) Los escenarios se usan para: Entender y validar la arquitectura.

se han tratado de desarrollar diferentes lenguajes para soportar esta descripción.Lenguajes de descripción arquitectónica (ADLs) Debido a la gran importancia de la descripción arquitectónica. y a su uso como medio de comunicación entre los diferentes stakeholders. . y otros han fracasado. algunos han tenido éxito.

y como se van a asignar los recursos. .Decisiones tempranas de diseño El diseño de la arquitectura describe la forma en que el sistema está compuesto. Esto hace que se creen una serie de restricciones a la implementación como la forma de comunicación.

Estilos arquitectónicos Describen una clase de arquitecturas. Son muy usados en la práctica. . Tienen propiedades identificadas que permiten el re-uso. o piezas significantes de una arquitectura. Es un paquete coherente de decisiones de diseño.

. invocación explicita e invocación implícita. blackboard.Estilos arquitectónicos (Cont. pipe and filter. Centralización de datos: repositorio.) Algunos estilos arquitectónicos considerados por Shaw y Garlan: Componentes independientes: procesos de comunicación. Orientado a objetos. Call/return: programa principal y subrutina. sistema basado en reglas. Flujo de datos: batch sequential. por capas. Maquina virtual: Interpreter.

Una disposición topológica de los componentes. Una descripción acerca de los costos y beneficios de cada uno de los estilos.Estilos arquitectónicos (Cont. Un conjunto de tipos de mecanismos de conexión.) Deben tener por lo menos la siguiente información: Un conjunto de tipos de componentes. . Una serie de restricciones topológicas y de comportamiento.

.Diseño y análisis de la arquitectura Asegurar que nuestras decisiones de diseño son coherentes con las metas de calidad establecidas. Asegurar que as decisiones de diseño traen el mayor beneficio a la organización. Asegurar que el sistema satisface las necesidades de su stakeholder. Predecir los atributos de calidad que el sistema tendrá.

. a través de descomposiciones y refinamientos.Diseño basado en arquitectura Propone un método de transformar un conjunto de requerimientos del cliente en una arquitectura para un sistema o para una línea de producción.

Se satisfacen los atributos de calidad asociando estilos arquitectónicos con los requerimientos.Diseño basado en arquitectura (Cont.) Lista de requerimientos. . Descomponer diseño arquitectónico.

.) El diseño se concentra en tres vistas arquitectónicas: la funcional la de coincidencia la física.Diseño basado en arquitectura (Cont.

. de los cuales se sacan los datos que se quieren medir. Este análisis se hace basándose en escenarios.Análisis basado en arquitectura Se hace un análisis al diseño con el fin de asegurar que las cualidades que el arquitecto ha planeado para la arquitectura se puedan realizar.

.Ingeniería en reversa de la arquitectura Razones: Las arquitecturas pueden no haber sido documentadas nunca. El trabajo de los programadores ha cambiado algunas de las restricciones previamente establecidas por el arquitecto. y los únicos que entienden la arquitectura son empleados que ya dejaron la organización. Se adquieren nuevos productos sin documentación arquitectónica.

Futuro .

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

Sign up to vote on this title
UsefulNot useful