Software evolution research at the Centre for Software Maintenance
Malcolm Munro · 1998
The paper outlines the research in software evolution being carried out at the Centre for Software Maintenance. The research is in two main directions: examining how the structure of software changes and evolves over time (Release project); and complementing that view by researching novel software architectures for evolution (Flexx project). Legacy systems have, embedded within them, a large investment made by the systems developers and/or owners. This investment ranges from low level code items or objects through to higher level business objects. Two important ideas are briefly discussed: reverse engineering and business rules. The structure imposed by designers and developers of software systems are, in general, not suitable for continued change and evolution. Part of the reason for this is that during development it is difficult, or even impossible, to predict how the system is going to evolve. The fact that the software must continually change over time, or become increasingly less useful, was emphasised by M.M. Lehman (1980). He also pointed out that the structure of evolving software will degrade unless remedial action is taken. This has also been confirmed and shown visually by E.L. Burd and M. Munro (1996). An important aspect of this loss of structure is that business knowledge encapsulated within the system becomes fragmented, and any changes made as a result of new business initiatives become difficult to implement and hence may mean a loss of business opportunities. Reverse engineering has been proposed as a solution, but it is just one aspect of a total solution.