Sie sind auf Seite 1von 19

ARQUITECTURAS DE SOFTWARE

CONCEPTOS

AGENDA
Antecedentes Arquitectura de software (AS) Definicin - Modelos Conceptos bsicos Estilos Lenguajes de Descripcin Arquitectnica (ADLs) Patrones Desarrollo de Software basado en Componentes Definicin

Orgenes

La arquitectura descansa en tres principios: la Belleza (Venustas), la Firmeza (Firmitas) y la Utilidad (Utilitas) (Vitruvio, siglo I a de C)

Templo de Artemisa en Efeso Siglo IV a de C. 127 columnas de 20 metros de altura

El coloso de rodas 277 a de C. 32 metros de altura Placas de bronce sobre armazn de hierro
Fuente: http://sietemaravillas.tripod.com/

Tomado de ACIS- XXV Saln Informtica-2005

ANTECEDENTES I
1960: DIJSKTRA, PARNAS, BROOKS, Estructuracin correcta del software, Sistemas operativos en capas, Diseo conceptual del software, Niveles de abstraccin 1975: BROOKS, AS:Especificacin completa y detallada de la interfaz de usuario

ANTECEDENTES II
1989: Mary Shaw, habla de nivel de arquitectura de diseo 1992: Perry y Wolf introducen el termino ARQUITECTURA DE SOFTWARE como la composicin de elementos, forma y razn

DEFINICIN AS I
La arquitectura del software de un programa o de un sistema de computo es la estructura o las estructuras del sistema, que abarcan elementos del software, las caractersticas externamente visibles de esos elementos, y las relaciones entre estas [1]

DEFINICIN AS II
La organizacin fundamental de un sistema, incorporada en sus componentes, las relaciones entre ellos y el ambiente, y de los principios que gobiernan su diseo y evolucin [2]

DEFINICIN AS III
Una arquitectura es el sistema de decisiones significativas sobre la organizacin de un sistema de software, la seleccin de los elementos estructurales y sus interfaces por los cuales el sistema es compuesto, junto con su comportamiento segn lo especificado en la colaboracin entre esos elementos, la composicin de estos elementos estructurales y del comportamiento en subsistemas progresivamente ms grandes, y el estilo arquitectnico que dirigen este organizacin-estos elementos y sus interfaces, sus colaboraciones, y su composicin[3]

Arquitectura: Pensar primero en lo importante

Diseo de alto nivel versus diseo detallado (David Budgen) Esqueleto versus Carne y Msculos (Rational Unify Process)
Tomado de ACIS- XXV Saln Informtica-2005

MODELOS DE AS [4]
ESTRUCTURALES Componentes y conexiones entre ellos FRAMEWORK Estructura coherente del sistema Modelos de dominio DINAMICOS Como la configuracin del sistema DE PROCESO Actividades de construccin. Script FUNCIONALES Componentes organizados en capas

MODELOS DE AS [4]
Framework Architecture
ADTs Strings
APPLICATION-SPECIFIC FUNCTIONALITY
INVOKES
CALLBACKS

Reactor

NETWORKING

GUI

Files Locks
DATABASE

Tomado de ACIS- XXV Saln Informtica-2005

Arquitectura vs. complejidad


En la medida que la complejidad de los sistemas crece, los algoritmos y las estructuras de datos dejan de convertirse en el mayor problema. El diseo y especificacin de la estructura general del sistema emerge como un nuevo tipo de problema: el diseo a nivel de arquitectura. En aplicaciones OO las clases representan unidades de granularidad muy fina; en sistemas grandes se requiere hablar de unidades que represente una funcionalidad mayor (mdulos / subsistemas / componentes de negocio)
Tomado de ACIS- XXV Saln Informtica-2005

Elementos relacionados con la arquitectura Por qu? Qu?


Cualidades de la Arquitectura Arquitectura Representacin de la arquitectura Satisface Restringe Caractersticas Del Sistema Requerimientos S/W Atributos de Calidad del sistema Tecnologa Analiza Defines

Quin?

Produce Arquitecto

Para qu?

Procesos Define roles

Habilidades Stakeholders

Organizacin

Fuente: Rational Software

Influencias hacia y desde la arquitectura

El ciclo ABC (Arquitecture Business Cycle)


Fuente: Linda Northrop. Cargnegie Melon University
Tomado de ACIS- XXV Saln Informtica-2005

Influencias de los participantes sobre el arquitecto

usuario final Funcionalidad Rendimiento Seguridad usabilidad

gerente del proyecto Bajo costo Rendimiento del equipo

soporte aplicativo

modificabilidad

arquitecto
lder de mercadeo Corto tiempo en mercado Bajo costo; ventajas con productos similares cliente Bajo costo y tiempo de entrega, que no cambie muy a menudo
Tomado de ACIS- XXV Saln Informtica-2005

ESTILOS I
Es un concepto representativo que especifica la forma de articulacin y organizacin arquitectnica Conjuntos de reglas de diseo que identifica las clases de componentes y conectores que se pueden utilizar para construir un sistema o subsistema, junto con restricciones locales o globales sobre la composicin.

ESTILOS II
Define una familia de sistemas semejantes en trminos de estructura organizacional. Ms especficamente, un estilo de arquitectura define un vocabulario de componentes y tipos de conectores y un conjunto de restricciones de cmo ellas pueden ser combinadas.[5] Encapsula decisiones esenciales sobre los elementos arquitectnicos y enfatiza restricciones importantes de los elementos y sus relaciones posibles

ESTILOS III
AS = {ELEMENTOS, FORMA, RAZON} ELEMENTOS:
PROCESAMIENTO (Transformacin) DATOS (Informacin) CONEXIN (Llamados)

FORMA, define:
PROPIEDADES RELACIONES

RAZN, motivacin para elegir elementos y forma.

ESTILOS IV
Entidad consistente en 4 elementos [6] VOCABULARIO DE ELEMENTOS DE DISEO
Componentes y conectores.

REGLAS DE DISEO O RESTRICCIONES QUE DETERMINAN COMPOSICIONES INTERPRETACIN SEMNTICA DE COMPOSICIONES ANALISIS SUSCEPTIBLES ENTRE SISTEMAS ELABORADOS EN UN ESTILO

ALGUNOS ESTILOS I [7]


Estilos de Flujo de Datos
Tubera y filtros

Estilos Centrados en Datos


Arquitecturas de Pizarra o Repositorio

Estilos de Llamada y Retorno


Model-View-Controller (MVC) Arquitecturas en Capas Arquitecturas Orientadas a Objetos Arquitecturas Basadas en Componentes

ALGUNOS ESTILOS II
Estilos de Cdigo Mvil
Arquitectura de Mquinas Virtuales

Estilos heterogneos
Sistemas de control de procesos Arquitecturas Basadas en Atributos

Estilos Peer-to-Peer
Arquitecturas Basadas en Eventos Arquitecturas Orientadas a Servicios Arquitecturas Basadas en Recursos

ADLs
Los Lenguajes de Descripcin de Arquitectura (ADLs, por sus siglas en ingls) permiten modelar una arquitectura mucho antes que se lleve a cabo la programacin de las aplicaciones que la componen, analizar su adecuacin, determinar sus puntos crticos y eventualmente simular su comportamiento.

Qu es un ADL (Architecture Definition Language)?


Un ADL enfoca en la descripcin de la estructura de la aplicacin a alto nivel, en lugar de la descripcin de la implementacin de cualquier mdulo especfico. ADL es un lenguaje que provee elementos para modelar la arquitectura conceptual de un sistema software, distinguindola de la implementacin del sistema (Medvidovic&Taylor) Constructores bsicos de un ADL: Componentes, Conectores, Configuraciones y Restricciones (Tracz, 1993). El problema: Los lenguajes formales son difciles de entender y manejar en aplicaciones industriales Reto: Convertir a UML en un lenguaje suficientemente preciso para especificar una arquitectura

ADLs
Es como una entidad consistente en cuatro Cs: [8] Componentes clientes, servidores, filtros, objetos, pizarras y bases de datos Conectores tuberas (pipes), llamadas a procedimientos, broadcast de eventos, protocolos cliente-servidor, o conexiones entre una aplicacin y un servidor de base de datos. Configuraciones sistemas Se constituyen como grafos de componentes y conectores Constraints (restricciones) el nmero de clientes que se puede conectar simultneamente a un servicio

Algunos ADLs
Acme - Armani ADML Aesop ArTek C2 (C2 SADL, C2SADEL, xArch, xADL) CHAM Darwin Jacal LILEANNA MetaH/AADL Rapide UML - De OMT al Modelado OO UniCon Weaves Wright

Impactos del desarrollo basado en la arquitectura


En la ingeniera Importanciade modelos de alto nivel que luego se refinan de modelos de alto nivel que luego se refinan Importancia Desarrollo basado en interfaces antes que clases Desarrollo basado en interfaces antes que clases Uso de patrones y tcticas de arquitectura Uso de patrones y tcticas de arquitectura Desarrollo Desarrollo Basado en Basado en la Arquitectura la Arquitectura

En la gestin del proyecto

En la calidad del producto


Medicin de la calidad sobre Medicin de la calidad sobre planos planos Adopcinde frameworks de Adopcin de frameworks de atributos de calidad atributos de calidad

Estimar esfuerzo de construccin Estimar esfuerzo de construccin Plan de construccin de los CU segn su Plan de construccin de los CU segn su impacto en la arquitectura impacto en la arquitectura Nuevos esquemas de negociacin del proyecto Nuevos esquemas de negociacin del proyecto Nuevos esquemas de interaccin cliente/proveedor Nuevos esquemas de interaccin cliente/proveedor La arquitectura como elemento para evaluar La arquitectura como elemento para evaluar riesgos riesgos

Tomado de ACIS- XXV Saln Informtica-2005

Pasos generales de un proceso de desarrollo basado en la arquitectura


1. Evaluar la necesidad empresarial del sistema
Asegurar que la organizacin requiere el sistema Cunto costar el producto? Cul es el mercado objetivo? Cul es el tiempo de puesta en el mercado? Qu interacciones se requieren con otros sistemas?

2. Entender los requerimientos


Tcnicas de elicitacin de requisitos (casos de uso, escenarios) Para sistemas de seguridad crtica utilizar aproximaciones rigurosas como mquinas de estado finito o lenguajes formales Cules son las caractersticas particulares del sistema con respecto a otros sistemas (por ejemplo lneas de producto)?

Pasos generales de un proceso basado en la arquitectura (2)


+

3. Crear o seleccionar la Arquitectura


Cules son los estilos de arquitectura adecuados? Layer, MVC, Blackboard, Tuberias y Flitros, etc. Qu papel juegan las aplicaciones legado? Cules son las tcticas de arquitectura para cumplir un atributo de calidad?

4. Representar y comunicar la arquitectura


Uso de modelos y de documentos de definicin de arquitecturas Sesiones para comunicacin y discusin de la arquitectura con todos los stakeholders

5. Analizar o evaluar la arquitectura


Definir varias alternativas de arquitectura Utilizar mtodos de evaluacin de arquitectura

6. Implementar el sistema basado en la arquitectura

Pasos generales de un proceso basado en la arquitectura (3)

Implementar las interfaces definidas en la arquitectura Tener un ambiente o infraestructura que asista activamente a los desarrolladores en la creacin y mantenimiento de la arquitectura

7. Asegurar que la implementacin corresponde a la arquitectura


Establecer un proceso de monitoreo permanente para asegurar que la arquitectura actual y su representacin se mantienen consistentes durante su operacin y evolucin

Tcnicas de apoyo al anlisis y evaluacin de arquitecturas propuestas por el SEI

Para obtener los casos de negocio y entender los requerimientos


Quality Attribute Workshop (QAW)

Para crear o seleccionar la arquitectura


Attribute Driven Desing (ADD)

Para documentar y comunicar la arquitectura


View and Beyond Approach

Para analizar y evaluar la arquitectura


Architecture Tradeoff Analysis Method (ATAM) Cost Benefit Analysis Method (CBAM) Software Architecture Analysis Method (SAAM)

rbol de calidad (ATAM)


Utilizado para articular las metas esperadas del sistema con respecto a los atributos de calidad Las hojas del rbol presentan los escenarios considerados relevantes a la arquitectura Se asignan peso a cada rama del rbol segn su importancia y dificultad de implementacin

La promesa de MDA (Model Driven Architecture)


De desarrollo basado en cdigo a desarrollo basado en modelos

From:

Automating Software Development with UML 2.0, Cris Cobryn


Tomado de ACIS- XXV Saln Informtica-2005

Vista general de MDA

Tomado de ACIS- XXV Saln Informtica-2005

Quin lidera la iniciativa de MDA? El grupo OMG (Object


Management Group)
MDA: The new OMG baby

Nueva orientacin de las actividades de la OMG


Ms all de las propuestas de middleware (CORBA) Influenciado por la amplia aceptacin de UML

Estndares que ha impulsado la OMG


Meta Object FacilityTM (MOF) Unified Modeling LanguageTM (UML) Common Warehouse MetamodelTM (CWM) XML Metadata InterchangeTM (XMI)

Tomado de ACIS- XXV Saln Informtica-2005

Arquitectura de UML de cuatro niveles (OMG)


EBNF

Level M 3

the MOF MMM

the Pascal grammar

Level M 2

the SPEM MM

the UML MM

the CWM MM

a Pascal program P

Level M 1

a UML model m

another UML model m

an execution X of program P

Level M 0

a particular use of m

another use of m

Tomado de ACIS- XXV Saln Informtica-2005

Arquitectura de UML de cuatro niveles (OMG): Ejemplo

Estructura de extensin de los lenguajes

La transformacin es la generacin automtica de un modelo fuente en un modelo objetivo, de acuerdo a unas definiciones de transformacin Una definicin de transformacin esta conformada por un conjunto de reglas que describen como el modelo en el lenguaje fuente puede ser transformado en un modelo en el lenguaje destino Una regla de transformacin es una descripcin de uno o ms constructores en el lenguaje fuente que pueden ser transformados en uno o mas constructores en el lenguaje destino

El proceso de transformacion

Das könnte Ihnen auch gefallen