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