Guía para la Arquitectura de Software

Anuncio
MA ST E R E N I NG E NI E RÍ A D E SOF TW A R E
UNIVERSIDAD POLITÉCNICA DE CATALUNYA
PROYECTO FINAL DE MÁSTER – MRF FRAMEWORK
Guía para realizar la
Arquitectura de
Software
Version 1.0 ● 30 SEP 2008
Máster en Ingeniería de Software
Proyecto Final de Máster – MRF Framework
GUÍA PARA REALIZAR LA ARQUITECTURA DE SOFTWARE
Versión 1.0 | 30-SEP -2008
Tabla de Contenidos
1. Introducción .......................................................................................................1
1.1
Qué es la Arquitectura de Software ....................................................1
1.2
Limitaciones ........................................................................................2
2. Análisis Arquitectónico ......................................................................................2
2.1
Síntesis de la Arquitectura ..................................................................2
2.2
Patrones y Frameworks ......................................................................2
3. Mecanismos Arquitectónicos .............................................................................3
3.1
TS-Guía-10AS-1.0
Ejemplos de Mecanismos Arquitectónicos .........................................3
Página i
Máster en Ingeniería de Software
Proyecto Final de Máster – MRF Framework
GUÍA PARA REALIZAR LA ARQUITECTURA DE SOFTWARE
Versión 1.0 | 30-SEP -2008
1. Introducción
1.1
Qué es la Arquitectura de Software
La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema. Esta
arquitectura, también denominada Arquitectura Lógica, contempla el conjunto de decisiones
acerca de la organización del sistema:
-
Selección de elementos estructurales e interfaces que componen el sistema. Esta selección
se basa en un conjunto de patrones y abstracciones coherentes que proporcionan el marco
de referencia necesario para guiar la construcción del software.
-
Composición de estos elementos estructurales y de comportamiento en subsistemas
principales.
Esta arquitectura se utiliza para especificar decisiones estratégicas acerca de la estructura y
funcionalidad del sistema, las colaboraciones entre sus distintos elementos y su despliegue físico
para
cumplir unas
responsabilidades
bien
definidas.
Figura 1.1: Vista de la Arquitectura1
La Arquitectura del Software establece los fundamentos para que analistas, diseñadores,
programadores, etc. trabajen en una línea común que permita alcanzar los objetivos del sistema
de información, cubriendo todas las necesidades. Para ello, define de forma abstracta los
componentes que llevarán a cabo cada una de las tareas de computación, así como sus
interfaces y la comunicación entre todos ellos. Toda arquitectura debe ser implementada en una
Arquitectura Física.
1
Fuente: Vilalta Consultores 2001; TRAD Arquitectura 1_esp – Rev. 5.1 – vico.org
TS-Guía-10AS-1.0
Página 1
Máster en Ingeniería de Software
Proyecto Final de Máster – MRF Framework
1.2
GUÍA PARA REALIZAR LA ARQUITECTURA DE SOFTWARE
Versión 1.0 | 30-SEP -2008
Limitaciones
-
La arquitectura involucra un conjunto de decisiones estratégicas de diseño, reglas o patrones
que restringen dicho diseño y su implementación. Por todo ello, los cambios sobre ella
tendrán efectos significativos.
2. Análisis Arquitectónico
2.1
Síntesis de la Arquitectura
En las primeras iteraciones, se plantea la creación de un documento se Síntesis de la
Arquitectura.
Este análisis se corresponde con el primer intento de definir las piezas y/o componentes del
sistema, así como sus relaciones, organizándolas en capas bien definidas con dependencias
específicas, concentrándose únicamente en las capas superiores.
Su propósito es:
-
Definir una arquitectura candidata para el sistema a partir de las experiencias previas en
sistemas o problemas similares.
2.2
-
Definir patrones arquitectónicos, mecanismos de diseño y convenciones de modelado.
-
Definir la estrategia de reutilización.
Patrones y Frameworks
Un patrón proporciona una solución común a un problema específico en un contexto dado; esta
solución puede ser total, o parcial (una pieza dentro de un conjunto más amplio).
El Patrón Arquitectónico expresa un esquema de organización estructural fundamental para un
sistema de software. Provee un conjunto predefinido de subsistemas, especifica sus
responsabilidades, e incluye reglas y guías para organizar las relaciones entre sí. Algunos
ejemplos de patrones arquitectónicos más utilizados son:
-
Layers  Descomponer la aplicación en diferentes niveles de abstracción. Los layers
van desde capas específicas de aplicación (top) hasta capas de implementación propias
de la parte tecnológica (bottom).
-
Model-View-Controler  Model (reglas de negocio y datos fundamentales), View (cómo
se muestra la información al usuario), Controller (procesa el input del usuario).
-
Pipes and Filtres  Los datos se procesan en flujos que pasan de filtro en filtro, de
manera que cada filtro representa un avance en el procesamiento.
-
Blackboard  Aplicación independiente especializada que colabora para derivar la
solución, trabajando sobre una estructura de datos común.
TS-Guía-10AS-1.0
Página 2
Máster en Ingeniería de Software
Proyecto Final de Máster – MRF Framework
GUÍA PARA REALIZAR LA ARQUITECTURA DE SOFTWARE
Versión 1.0 | 30-SEP -2008
Un Framework define un enfoque general para enfrentar un problema. Provee un esqueleto para
la solución, cuyos detalles se encuentran en los patrones de análisis.
3. Mecanismos Arquitectónicos
Los mecanismos arquitectónicos pueden clasificarse en las siguientes categorías:

Mecanismos de Análisis (Conceptual): Captura los aspectos de la solución de forma
independiente de su implementación (ej: mecanismos para manejar la persistencia, la
comunicación entre procesos, los errores, notificaciones, mensajes, etc.).

Mecanismos de Diseño (Concreta): Asume ciertos detalles del ambiente de
implementación, pero no se ata a ninguna implementación en particular.

Mecanismos de Implementación (Actual): Especifica la implementación exacta del
mecanismo, indica la tecnología, lenguaje, fabricante, versión.
3.1
Ejemplos de Mecanismos Arquitectónicos
Algunos ejemplos de mecanismos arquitectónicos son la persistencia, la comunicación (IPC,
RPC,…), el enrutamiento de mensajes, la distribución, la gestión de transacciones, el control y la
sincronización de procesos, el intercambio de información y la conversión de formatos, la
seguridad, la detección/manejo/reporte de errores, la redundancia, las interfaces con sistemas
legados, etc.
Algunos ejemplos de análisis de las características de los mecanismos son:

Mecanismos de Persistencia:
-
Granularidad (tamaño de los objetos persistentes);
-
Volumen (número de objetos persistentes);
-
Duración (durante cuánto se deben mantener persistentes los objetos);
-
Mecanismo de acceso (cómo se identifican de forma única los objetos y cómo se los
recupera);
-
Frecuencia de acceso (son constantes, o se tienen que actualizar
permanentemente);


Confiabilidad (deben sobrevivir a una caída de un proceso).
Mecanismo de Comunicación entre Procesos:
-
Latencia (cómo de rápida debe ser la comunicación);
-
Sincronización (comunicación síncrona/asíncrona);
-
Tamaño del mensaje;
-
Protocolo de comunicación.
Seguridad:
TS-Guía-10AS-1.0
-
Granularidad de datos (nivel de paquetes, nivel de clase, nivel de atributo);
-
Granularidad de usuarios;
-
Reglas de seguridad (basadas en valor de datos, en algoritmos o ambos);
Página 3
Máster en Ingeniería de Software
Proyecto Final de Máster – MRF Framework

GUÍA PARA REALIZAR LA ARQUITECTURA DE SOFTWARE
Versión 1.0 | 30-SEP -2008
Tipos de privilegios (leer, crear, eliminar, escribir, etc.).
Mecanismos de interfaz con sistemas legados:
TS-Guía-10AS-1.0
-
Latencia;
-
Duración;
-
Mecanismo de acceso;
-
Frecuencia de acceso.
Página 4
Descargar