Grupo de Investigación: Modelado de Requerimientos y Diseño de Sistemas Complejos

Las distintas líneas de trabajo pretenden cubrir en la temática de modelado y diseño de sistemas complejos, áreas de interés de estudio tales como modelado de requerimientos funcionales y no funcionales desde punto de vista de arquitecturas de software, arquitecturas orientadas a servicios aplicando procesos ágiles, de manera de disminuir el impacto de decisiones tomadas de diseño (patrones de grano fino y grueso) logrando niveles de calidad aceptables tanto en producto como en proceso de desarrollo del software. El grupo se encuentra realizando estudios e investigación sobre la relación entre modelado de procesos de negocio (BPMN), notación UML y el mapping con casos de uso. Todas las líneas de investigación se pretenden aplicar a casos reales de impacto regional en áreas tales como la educación, salud, energía mareomotriz, minería.

Breve descripción del objeto de estudio, área o problema que el grupo desarrolla

El mundo real es un lugar complejo, a medida que se lo observamás de cerca es más complejo, como si se estuviera examinando un fractal. Las capas de detalles son interminables, pero realmente no tienen fin? ¿Cómo se puede manejar esta complejidad? ¿Cómo se puede entender el mundo para poder modelarlo en software con éxito? Las personas entienden al mundo por la construcción de modelos mentales de partes de él; ellas tratan de entender las cosas y luego interactuar. Un modelo mental es una vista simplificada de como las cosas actúan y así se pueden interactuar con ellas. En esencia, el proceso de construcción del modelo es lo mismo que el diseño de software, pero el desarrollo del software es único: el diseño de software produce un modelo que se manipula por la computadora. Las decisiones y razonamientos que se toman respecto a los conocimientos (design rationale) a medida que se diseña es posible no tenga el mismo nivel de importancia para todos los usuarios (trade offs), de modo que se debe decidir en forma dinámica el impacto de decisiones de diseño en la calidad del producto software, tomadas durante el proceso de desarrollo de software.

Objetivos:

El objetivo principal de este proyecto es estudiar e investigar un enfoque con soporte a nivel herramientas que permita asistir al diseñador de software en el manejo de decisiones tomadas durante las actividades de especificación y diseño arquitectónico. Dicho enfoque debiera considerar la relación entre múltiples atributos de calidad, tanto en lo que respecta a decisiones de diseño particulares como a la exploración y evaluación de alternativas de diseño.

Antecedentes:

La complejidad creciente de los sistemas de software requiere que las decisiones de diseño se tomen en niveles más altos de abstracción: el nivel arquitectónico. Este nivel se enfoca en la organización macro de los sistemas teniendo en cuenta los atributos de calidad (por ejemplo: performance, portabilidad, disponibilidad, modificabilidad, interoperabilidad, etc.) que los afectan. Los modelos arquitectónicos proveen abstracciones para explorar diferentes alternativas de diseño, teniendo en cuenta un balance adecuado entre los atributos de calidad definidos. Básicamente, un modelo o estilo arquitectónico define una colección de sistemas relacionados, aportando un vocabulario coherente de elementos de diseño y reglas para su composición. Un estilo representa un paquete de decisiones de diseño con implicaciones predeterminadas relacionadas con los atributos de calidad. Ejemplos de estilos arquitectónicos bien conocidos son: pipes and filters, blackboard, layers entre otros.
Las actividades de diseño arquitectónico se están tornando cada día más críticas, dado que permiten reflejar las principales decisiones de diseño y permiten un cierto grado de análisis de alternativas en etapas tempranas del desarrollo. Otro aspecto relevante es que la realización de requerimientos de calidad se relaciona estrechamente con la solución a nivel arquitectónico. Con lo cuál, el diseño arquitectónico involucra necesariamente decisiones relacionadas con los atributos de calidad mas importantes para el sistema dado. Es de destacar que estas decisiones son a menudo de naturaleza multi-dimensional, es decir impactan sobre varios atributos de calidad a la vez a lo largo del proceso de diseño.