CSC577 - Chapter 9 - Software Evolution
CSC577 - Chapter 9 - Software Evolution
SOFTWARE
EVOLUTION
Software Change
• Software change is inevitable:
• New requirements emerge when the
software is used.
• The business environment changes.
• Errors must be repaired.
• New computers and equipment are
added to the system.
• The performance or reliability of the
system may have to be improved.
• A key problem for all organizations is
implementing and managing change to
their existing software systems.
• Organizations have huge investments in
their software systems - they are
critical business assets.
• To maintain the value of these assets to
Importance of the business, they must be changed
and updated.
Evolution • 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
• 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.
Evolution And • Servicing
Factor Questions
Understandability How difficult is it to understand the source code of the current system? How complex are the control
structures that are used? Do variables have meaningful names that reflect their function?
Documentation What system documentation is available? Is the documentation complete, consistent, and current?
Data Is there an explicit data model for the system? To what extent is data duplicated across files? Is the
data used by the system up to date and consistent?
Performance Is the performance of the application adequate? Do performance problems have a significant effect
on system users?
Programming language Are modern compilers available for the programming language used to develop the system? Is the
programming language still used for new system development?
Configuration management Are all versions of all parts of the system managed by a configuration management system? Is there
an explicit description of the versions of components that are used in the current system?
Test data Does test data for the system exist? Is there a record of regression tests carried out when new
features have been added to the system?
Personnel skills Are there people available who have the skills to maintain the application? Are there people
available who have experience with the system?
• You may collect quantitative data to
make an assessment of the quality of
the application system
System • The number of system change
requests.
Measurement • The number of different user
interfaces used by the system.
• The volume of data used by the
system.
End of chapter