Metodología formal para la especificación de sistemas software en entornos multi-perspectiva

  1. BARRAGANS MARTINEZ, ANA BELEN
Dirixida por:
  1. José Juan Pazos Arias Director

Universidade de defensa: Universidade de Vigo

Fecha de defensa: 07 de setembro de 2007

Tribunal:
  1. Carlos Delgado Kloos Presidente/a
  2. Ana Fernández Vilas Secretaria
  3. Jorge García Duque Vogal
  4. Santiago Pavón Gómez Vogal
  5. Joaquín Salvachúa Rodríguez Vogal
Departamento:
  1. Enxeñaría telemática

Tipo: Tese

Teseo: 287920 DIALNET

Resumo

El desarrollo de un sistema software complejo implica el trabajo conjunto y colaborativo de un grupo numeroso de personas, tales como usuarios (a menudo, de diferentes tipos), responsables de gestión y desarrolladores software, donde cada uno de ellos constituye una fuente potencial de conocimiento. De este modo, la necesidad de describir sistemas software complejos a partir de diferentes perspectivas puede derivar en la construcción de muchos modelos parciales de diseño del sistema. Estos modelos pueden ser construidos de manera independiente por diseñadores diferentes, pueden expresar visiones desde ángulos de modelado específicos o puede que reflejen percepciones dispares de un mismo aspecto del sistema. Como resultado, las distintas perspectivas puede que se solapen, dando lugar a la posibilidad de aparición de conflictos. Y aunque las inconsistencias tendrán que ser finalmente resueltas, puede que sea necesario que las mismas sean toleradas con carácter temporal ofreciendo así una oportunidad a los diseñadores de trabajar de forma independiente en el desarrollo de sus fragmentos del modelo sin necesidad de una reconciliación continua. De hecho, muchos investigadores abogan por tolerar la inconsistencia, e incluso algunas propuestas han identificado la necesidad de permitir el razonamiento en presencia de inconsistencias. Un modo efectivo de especificar el sistema desde el punto de vista de cada individuo consiste en emplear enfoques multi-perspectiva. El razonamiento a partir de diferentes perspectivas es una parte necesaria y obligada en la mayor parte de los procesos de diseño. Esta tarea implica a menudo recoger información procedente de un número de fuentes o perspectivas potencialmente conflictivas, o de participantes con diferentes vistas u opiniones, y tratar de conformar un vista o perspectiva combinada y única (lo que podríamos denominar una síntesis o consenso). Sin embargo, un problema sin resolver dentro de este contexto es el de cómo razonar con información coçibinada a partir de múltiples vistas sin tener que resolver con antelación las inconsistencias y incompletitudes. Muchas propuestas existentes requieren que los modelos que van a ser combinados sean completos. Pero a medida que las distintas especificaciones evolucionan en paralelo, con frecuencia, entrarán en conflicto unas con otras, y casi todo el tiempo mostrarán, hasta cierto punto, incompletitudes. A veces, se detectarán inconsistencias temporales, sobre-especificaciones y sub-especificaciones. Sin embargo, los participantes necesitarán poder manipular cada especificación a medida que ésta evoluciona, como parte del proceso exploratorio, y creemos que es importante poder transformar y combinar modelos en etapas tempranas del ciclo de vida de desarrollo software, cuando los requisitos todavía no hayan sido completamente especificados. Esto pone de manifiesto la necesidad de disponer de mecanismos que permitan combinar modelos incluso siendo éstos incompletos y/o inconsistentes. Como requisito general, sería deseable que cada modelo individual, así como el modelo combinado, pueda ser fácilmente analizado y probado formalmente. Con esta motivación, hemos definido una metodología formal, que lleva por nombre MultiSpec (Multi-Perspective Methodology for Software Requirements Specifications), ideada para ofrecer soporte a la evolución de especificaciones de requisitos software. MultiSpec está basada en el paradigma multi-perspectiva y formaliza el razonamiento en presencia de conflictos (sobreespecificación) e incompletitud (subespecificación) empleando, para ello, una lógica subyacente multivalorada. El objetivo final consistirá en la obtención de una especificación de requisitos que sea concisa, consistente y completa con respecto a las necesidades de los agentes. Para conseguirlo, hemos identificado los siguientes aspectos que han sido abordados por MultiSpec: ¿ Una pieza esencial de la metodología es el proceso de combinación. Inicialmente, el objetivo principal consistió en obtener, en etapas intermedias del proceso de desarrollo, una vista combinada que reflejase de forma conveniente el conocimiento de cada participante en las tareas de elicitación. Esto aseguraría que el sistema resultante no refleje únicamente un punto de vista y que no ignore posiciones que interfieran con la opinión dominante. ¿ Sin embargo, existen más aplicaciones útiles del proceso de combinación, y hemos descubierto, por tanto, que no existe un único operador de composición que pueda calificarse de óptimo sino que, por el contrario, habrá un operador apropiado en función del objetivo concreto del proceso de combinación. Además de la comparación preliminar ofrecida entre los operadores de composición propuestos, proporcionamos una evaluación de los mismos basada en una lista de propiedades algebraicas y semánticas que, teóricamente, debería satisfacer un operador de composición ideal. La evaluación basada en dicho conjunto de propiedades pretende facilitar la tarea de comparación entre ellos, poniendo de manifiesto características clave de cada uno, a la vez que, también, revela e identifica posibles inconvenientes o defectos que pueden requerir continuar investigando. ¿ Otro aspecto primordial en una metodología como MultiSpec consiste en dotarla de la capacidad para evaluar y cuantificar la importancia de una inconsistencia detectada. Es fundamental poder diagnosticar la gravedad de una inconsistencia para decidir cuándo y con qué prioridad debe ser tratada. ¿ Mostramos también en esta tesis hasta qué punto la incertidumbre y el desacuerdo están interrelacionados y juegan un papel determinante en la obtención de una medida de la importancia de una inconsistencia. Además, nos percatamos de la necesidad de poder medir la inconsistencia total de la vista combinada a medida que el proceso de especificación evoluciona. Una vez más, quedará patente la influencia de la incertidumbre y el desacuerdo sobre la medida de inconsistencia total del modelo combinado. ¿ Otras contribuciones vienen determinadas por la presentación de dos ordenamientos parciales. El primero de ellos resultará muy útil para comparar diferentes modelos combinados y está basado en la medida de la inconsistencia total. Dicho ordenamiento nos permite medir el grado de evolución de la vista combinada con respecto a la cantidad de inconsistencia presente en el modelo en cada etapa del proceso de desarrollo, con la finalidad de comprobar, por ejemplo, que el grado de inconsistencia decrece con cada ciclo. El segundo ordenamiento es una relación de cercanía basada en diferencias de comportamiento que permite comparar diferentes perspectivas y obtener información acerca de cuál de ellas es la más próxima al modelo que se expresa en la vista combinada. ¿ MultiSpec ofrece también un model-checker multivalorado que permite razonar y comprobar la satisfacción de propiedades deseadas sobre modelos incompletos e inconsistentes. Finalmente, tras analizar la salida del model-checker junto con las medidas de impacto de las inconsistencias, la metodología proporciona realimentación a los usuarios en forma de información de revisión de las especificaciones originales con el fin de conseguir la satisfacción de propiedades sobre el modelo combinado o resolver las inconsistencias más graves. ¿ Una última contribución de la tesis permite tener en cuenta la importancia relativa de las diferentes perspectivas. Por ejemplo, se le puede asignar un valor de prioridad a cada una de las vistas individuales para simular el tamaño del grupo de agentes que está especificando esa perspectiva la cual, por lo tanto, debería tener mayor peso en el cálculo de la opinión mayoritaria. De este modo, MultiSpec permite priorizar las perspectivas dependiendo del número de agentes o del tipo de agente que está desarrollando cada una de ellas. Por otra parte, nuestra propuesta considera tanto el carácter intensional de la calidad de la información (denominado densidad) como el carácter extensional (denominado cobertura). En esencia, la medida de cobertura ofrece la proporción de elementos pertenecientes al dominio del sistema global que una fuente determinada se encarga de especificar. La medida de densidad indica cuántos de esos elementos no están subespecificados. Además, estos dos criterios se combinan para dar lugar a un valor de completitud total que formaliza la noción intuitiva de completitud de perspectivas. El esquema de priorización propuesto presenta numerosas ventajas, permitiendo evaluar la importancia y calidad de perspectivas individuales así como de modelos combinados de una forma intuitiva y sencilla. La salida del proceso consiste en una especificación consistente del sistema que trata de satisfacer en la medida de lo posible los requisitos establecidos por cada agente así como también las propiedades globales del sistema.