INTRODUCCION A LA ARQUITECTURA DE SOFTWARE
IEEE 1471 El nivel conceptual más alto de un sistema en su ambiente AS Arquitectura es la organización fundamental de un sistema descrita en: Sus componentes. Relación entre ellos y con el ambiente. Principios que guían su diseño y evolución Kazman“La estructura de estructuras de un sistema, la cual abarca componentes de software, propiedades externas visibles de estos componentes y sus relaciones”. IEEE 1471 El nivel conceptual más alto de un sistema en su ambiente
Paul Clements, 1996: “La AS es, a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema. La vista arquitectónica es una vista abstracta, aportando el más alto nivel de comprensión y la supresión o diferimiento del detalle inherente a la mayor parte de las abstracciones”.
Las representaciones de la arquitectura del software permiten la comunicación entre todas las partes (participantes) interesadas en el proyecto. La Arquitectura destaca las decisiones iníciales relacionadas con el diseño que tendrá un impacto profundo en todo el proyecto La Arquitectura constituye un modelo relativamente pequeño e intelectualmente comprensible de cómo esta estructurado el sistema y como trabajan juntos sus Componentes. Importancia de la Arquitectura del Software
VISTA FISICA VISTA DE DISEÑO VISTA CONCEPTUAL VISTA FISICA VISTA DE IMPLEMENTACION VISTA DE DISEÑO
Diagramas de Actividad La vista conceptual es usada para definir los requerimientos funcionales y la visión que los usuarios del negocio tienen de la aplicación y describir el modelo de negocio que la arquitectura debe cubrir. Esta vista muestra los subsistemas y módulos en los que se divide la aplicación y la funcionalidad que brinda dentro de cada uno de ellos VISTA C O N E P T U A L Casos de Uso Diagramas de Actividad Entidades del Negocio Procesos de Negocio
Muestra los componentes principales de diseño y sus relaciones de forma independiente de los detalles técnicos y de cómo la funcionalidad será implementada en la plataforma de ejecución. Se describe la solución en términos de paquetes y clases de diseño. Clases Paquetes Subsistemas VISTA DE DISEÑO
Esta vista ilustra la distribución del procesamiento entre los distintos equipos que conforman la solución, incluyendo los servicios y procesos de base. Los elementos definidos en la vista lógica se "mapean" a componentes de software (servicios, procesos, etc.) o de hardware que definen más precisamente como se ejecutará la solución. VISTA FISICA
Finalmente la vista de implementación describe cómo se implementan los componentes físicos mostrados en vista física agrupándolos en subsistemas organizados en capas y jerarquías, ilustra, además las dependencias entre éstos. Básicamente, se describe el mapeo desde los paquetes y clases del modelo de diseño a subsistemas y componentes físicos. I P L E M N T A C O VISTA
AS Vistas de UML… Línea base de arquitectura; etapa de elaboración metodología RUP
Modelos estructurales Modelos dinámicos Modelos de framework Modelos funcionales Modelos de proceso MODELOS ARQUITECTONICOS
Sostienen que la AS está compuesta por componentes, conexiones entre ellos y otros aspectos tales como configuración, estilo, restricciones, semántica, análisis, propiedades, racionalizaciones, requerimientos, necesidades de los participantes. El trabajo en esta área está caracterizada por el desarrollo de lenguajes de descripción arquitectónica (ADLs). MODELOS ESTRUCTURALES Garlan, Shaw, Clements
Enfatizan la cualidad conductual de los sistemas Enfatizan la cualidad conductual de los sistemas. “Dinámico” puede referirse a los cambios en la configuración del sistema, o a la dinámica involucrada en el progreso de la computación, tales como valores cambiantes de datos.). MODELOS DINAMICOS
MODELOS FRAMEWORK
Una minoría considera la arquitectura como un conjunto de componentes funcionales, organizados en capas que proporcionan servicios hacia arriba. Es tal vez útil pensar en esta visión como un framework particular. MODELOS FUNCIONALES
Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en esa construcción. En esta perspectiva, la arquitectura es el resultado de seguir un argumento (script) de proceso. Esta vista se ejemplifica con el actual trabajo sobre programación de procesos para derivar arquitecturas. MODELOS DE PROCESOS Kazman, Bass
Sobre el Copyright de este Documento http://www.microsoft.com/spain/misc/avisolegal.htm Publicado Originalmente en: http://www.microsoft.com/spanish/msdn/arquitectura/roadmap_arq/intro.asp
Bibliografía y referencias Artículos de Arquitectura de Software en http://www.microsoft.com/spanish/msdn/arquitectura Len Bass, Paul Clements, Rick Kazman. 2003. Software Architecture in Practice, 2ª edición Documentación del SEI en Carnegie Mellon http://www.sei.cmu.edu/publications/publications.html Rick Kazman, Philippe Kruchten et al. 2004. “Integrating Software-Architecture-centric methods into the Rational Unified Process”, CMU/SEI-2004-TR-011 Recomendaciones IEEE 1471/2000
Introducción a la Arquitectura de Software, Articulo de Carlos Billy Reynoso de la U. de Buenos Aires http://www.willydev.net/descargas/prev/IntroArq.pdf • Arquitectura de Software, (Articulo de Adrián Lasso) http://www.microsoft.com/spanish/msdn/comunidad/mtj. net/voices/art110.asp • Microsoft Architecture Overview, (Articulo de Michael Platt de Microsoft Corporation) http://msdn.microsoft.com/architecture/overview/default.aspx?pull=/library/en-us/dnea/html/eaarchover.asp