It is impossible to produce system of any size which do not need to be changed. Once software is put into use, new requirements emerge and existing requirements changes as the business running that software changes. Parts of the software may have to be modified to correct errors that are found in operation, improve its performance or other non-functional characteristics. | Software Construction Lecture 21 Software Change, Evolution and Maintenance Software Evolution It is impossible to produce system of any size which do not need to be changed. Once software is put into use, new requirements emerge and existing requirements changes as the business running that software changes. Parts of the software may have to be modified to correct errors that are found in operation, improve its performance or other non-functional characteristics. All of this means that, after delivery, software systems always evolve in response to demand for change. Software change Software change is inevitable New requirements emerge when the software is used The business environment changes Errors must be repaired New equipment must be accommodated The performance or reliability may have to be improved A key problem for organisations is implementing and managing change to their legacy systems Software change strategies Software maintenance Changes are made in response to . | Software Construction Lecture 21 Software Change, Evolution and Maintenance Software Evolution It is impossible to produce system of any size which do not need to be changed. Once software is put into use, new requirements emerge and existing requirements changes as the business running that software changes. Parts of the software may have to be modified to correct errors that are found in operation, improve its performance or other non-functional characteristics. All of this means that, after delivery, software systems always evolve in response to demand for change. Software change Software change is inevitable New requirements emerge when the software is used The business environment changes Errors must be repaired New equipment must be accommodated The performance or reliability may have to be improved A key problem for organisations is implementing and managing change to their legacy systems Software change strategies Software maintenance Changes are made in response to changed requirements but the fundamental software structure is stable Architectural transformation The architecture of the system is modified generally from a centralised architecture to a distributed architecture Software re-engineering No new functionality is added to the system but it is restructured and reorganised to facilitate future changes These strategies may be applied separately or together Program evolution dynamics is the study of the processes of system change After major empirical study, Lehman and Belady proposed that there were a number of ‘laws’ which applied to all systems as they evolved There are sensible observations rather than laws. They are applicable to large systems developed by large organisations. Perhaps less applicable in other cases Program evolution dynamics Lehman’s laws Applicability of Lehman’s laws This has not yet been established They are generally applicable to large, tailored systems developed by large organisations It is not clear how they should .