FLEXX: Designing Software for Change Through Evolvable Architectures

2000 
Software-based systems need to evolve, to meet the changing requirements of their users and to maintain market competitiveness. The design of the system architecture is a key component in allowing this sort of flexibility. A project, named FLEXX, is described which addresses this general problem. The aim of the project is to explore flexible architectures that can cope with unexpected requirements changes. Evolution is separated into two forms: integration evolution, in which new capabilities are required that must be integrated with existing capabilities; and reconfiguration evolution, in which new capabilities are in the form of changes to existing instances. The major challenges are concerned with integration evolution, and this is the focus of FLEXX. A general framework and model for software evolution and architectures is presented. The specific problem we are using to understand the role of architectural design is dynamic update evolution. In a largescale distributed system, it is the requirement to replace, add or extend a component without halting the execution of the system’s code yet maintaining system properties. The new component may have different functional and/or interface properties. We present two novel components of the project: the use of reflection to establish a framework for flexible architectures; and dynamic automatic update of component versions in a pipe and filter architecture. A short example is used to illustrate the solution. The project has completed 18 months of its three-year period, and we summarise the current state and planned direction.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    22
    References
    4
    Citations
    NaN
    KQI
    []