Page 264 -
P. 264

9.3   Software maintenance  247


                                                                             What parts of the system
                                                                             will be the most expensive
                        What parts of the system are                              to maintain?
                        most likely to be affected by
                            change requests?
                                                           Predicting
                                                         Maintainability


                                                                                     What will be the lifetime
                                                                                    maintenance costs of this
                                                 Predicting System  Predicting             system?
                                                    Changes      Maintenance
                                                                    Costs


                                                                                  What will be the costs of
                              How many change                                     maintaining this system
                               requests can be                                      over the next year?
                                 expected?


                                       environment inevitably result in changes to the system. To evaluate the relationships
                     Figure 9.10
                     Maintenance prediction  between a system and its environment, you should assess:

                                       1.  The number and complexity of system interfaces The larger the number of inter-
                                           faces and the more complex these interfaces, the more likely it is that interface
                                           changes will be required as new requirements are proposed.

                                       2.  The number of inherently volatile system requirements As I discussed in Chapter 4,
                                           requirements that reflect organizational policies and procedures are likely to be
                                           more volatile than requirements that are based on stable domain characteristics.
                                       3.  The business processes in which the system is used As business processes
                                           evolve, they generate system change requests. The more business processes that
                                           use a system, the more the demands for system change.


                                          For many years, researchers have looked at the relationships between program com-
                                       plexity, as measured by metrics such as cyclomatic complexity (McCabe, 1976), and
                                       maintainability (Banker et al., 1993; Coleman et al., 1994; Kafura and Reddy, 1987;
                                       Kozlov et al., 2008). It is not surprising that these studies have found that the more
                                       complex a system or component, the more expensive it is to maintain. Complexity
                                       measurements are particularly useful in identifying program components that are
                                       likely to be expensive to maintain. Kafura and Reddy (1987) examined a number of
                                       system components and found that maintenance effort tended to be focused on a small
                                       number of complex components. To reduce maintenance costs, therefore, you should
                                       try to replace complex system components with simpler alternatives.
                                          After a system has been put into service, you may be able to use process data to
                                       help predict maintainability. Examples of process metrics that can be used for
                                       assessing maintainability are as follows:
   259   260   261   262   263   264   265   266   267   268   269