Page 273 -
P. 273
256 Chapter 9 Software evolution
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?
the difficulties of maintaining the system and the system documentation. You may
Figure 9.15 Factors
used in application also collect data that will help you judge the quality of the system. Data that may be
assessment useful in quality assessment are:
1. The number of system change requests System changes usually corrupt the sys-
tem structure and make further changes more difficult. The higher this accumu-
lated value, the lower the quality of the system.
2. The number of user interfaces This is an important factor in forms-based sys-
tems where each form can be considered as a separate user interface. The more
interfaces, the more likely that there will be inconsistencies and redundancies in
these interfaces.
3. The volume of data used by the system The higher the volume of data (number
of files, size of database, etc.), the more likely that it is that there will be data
inconsistencies that reduce the system quality.
Ideally, objective assessment should be used to inform decisions about what to do
with a legacy system. However, in many cases, decisions are not really objective but
are based on organizational or political considerations. For example, if two businesses
merge, the most politically powerful partner will usually keep its systems and scrap