4 research outputs found

    Architectural reflection for software evolution

    Get PDF
    Software evolution is expensive. Lehman identifies several problems associated with it: Continuous adaptation, increasing complexity, continuing growth, and declining quality. This paper proposes that a reflective software engineering environment will address these problems by employing languages and techniques from the software architecture community. Creating a software system will involve manipulating a collection of views, including low-level code views and high-level architectural views which will be tied together using reflection. This coupling will allow the development environment to automatically identify inconsistencies between the views, and support software engineers in managing architectures during evolution. This paper proposes a research programme which will result in a software engineering environment which addresses problems of software evolution and the maintenance of consistency between architectural views of a software system

    A Framework For Dynamic Updating In Component-Based Software Systems.

    Get PDF
    This paper presents DPICS framework for composing component-based software system that can be modified at runtime. It is based on message pattern interaction between system’s components, which facilitates adding, removing, or replacing a component while the whole system is running

    Soporte a la Evolución Dinámica de Tipos Arquitectónicos

    Get PDF
    Los sistemas software con una fuerte naturaleza dinámica suponen un reto para la ingeniería del software. Este tipo de sistemas requieren de mecanismos que les permitan modificar tanto estructura como comportamiento en tiempo de ejecución, para adaptarse a las distintas situaciones que puedan presentarse. El área de arquitecturas software, que permite describir la estructura de los sistemas complejos a un alto nivel de abstracción, proporcionados grados de dinamismo para la construcción de sistemas dinámicos, dependiendo de si lo que evoluciona es la configuración de la arquitectura o los tipos que componen dicha arquitectura. El primer tipo de evolución, denominado reconfiguración dinámica, permite a una arquitectura software cambiar su configuración en tiempo de ejecución, creando/destruyendo instancias de elementos arquitectónicos y/o las conexiones entre ellas. El segundo tipo de evolución, que denominamos evolución dinámica de tipos arquitectónicos, permite cambiar completamente la especificación arquitectónica de un sistema dinámicamente, bien introduciendo nuevos tipos arquitectónicos, modificando tipos e instancias en ejecución, o bien introduciendo nuevas conexiones. Este artículo presenta cómo soportar este último grado de dinamismo desde un punto de vista independiente de plataforma. Para ello, se han identificado los diferentes asuntos de interés implicados en el proceso y se han encapsulado en aspectos

    Component state mapping for runtime evolution

    No full text
    One of the most cited benefits of component based applications is that their modular design allows them to evolve with relative ease. However, replacement of a component at runtime without stopping the application remains a difficult problem, since the state contained in the active version of the component must somehow be transferred to its successor. Existing techniques that implement live updates all require the programmer to manually implement the state transition functionality. We have developed a methodology to deal with runtime adaptation of Java-based components. Our approach is innovative since it provides a number of steps that assist the programmer with the issue of state transfer. In this paper, we first introduce our global methodology, and then continue with a detailed study of the algorithm that controls state transfer between components at runtime. Two novel aspects of our algorithm are its extensibility and its ability to keep portions of the old component in place by preventing localized changes from propagating throughout the entire component
    corecore