Desarrollo dirigido por modelos de aplicaciones seguras para el manejo de información

  1. García de Dios, Miguel Ángel
Dirigida por:
  1. Manuel García Clavel Director

Universidad de defensa: Universidad Complutense de Madrid

Fecha de defensa: 22 de abril de 2015

Tribunal:
  1. Francisco Javier López Fraguas Presidente
  2. Purificación Arenas Sánchez Secretaria
  3. Jorge Cuéllar Jaramillo Vocal
  4. Jordi Cabot Sagrera Vocal
  5. Martin Wirsing Vocal

Tipo: Tesis

Teseo: 119012 DIALNET

Resumen

En esta memoria presentamos una metodología original encuadrada en el área de desarrollo de software dirigido por modelos. En particular, es una metodología automática apoyada en herramientas para el desarrollo de aplicaciones seguras de gestión de datos guardados en una capa persistente. Las aplicaciones de gestión de datos se centran en las llamadas acciones CRUD de crear, leer, modificar y borrar datos del almacenamiento persistente. Estas operaciones son el bloque básico de numerosas aplicaciones como, por ejemplo, páginas web donde los usuarios crean cuentas, almacenan y modifican información y reciben vistas personalizadas basadas en los datos que almacenan. Cuando los datos gestionados son sensibles, medidas de seguridad deben protegerlos, por lo que el uso de estas acciones debe ser controlado.En nuestra metodología, los desarrolladores proceden modelando tres vistas de la aplicación deseada: el modelo de datos, el modelo de seguridad y el modelo de la interfaz gráfica de usuario (GUI, de sus siglas en inglés). Estos modelos formalizan respectivamente un dominio de datos, una política de autorización y una interfaz gráfica junto con los eventos que permiten la interacción con el usuario y dirigen el flujo de información. Después, una función de transformación de modelos traslada automáticamente la política especificada por el modelo de seguridad al modelo de GUI. La metodología descrita permite la separación de tareas, de manera que el comportamiento y la seguridad se especifican de forma separada y posteriormente se combinan para generar un modelo de GUI seguro. Finalmente, un componente de generación de código genera de forma automática una aplicación multicapa, junto con todo el soporte de control de acceso, a partir del modelo de GUI con seguridad.A continuación describimos las que son, en nuestra opinión, las contribuciones principales. Primero, nuestra metodología ofrece los beneficios pretendidos por la Arquitectura Dirigida por Modelos (MDA, por sus siglas en inglés) para las aplicaciones de gestión de datos. Trabajando con modelos, los desarrolladores pueden centrarse en la estructura de los datos, el comportamiento, la política de seguridad de la aplicación y su presentación, independientemente de las diferentes (y a menudo complejas) tecnologías que son usadas para implementarlas. Segundo, nuestro uso de transformaciones de modelos hace posible la modularidad y la separación de aspectos: el modelo de GUI y el modelo de seguridad pueden modificarse de manera independiente y por diferentes desarrolladores, si se desea. Esto evita los problemas relacionados con modificar a mano las políticas de seguridad, las cuales son difíciles de mantener y analizar. Finalmente, nuestra metodología es realmente potente, comparándose favorablemente con otras alternativas. En particular, toma ventaja de los bien conocidos lenguajes de seguridad para modelar políticas de control de acceso ricas y de grano fino, las cuales tienen que ser a menudo codificadas manualmente en otras propuestas. Además, nuestro nuevo lenguaje para GUIs soporta el modelado de interfaces web dinámicas para la gestión de datos reales (donde el contenido web varía según las acciones del usuario), sin limitar las interfaces a un conjunto fijo de plantillas o patrones de interacción como en otras metodologías. Por supuesto, no se puede evaluar el éxito de esta metodología sin haberla llevado a la práctica, por lo tanto, detallamos información sobre aplicaciones que hemos desarrollado con nuestra metodología, las cuales evidencian la aplicabilidad de la misma.