Ageless Software evolves, to meet new requirements, without reducing its efficiency or understandability. Here we introduce a methodology called Informed Evolution for supporting the construction and evolution of ageless software. This methodology integrates the software architecture (structure and constraints) and the system implementation (behaviour) within system execution. Evolution is effected by evolution patterns which are in turn guided by constraints specified in the software architecture. The availability of the software architecture and implementation at run-time ensures that changes are informed by design and implementation decisions, thus preserving efficiency and understandability. In this paper, we outline Informed Evolution, and describe how evolution patterns may be expressed for systems developed using this methodology.
[1]
Ronald Morrison,et al.
Using Generative Programming to Visualise Hypercode in Complex and Dynamic Systems
,
2004,
ACSC.
[2]
Flávio Oquendo,et al.
ArchWare: Architecting Evolvable Software
,
2004,
EWSA.
[3]
David Garlan,et al.
Acme: architectural description of component-based systems
,
2000
.
[4]
David Lorge Parnas,et al.
Software aging
,
1994,
Proceedings of 16th International Conference on Software Engineering.
[5]
Thaís Vasconcelos Batista,et al.
Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform
,
2005,
5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).