Change is an intrinsic property of software. A software system, during its lifetime, may require several updates, improvements, or new features. If these change requirements are not addressed, the risk of becoming a useless system increases. In fact, this is a challenging issue of safety- and mission-critical software systems, which cannot be stopped to perform maintenance or evolution operations due to their continuous operation. To reduce the aging of these critical systems, they must be provided with mechanisms enabling their dynamic evolution, i.e. the support of changes on their structure and behaviour while they remain in operation.
This thesis is concerned with the design of a framework to build architecture-based, dynamically evolvable, software systems. The fact that this framework is a software architecture based approach provides the following advantages: (i) it offers a high-level of abstraction for describing dynamic changes; (ii) it allows varying the level of system description; and (iii) it advantages from the existing support for system modelling, code-generation, and formal analysis provided by architecture description languages.
The framework presented in this thesis, called Dynamic PRISMA, is characterized by the combination of two levels of dynamism: Dynamic Reconfiguration, which addresses changes at the configuration level (i.e. the architectural configuration), and Dynamic Type Evolution, which addresses changes at the type-level (i.e. the specification of architectural types and instances). This combination is one of the major contributions of this thesis: thus a system is not only able to reconfigure at runtime the building blocks it is composed of (i.e. architectural types), but also to redefine these building blocks (or introduce new ones) at runtime.
Another contribution of the thesis is the identification of the concerns related to dynamic evolution and their integration in the framework through aspects. This improves the separation of concerns and allows us to change reconfiguration specifications, evolution mechanisms, or the business logic independently of each other.
A third contribution of this thesis is how this dynamism is supported: reconfiguration through autonomic capabilities, which provides proactivity according to either internal or external stimuli; and type evolution through asynchronous reflection, which enables the modification of a type specification and the transformation of their instances at different rates (i.e. when they are ready for evolution). Specifically, the asynchronous evolution semantics is precisely described by means of graph transformations. This formalism has been chosen because it naturally models both the system architecture and its asynchronous evolution.
The work presented in this thesis is illustrated through a case study from the robotics domain; an area which could potentially benefit from the results of this thesis. / El cambio es una propiedad intrínseca del software. Un sistema software, a lo largo de su vida útil, puede necesitar actualizaciones, mejoras o la integración de nuevas características. Si estas necesidades de cambio no son cubiertas, el riesgo de que el sistema software deje de ser útil aumenta. Esto supone un reto para los sistemas críticos, los cuales no pueden ser detenidos para realizar operaciones de mantenimiento o evolución debido a que deben estar continuamente operativos. Para reducir el envejecimiento de dichos sistemas, éstos deben incorporar mecanismos que les permitan evolucionar dinámicamente, i.e. tolerar cambios tanto estructurales como de comportamiento mientras están operativos.
Esta tesis aborda el diseño de una infraestructura para la construcción de sistemas software dinámicamente evolucionables y basados en arquitecturas software. Las razones que han motivado el uso de un enfoque basado en arquitecturas software son: (i) proporcionan un alto nivel de abstracción para definir cambios dinámicos; (ii) permiten variar el nivel de descripción del sistema; y (iii) permiten reutilizar las herramientas existentes para modelado de sistemas, generación automática de código, y análisis formal proporcionadas por los lenguajes de descripción de arquitecturas.
El marco presentado en esta tesis, llamado Dynamic PRISMA, se caracteriza por la combinación de dos niveles de dinamismo: Reconfiguración Dinámica, que aborda los cambios a nivel de configuración (i.e. la configuración arquitectónica), y Evolución Dinámica de Tipos, que aborda los cambios a nivel de tipos (i.e. la especificación de tipos arquitectónicos e instancias). Esta combinación es una de las mayores contribuciones de esta tesis: así, un sistema no es solamente capaz de reconfigurar durante su ejecución los elementos constructivos que lo forman (i.e. los tipos arquitectónicos), sino también de redefinir dichos elementos constructivos (o introducir otros) durante su ejecución.
Otra contribución de la tesis es la identificación de las funcionalidades relacionadas con la evolución dinámica y su integración a través de aspectos. Esto mejora la separación de funcionalidades y permite cambiar de forma independiente entre sí las especificaciones de reconfiguración, los mecanismos de evolución, o la lógica de negocio.
Una tercera contribución es cómo este dinamismo se ha soportado: la reconfiguración a través de capacidades autonómicas, aportando así proactividad en función de estímulos internos y/o externos; y la evolución de tipos a través de la reflexión asíncrona, permitiendo así modificar la especificación de un tipo y la transformación de sus instancias en distintos tiempos (i.e. cuando éstas están listas para su evolución). Además, la semántica de la evolución asíncrona se ha formalizado a través de transformaciones de grafos, lo que ha permitido modelar de forma natural tanto la arquitectura de un sistema como su evolución asíncrona.
Por último, el trabajo presentado en esta tesis se ha ilustrado a través de un caso de estudio del dominio robótico; un área que podría verse potencialmente beneficiada con los resultados de esta tesis. / Costa Soria, C. (2011). DYNAMIC EVOLUTION AND RECONFIGURATION OF SOFTWARE ARCHITECTURES THROUGH ASPECTS [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/11038
Identifer | oai:union.ndltd.org:upv.es/oai:riunet.upv.es:10251/11038 |
Date | 17 June 2011 |
Creators | Costa Soria, Cristobal |
Contributors | Carsí Cubel, José Ángel, Pérez Benedí, Jenifer, Universitat Politècnica de València. Departamento de Sistemas Informáticos y Computación - Departament de Sistemes Informàtics i Computació |
Publisher | Universitat Politècnica de València |
Source Sets | Universitat Politècnica de València |
Language | English |
Detected Language | English |
Type | info:eu-repo/semantics/doctoralThesis, info:eu-repo/semantics/acceptedVersion |
Source | Riunet |
Rights | http://rightsstatements.org/vocab/InC/1.0/, info:eu-repo/semantics/openAccess |
Page generated in 0.0028 seconds