Page 274 -
P. 274

Chapter 9   Further reading  257


                                       the other systems. If senior management in an organization decide to move to a new
                                       hardware platform, then this may require applications to be replaced. If there is no
                                       budget available for system transformation in a particular year, then system mainte-
                                       nance may be continued, even though this will result in higher long-term costs.




                      KEY POINTS



                           Software development and evolution can be thought of as an integrated, iterative process
                            that can be represented using a spiral model.
                           For custom systems, the costs of software maintenance usually exceed the software
                            development costs.
                           The process of software evolution is driven by requests for changes and includes change
                            impact analysis, release planning, and change implementation.
                           Lehman’s laws, such as the notion that change is continuous, describe a number of insights
                            derived from long-term studies of system evolution.
                           There are three types of software maintenance, namely bug fixing, modifying the software to
                            work in a new environment, and implementing new or changed requirements.
                           Software reengineering is concerned with restructuring and redocumenting software to make
                            it easier to understand and change.
                           Refactoring, making small program changes that preserve functionality, can be thought of as
                            preventative maintenance.
                           The business value of a legacy system and the quality of the application software and its
                            environment should be assessed to determine whether the system should be replaced,
                            transformed, or maintained.





                     FURTHER RE ADING

                         ‘Software Maintenance and Evolution: A Roadmap’. As well as discussing research challenges,
                         this paper is a good, short overview of software maintenance and evolution by leading
                         researchers in this area. The research problems that they identify have not yet been solved.
                         (V. Rajlich and K.H. Bennett, Proc. 20th Int. Conf. on Software Engineering, IEEE Press, 2000.)
                         http://doi.acm.org/10.1145/336512.336534.
                         Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business
                         Practices. This excellent book covers general issues of software maintenance and evolution as
                         well as legacy system migration. The book is based on a large case study of the transformation
                         of a COBOL system to a Java-based client-server system. (R. C. Seacord, D. Plakosh and G. A. Lewis,
                         Addison-Wesley, 2003.)
   269   270   271   272   273   274   275   276   277   278   279