SWE 408 Selected topics in SWE Lecture 1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Selected Topics in Software Engineering

SWE 408

Lecture 1

Reference: Ian Sommerville, Software Engineering, Tenth Edition, Pearson Education Limited, England, 2016.
Software Evolution
• Business changes and changes to user expectations generate new requirements for the
software, which needs:
Software Evolution: is the stage in which significant changes to the software
architecture and functionality are made.
• When the software reaches a state where the implementation of new requirements
become less and less cost-effective, this leads to:
Servicing: is the stage in which the only changes that are made are relatively small but
essential changes.
▪ The company need to replace the software.
▪ Users have to work around problems that they discover in the software.
▪ By time, the software is retired and taken out of use,
▪ Then data should to be transferred to a newer replacement system
2
Software Evolution

Figure 1: Evolution and servicing


• Most large companies spend more on maintaining existing systems than on new systems
development.
• Between 60% and 90% of software costs are evolution costs

• Due to the need to respond quickly to user feedback, the gap between releases of some
software may be weeks rather than years. 3
Software Evolution Process
• Software evolution depends on:
▪ the type of software being maintained,
▪ the software development processes used in an organization,
▪ the skills of the people involved
• Software evolution may be an informal or formal process (has structured documentation)

Figure 2: A general model of the software evolution process


Software Evolution Process

• Change Proposal: includes changes and updates suggested to an existing software


system
• Impact Analysis:
▪ work out which components need to be changed,
▪ allows the cost and the impact of the change to be assessed to see how much of the
system is affected by the change,

• If the proposed changes are accepted, a new release of the system is planned.
• A decision is then made on which changes to implement in the next version of the system.
• Requirements specification and design documents (if exist) should be updated to define
the required changes
5
Software Evolution Process
• Change requests sometimes relate to problems in operational systems which should
be handled urgently.
Urgent changes are needed when any of these three reasons happen:
1. a serious system fault: need to be repaired to allow normal operation to continue
2. unexpected effects in the system’ operating environment: that disrupt normal
system operation
3. business changes: such as the emergence of new competitors or the introduction
of new legislation that affects the system.
In those cases, make an emergency fix to the program to solve the immediate problem,
and choose a quick and workable solution rather than the best solution.

6
Software Evolution Process

Figure 3: The emergency repair process

• Quickly making the changes means not be able to update:


▪ the software documentation,
▪ the requirements specification,
▪ the software design,

So, there is no alignment between the software and the system documentation.
7

You might also like