Arquitecturas de Software
Descripción
La sociedad de la información en las últimas décadas ha sufrido un gran cambio debido a la aparición de nuevas tendencias culturales, nuevos dominios de negocio y nuevos métodos de marketing. Por este motivo, los entornos de desarrollo deben dar soporte a la construcción de grandes aplicaciones mediante el uso de arquitecturas software.
Con el objetivo de dar soporte a la definición de arquitecturas complejas, en esta línea de investigación se va a trabajar en todo aquellos aspectos que tengan relación con las arquitecturas de los sistemas software. Concretamente, la línea persigue dar soporte a esta faceta del desarrollo software utilizando métodos de la Ingeniería del Software. El objetivo de la línea es ir integrando los resultados parciales a un framework de desarrollo de modelos arquitectónicos ya existente, para así proporcionar la extensión de dicho framework como resultado final. La línea de investigación pretende cubrir los siguientes puntos de interés:
- Arquitecturas Software
- Desarrollo de Software Orientado a Aspectos
- Arquitecturas Software Orientadas a Servicio
- Líneas de Producto en Arquitecturas Software: Simples, Orientadas a Servicio y/o Orientadas a Aspectos
- Desarrollo de software Dirigido por Modelos (MDD)
- Vistas arquitectónicas
- Trazabilidad de requisitos a arquitecturas
- Transparencia en la movilidad y la distribución
- Evolución de arquitecturas: estática y dinámica (reconfiguración de arquitecturas)
- Validación y verificación de arquitecturas
- Calidad en Arquitecturas Software
- Implantación de un framework de arquitecturas en distintos dominios de aplicación
- Formalización de la combinación de los distintos paradigmas que integran el framework
Miembros
Objetivos
Estos intereses se plasman en una serie de objetivos a conseguir en esta línea. Dichos objetivos son los siguientes:
- Definir arquitecturas en base a modelos, siguiendo las directrices de la propuesta MDD. Se deberá dar soporte a modelos independientes de plataforma, lenguajes de programación y compiladores de modelos a código, para así poder obtener un producto final ejecutable.
- Dar soporte al desarrollo de arquitecturas basado en líneas de producto, siguiendo la propuesta MDD.
- Dar soporte a la definición de requisitos desde un punto de vista de MDD. El objetivo será permitir al analista definir y/o adaptar, no sólo el metamodelo de requisitos a utilizar sino también los mecanismos de análisis a las necesidades del dominio de aplicación.
- Definir una metodología que permita llegar a un prototipo inicial de arquitectura a partir de los requisitos del sistema. Asimismo, dicha metodología deberá ser extendida para que sea capaz de obtener también un prototipo inicial de línea de producto a partir de los requisitos. Dicha generación deberá abordarse desde una aproximación que permita ofrecer al analista un análisis previo de la proto-arquitectura generada que permita determinar en que grado se satisfacen los requisitos. Finalmente, dicha metodología deberá dar soporte a la trazabilidad de requisitos a arquitecturas y a líneas de producto de forma inherente así como a la automatización en el máximo número de tareas mediante técnicas como la transformación de modelos.
- Definición de vistas arquitectónicas a partir de los requisitos, combinando el concepto de vista del área de arquitecturas con el concepto de aspecto de AOSD.
- Definición de arquitecturas distribuidas y móviles mediante primitivas de modelado independientes de plataforma, siguiendo MDD. Además, dicho modelo deberá formalizarse e implementarse.
- Dar soporte a la definición de arquitecturas orientadas a servicio y orientadas aspectos: definición del modelo y formalización.
- Definir una metodología para la verificación de modelos durante el proceso MMD.
- Definir un catálogo de atributos de calidad de las arquitecturas software y las líneas de producto, así como la clasificación de atributos por dominios de aplicación y otros criterios.
- Proporcionar mecanismos de validación de funcionalidad y atributos de calidad de la arquitectura (model checking, prototipación automática). También será necesario dar soporte a la selección de criterios de clasificación de atributos de calidad en base al dominio, uso, etc. de la arquitectura.
- Enmarcar el proceso de validación de la arquitectura dentro de una metodología MDD.
- Proporcionar un middleware para la ejecución de arquitecturas software, que permita la evolución de arquitecturas en tiempo de ejecución con capacidades de auto-adaptación, context-awareness y control de versiones.
- Integración de todos los resultados en un único framework
- Implantación del framework en diferentes dominios de aplicación: sistemas tele-operados, sistemas de diagnóstico médico, sistemas para la gestión de emergencias, sistemas domóticos, etc.
Plan de trabajo
- Publicación de miembros
- Identificación de tareas de META que estén vinculadas con la línea
- Adaptación de contenidos del grupo por parte de los miembros.
- Elaboración sesión trabajo META en Ciudad Real:
- Estructura de la sesión
- Objetivos a cumplir
- Establecer colaboraciones
- Definir posibles publicaciones conjuntas
- Temas a tratar
.....
Tareas Meta
A continuáción se detallan las tareas META que guardan relación con este grupo de trabajo y que el grupo debería cumplir. Las tareas son aquellas que tienen que ver con: Arquitecturas Software en general, Arquitecturas Software Específicas de Dominio, Líneas de Producto y Arquitecturas Software Orientadas a Servicio. Esta es una lista inicial que cualquier miembro del grupo podrá modificar. Además, se recomienda a cada uno de los miembros del grupo que lea las tareas del proyecto que se detallan a continuación, para así elaborar propuestas de colaboración que permitan cubrir en la mayor medida posible dichas tareas. A continuación se detallan las tareas clasificadas por años:
TAREA UPV 2.1 NOMBRE: Gestión y desarrollo de modelos arquitectónicos orientados a aspectos
TAREA UPV 2.2 NOMBRE: Definición y desarrollo de un modelo de distribución para arquitecturas software orientadas a aspectos, distribuidas y móviles
TAREA UPV 2.5 NOMBRE: Desarrollo de arquitecturas software orientadas a aspectos dirigido por modelos y basadas en líneas de producto
TAREA UPV 3.2 NOMBRE: Especificación y Validación de Modelos de Coordinación y Colaboración en la Gestión de Emergencias.
TAREA UCLM 1.4 NOMBRE: Analizar medidas para arquitecturas software
TAREA UPCT 1.1 NOMBRE: Caracterización conceptual de los sistemas reactivos como líneas de producto.
TAREA ESI 1.2 NOMBRE: Definición y desarrollo de un modelo de variabilidad para metodologías de desarrollo
TAREA UPV 2.3 NOMBRE: Definición y desarrollo de un modelo de evolución para arquitecturas software orientadas a aspectos
TAREA UPV 2.4 NOMBRE: Análisis y validación de modelos arquitecturas software orientadas a aspectos
TAREA UCLM 1.5 NOMBRE: Obtener un conjunto de indicadores válidos para arquitecturas software
TAREA UPCT 1.2 NOMBRE: Definición y seguimiento de una metodología para el desarrollo de sistemas reactivos siguiendo un enfoque dirigido por modelos
TAREA UPCT 1.3 NOMBRE: Modelos para los sistemas reactivos
TAREA UPCT 1.5 NOMBRE: Marco arquitectónico para sistemas reactivos
TAREA UPCT 1.6 NOMBRE: Definición de reglas de transformación de PIM a modelos arquitectónicos
TAREA ESI 1.3 NOMBRE: Definición y desarrollo de un marco de expresión de características para metodologías de desarrollo
TAREA UPV 2.6 NOMBRE: Aplicación de un modelo específico de dominio a distintos dominios de aplicación y tecnologías: modelos arquitectónicos orientados a aspectos, dinámicos y distribuidos.
TAREA UPV 3.5 NOMBRE: Definición de la Arquitectura de la Plataforma de Gestión de Emergencias.
TAREA UCLM 4.5 NOMBRE: Prototipo de Herramienta Abierta para la Evaluación y Mejora de los Procesos de Negocio
TAREA UPCT 1.7 NOMBRE: Definición de reglas de transformación de los modelos arquitectónicos a la infraestructura de implementación final
TAREA UPCT 1.9 NOMBRE: Desarrollo de un caso de estudio específico de sistema reactivo
TAREA ESI 1.5 NOMBRE: Desarrollo de transformaciones MDD para el modelo de variabilidad