Software Evolution - Software Engineering - Lecture Notes, Study notes of Software Engineering

This course includes topics like software processes, requirements analysis and specification, design, prototyping, implementation, validation and verification, UML-based modeling, integrated development environments, and case studies. Key points of this lecture are: Software Evolution, Evolution Processes, Software Maintenance, Legacy System Management, Change Processes for Software Systems, Operational Software Systems, Making Decisions About Software Change, Importance of Evolution, Huge Inves

Typology: Study notes

2012/2013

Uploaded on 10/03/2013

abani
abani 🇮🇳

4.4

(34)

81 documents

1 / 45

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
SE Fundamentals 6 Software Evolution
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d

Partial preview of the text

Download Software Evolution - Software Engineering - Lecture Notes and more Study notes Software Engineering in PDF only on Docsity!

SE Fundamentals 6 – Software Evolution

Topics covered  Evolution processes  Change processes for software systems  Software maintenance  Making changes to operational software systems  Legacy system management  Making decisions about software change

Importance of evolution  Organizations have huge investments in their software systems - they are critical business assets  To maintain the value of these assets to the business, they must be changed and updated  The majority of the software budget in large companies is devoted to changing and evolving existing software rather than developing new software

A spiral model of development and evolution

Evolution and servicing  Evolution  The stage in a software system’s life cycle where it is in operational use and is evolving as new requirements are proposed and implemented in the system  Servicing  At this stage, the software remains useful but the only changes made are those required to keep it operational, i.e. bug fixes and changes to reflect changes in the software’s environment. No new functionality is added  Phase-out  The software may still be used but no further changes are made to it

Evolution processes  Software evolution processes depend on  The type of software being maintained  The development processes used  The skills and experience of the people involved  Proposals for change are the driver for system evolution  Should be linked with components that are affected by the change, thus allowing the cost and impact of the change to be estimated  Change identification and evolution continues throughout the system lifetime

The software evolution process

Change implementation

Urgent change requests  Urgent changes may have to be implemented without going through all stages of the software engineering process  If a serious system fault has to be repaired to allow normal operation to continue  If changes to the system’s environment (e.g., an OS upgrade) have unexpected effects  If there are business changes that require a very rapid response (e.g. the release of a competing product)

The emergency repair process

 Maintenance to repair software faults  Changing a system to correct deficiencies in the way meets its requirements  Maintenance to adapt software to a different operating environment  Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation  Maintenance to add to or modify the system’s functionality  Modifying the system to satisfy new requirements Types of maintenance

Figure 9.8 Maintenance effort distribution

Figure 9.9 Development and maintenance costs

 Team stability  Maintenance costs are reduced if the same staff are involved with them for some time  Contractual responsibility  The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change  Staff skills  Maintenance staff are often inexperienced and have limited domain knowledge  Program age and structure  As programs age, their structure is degraded and they become harder to understand and change Maintenance cost factors