Tesis doctoral
Un Modelo de Simulación para el Análisis de Arquitecturas de Software de Aplicaciones Web y en la Nube
Blas, María Julia
Director:
Leone, Horacio Pascual
Codirector:
Gonnet, Silvio Miguel
Fecha de publicación:
27/03/2019
Idioma:
Español
Clasificación temática:
Resumen
Conceptualmente, los entornos de computación en la nube (en inglés, cloud computing) se dividen en dos grandes componentes: infraestructura y aplicación. A nivel de aplicación, los arquitectos de software especifican aplicaciones web las cuales, en términos generales, quedan definidas como servicios de software. Usualmente, tales definiciones se basan en patrones de diseño.El diseño arquitectónico puede ser considerado una de las primeras especificaciones de cualquier producto de software. Cuando sus componentes son utilizados para formular un modelo de simulación, la arquitectura puede ser utilizada como vehículo para estimar el comportamiento del producto final. Aún más, en los últimos años varios autores han aplicado técnicas de simulación sobre diseños arquitectónicos a fin de estimar las propiedades de calidad de un producto de software. Recientemente, este tipo de estrategias de análisis han sido utilizadas a nivel de infraestructura en entornos de computación en la nube. Sin embargo, los enfoques desarrollados a lo largo de los últimos años refieren exclusivamente a un subconjunto reducido de propiedades de calidad, no incorporando el nivel de aplicación a la descripción del entorno bajo análisis.La formulación de un modelo de análisis que permita capturar la información de arquitecturas de software de aplicaciones web para evaluar cuantitativamente aspectos de calidad de las mismas en etapas tempranas del proceso de desarrollo, constituye un tema de interés vinculado a la Ingeniería de Software. Es decir, con el objetivo de evaluar atributos de calidad en términos de los requerimientos no funcionales definidos para un producto tomando como base el diseño arquitectónico, se requiere de la existencia de modelos de análisis integrales que permitan estudiar el comportamiento de aplicaciones web y servicios de software a fin de evaluarlos desde una perspectiva de calidad. La especificación de modelos de simulación que brinden soporte a los conceptos vinculados a este modelo de análisis, constituye uno de los principales problemas a resolver en este trabajo de tesis.En términos generales, existen dos aspectos relevantes que deben ser tenidos en cuenta al momento de utilizar técnicas de simulación sobre las arquitecturas de aplicaciones web, a saber: i) Definición de las propiedades de calidad (¿qué propiedades de calidad deben ser medidas?¿cómo se relacionan?¿qué indicadores deben ser utilizados?), y ii) Formulación e implementación de modelos de simulación (¿qué formalismo de simulación debe ser utilizado?¿cuántos modelos deben diseñarse?¿cómo se vinculan estos modelos?). Ambos aspectos deben ser resueltos conjuntamente en virtud de obtener un modelo de análisis útil y completo.En esta tesis se propone un modelo de análisis para la evaluación de la calidad de aplicaciones web y servicios de software en la nube, el cual integra una perspectiva ontológica para la definición y el estudio de las propiedades de calidad junto con una adaptación del formalismo de simulación Discrete Event System Specification (DEVS) para el diseño e implementación de los modelos de simulación requeridos para la representación de la arquitectura de software bajo estudio. El objetivo final de este trabajo es proveer una perspectiva de Ingeniería de Software útil para la estimación de aspectos de calidad web utilizando el diseño arquitectónico como vehículo para la especificación del modelo de simulación que opera como base del modelo de análisis.A fin de estructurar la definición de las propiedades de calidad asociadas a los productos de software, se define un nuevo tipo de documento denominado esquema de calidad. Este documento se basa en el modelo de calidad de producto de software definido en el estándar ISO/IEC 25010, quedando complementado por conceptos propios del dominio de métricas de software junto con la especificación de producto. En este sentido, se presenta una implementación del documento diseñado haciendo uso de una única ontología compuesta de tres modelos semánticos, a saber: un modelo semántico de calidad (quality semantic model), un modelo semántico de métricas de software (metric semantic model) y un modelo semántico de producto de software (software semantic model). Las relaciones entre estos modelos se definen en términos de los conceptos incluidos en los mismos de la siguiente manera: i) una métrica de software (concepto definido en metric semantic model) es de utilidad para estimar un atributo de calidad (concepto definido en software semantic model), y ii) un atributo de calidad (definido en software semantic model) se encuentra asociado a una subcaracterística de calidad (concepto definido en quality semantic model). Cada modelo implementado incluye un conjunto de reglas que permiten tanto la inferencia de nuevo conocimiento como así también la verificación de la integridad de las instancias creadas a partir de la ontología específica. Además, se presenta un conjunto de consultas que posibilitan la obtención de información relevante en relación a las instancias de esquemas de calidad.La inclusión de este instrumento como parte de la documentación asociada al desarrollo de un producto de software, incrementa la visibilidad y el entendimiento de las propiedades de calidad entorno al aplicativo específico. Dado que las aplicaciones web constituyen productos de software, un esquema de calidad específico es propuesto como mecanismo de referencia para el estudio de sus propiedades de calidad. Aunque distintas aplicaciones tendrán distintos requerimientos no funcionales (es decir, requerimientos de calidad), el esquema de calidad diseñado es susceptible de ser utilizado como base genérica para, posteriormente, ser extendido en casos específicos.En este contexto, la definición del esquema de calidad para aplicaciones web permite identificar la información básica a ser relevada en virtud de evaluar la calidad requerida sobre el producto final. Si se combina esta información con la evaluación de arquitecturas de software por medio de simulación, se puede establecer que estos datos deben ser relevados como salidas del modelo de simulación a fin de obtener mediciones que puedan ser utilizadas como base de análisis. Luego, la información que alimenta el esquema de calidad debería corresponderse con variables de salida del modelo de simulación.Sin embargo, la construcción de los modelos de simulación no debe afectar el normal desarrollo de las tareas asociadas a los arquitectos de software. Aunque la evaluación del ajuste de los diseños arquitectónicos a la calidad esperada es importante a fin de evaluar la adecuación de la arquitectura propuesta en relación a los requisitos no funcionales, el diseño e implementación de los modelos de simulación requeridos para tal evaluación no puede depender de las habilidades de los desarrolladores. Por este motivo, es importante proveer mecanismos que faciliten su construcción y desarrollo en términos familiares a los utilizados por los arquitectos. Si el conjunto de componentes arquitectónicos se encuentra claramente definido, los modelos de simulación pueden ser construidos por medio de la aplicación de reglas de transformación.Siguiendo este enfoque, se propone un metamodelo que identifica un conjunto de componentes arquitectónicos referidos a patrones de diseño de aplicaciones web. Complementariamente se define un proceso de diseño basado en la teoría de sistema-de-sistemas. Para cada uno de los elementos identificados como parte el metamodelo, se propone un modelo de simulación de eventos discretos formalizado en DEVS a fin de describir su comportamiento en virtud de medir las variables de salida identificadas como parte de la información básica requerida en el esquema de calidad web. Para una arquitectura específica, en función del tipo de componente arquitectónico utilizado en su diseño, es posible obtener el modelo de componentes de simulación equivalente por medio de la aplicación de reglas de mapeo. Sin embargo, dado que las conexiones entre componentes arquitectónicos reflejan dependencias, la obtención de los enlaces entre los modelos no es tan sencilla de derivar.Por este motivo, se presenta una adaptación del formalismo DEVS denominada Routed DEVS (RDEVS) que permite mantener las influencias entre componentes bajo la forma de acoplamientos fijos, pero que regula el flujo de eventos entre modelos en base a una función de ruteo. En este sentido, los modelos RDEVS utilizan información de ruteo para determinar la aceptación o el rechazo de un determinado evento. En términos generales un modelo de simulación RDEVS solo aceptará un evento de entrada si y solo si: i) el emisor del evento es un modelo autorizado para su envío, y ii) el identificador del modelo forma parte de los destinatarios del evento. De la misma manera, sólo generará eventos de salida destinados específicamente a un subconjunto de los modelos vinculados a sus puertos de salida.Tomando en consideración que el formalismo RDEVS se deriva como una subclase del formalismo DEVS, los modelos de componentes arquitectónicos fueron combinados con modelos RDEVS a fin de lograr una especificación completa de las arquitecturas de software de aplicaciones web en términos de modelos de simulación de eventos discretos. De esta forma, por medio de la aplicación de un conjunto de lineamientos básicos, los modelos de simulación referidos a arquitecturas web son obtenidos directamente de la configuración de componentes arquitectónicos utilizados en el diseño. Luego, el modelo de análisis propuesto utiliza la arquitectura para estructurar el modelo de simulación asociado. La validación de estos modelos se realiza tomando como referencia dos patrones de diseño arquitectónico que dan origen a las aplicaciones web desarrolladas en entornos de computación en la nube. Para esto, se utiliza el esquema arquitectónico de un subconjunto de patrones de diseño, sobre los cuales se generan múltiples escenarios alternativos con el objetivo de comparar el nivel de cumplimiento de las características propias de cada patrón en relación al comportamiento esperado de los mismos.Complementariamente a los modelos de simulación arquitectónica, se describe brevemente un conjunto de modelos de comportamiento asociados a distintos tipos de usuarios que representan patrones temporales para la generación de los eventos de entrada requeridos. Tales modelos se especificaron haciendo uso del formalismo DEVS, por lo que tienen completa compatibilidad con los modelos RDEVS diseñados en base al diseño arquitectónico.De esta manera, en base a las propiedades de calidad requeridas para estimar el comportamiento de una aplicación web, se propone un conjunto de modelos de simulación de eventos discretos que permite evaluar la calidad futura de una arquitectura específica. Esto posibilita ajustar su diseño a los requerimientos no funcionales en etapas tempranas del proceso de desarrollo.
Palabras clave:
SIMULACIÓN
,
ARQUITECTURA DE SOFTWARE
,
APLICACIÓN WEB
,
DEVS
Archivos asociados
Licencia
Identificadores
Colecciones
Tesis(INGAR)
Tesis de INST.DE DESARROLLO Y DISEÑO (I)
Tesis de INST.DE DESARROLLO Y DISEÑO (I)
Citación
Blas, María Julia; Leone, Horacio Pascual; Gonnet, Silvio Miguel; Un Modelo de Simulación para el Análisis de Arquitecturas de Software de Aplicaciones Web y en la Nube; 27-3-2019
Compartir