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
   268   269   270   271   272   273   274   275   276   277   278