One of the major challenges in the provision of distributed systems is the accomodation of evolutionary change. This may involve modifications or extensions to the system which were not envisaged at design time. Furthermore, in many application domains there is a requirement that the system accomodate such change dynamically, without stopping or disturbing the operation of those parts of the system unaffected by the change. Since the description of software structure (components and interconnections) provides a clear means for both system comprehension and construction, it seems appropriate that changes should also be specified as structural change, in terms of component creation/deletion and connection/disconnection. These changes are then applied to the operational system itself to produce the modified system. This paper presents a model for dynamic change management which separates structural concerns from component application concerns. This separation of concerns permits the formulation of general structural rules for change at the configuration level without the need to consider application state, and the specification of application component actions without prior knowledge of the actual structural changes which may be introduced. In addition, the changes can be applied in such a way as to leave the modified system in a consistent state, and cause no disturbance to the unaffected part of the operational system. The model is applied to an example problem, "evolving philosophers". The principles described in this model have been implemented and tested in the Conic environment for distributed systems.
In REF , a software system is structured into structural configuration concerns, which specify the change of software architecture, and functional application concerns, which provide a capability of the change to structural configuration concerns.
The Evolving Philosophers Problem: Dynamic Change Management.
IEEE Transactions on software engineering
Computer Science