skip to main content
Skip header Section
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business PracticesFebruary 2003
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-321-11884-4
Published:01 February 2003
Pages:
368
Skip Bibliometrics Section
Reflects downloads up to 01 Nov 2024Bibliometrics
Skip Abstract Section
Abstract

From the Book: Software systems become legacy systems when they begin to resist modification and evolution. However, the knowledge embodied in legacy systems constitutes significant corporate assets. Assuming these system still provide significant business value, they must then be modernized or replaced. This book describes a risk-managed approach to legacy system modernization that applies a knowledge of software technologies and an understanding of engineering processes within a business context. Audience Modernizing Legacy Systems: Software Technologies, Engineering Processes and Business Practices should be useful to anyone involved in modernizing a legacy system. As a software engineer, it should help you understand some of the larger business concerns that drive a modernization effort. As a software designer, this book should help you understand the impact of legacy code, coupled with incremental development and deployment practices, on design activities. As a system architect, this book explains the processes and techniques that have failed or succeeded in practice. It should also provide insight into how you can repeat these successes and avoid the failures. As an IT manager, this book explains how technology and business objectives influence the software modernization processes. In particular, it should help you answer the following questions: When and how do I decide if a modernization or replacement effort is justified How do I develop an understanding of the legacy system How do I gain an understanding of, and evaluate the applicability of, infsystem technologies that can be used in the modernization of my system When do I involve the stakeholders and how can I reconcile their conflicting needs What role does architecture play in legacy system modernization How can I estimate the cost of a legacy system modernization How can I evaluate and select a modernization strategy How can I develop a detailed modernization plan Organization and Content Modernizing Legacy Systems: Software Technologies, Engineering Processes and Business Practices shows how legacy systems can be incrementally modernized. It uses and extends the methods and techniques described in Building Systems from Commercial Components Wallnau, 2001 to draw upon engineering expertise early in the conceptual phase to ensure realistic and comprehensive planning. This book features an extensive case study involving a major modernization effort. The legacy system in this case study consists of nearly 2 million lines of COBOL code developed over 30 years. The system is being replaced with a modern system based on the Java 2 Enterprise Edition (J2EE) architecture. Additional challenges include a requirement to incrementally develop and deploy the system. We look at the strategy used to modernize the system; the use of Enterprise JavaBeans, message-oriented middleware, Java, and other J2EE technologies to produce the modern system; the supporting software engineering processes and techniques; and the resulting system. Chapters 1 of this book provides an introduction to the challenges and practices of software evolution and Chapter 2 introduces the major case study in the bo introduces the Risk-Managed Modernization (RMM) approach which is elaborated in Chapters 4 through 17 and illustrated by the case study. Throughout Chapters 4 through 17 we provide an activity diagram of RMM as a road map to each chapter. Chapter 18 provides some recommendations to help guide your modernization efforts (although these recommendations cannot be fully appreciated without reading the main body of the book).Throughout this book we use the Unified Modelling Language (UML) to represent architecture drawings and design patterns. A brief introduction to UML is provided in Chapter 6.

Cited By

  1. ACM
    Assunção W Keynote on Software Modernization: From Industry Needs to Developers' Perception Proceedings of the 1st IEEE/ACM Workshop on Software Engineering Challenges in Financial Firms, (21-22)
  2. Li H, Liu Y, Qi X, Yu X and Guo S (2023). Structuring meaningful bug‐fixing patches to fix software defect, IET Software, 17:4, (566-581), Online publication date: 27-Jul-2023.
  3. Yan A, Zhong H, Song D and Jia L (2023). How do programmers fix bugs as workarounds? An empirical study on Apache projects, Empirical Software Engineering, 28:4, Online publication date: 1-Jul-2023.
  4. ACM
    Tufano M, Watson C, Bavota G, Penta M, White M and Poshyvanyk D (2019). An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation, ACM Transactions on Software Engineering and Methodology, 28:4, (1-29), Online publication date: 31-Oct-2019.
  5. ACM
    Tufano M, Watson C, Bavota G, Di Penta M, White M and Poshyvanyk D An empirical investigation into learning bug-fixing patches in the wild via neural machine translation Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, (832-837)
  6. Bermdez Ruiz F, Garca Molina J and Daz Garca O (2017). On the application of model-driven engineering in data reengineering, Information Systems, 72:C, (136-160), Online publication date: 1-Dec-2017.
  7. López-Sanz M, de Castro V, Marcos E and Moratalla J Modernization of Information Systems at Red.es: An Approach Based on Gap Analysis and ADM Service-Oriented Computing, (490-498)
  8. Bermdez Ruiz F, Snchez Ramn s and Garca Molina J (2017). A tool to support the definition and enactment of model-driven migration processes, Journal of Systems and Software, 128:C, (106-129), Online publication date: 1-Jun-2017.
  9. Méndez M and Tinetti F (2017). Change-driven development for scientific software, The Journal of Supercomputing, 73:5, (2229-2257), Online publication date: 1-May-2017.
  10. ACM
    Knoche H Sustaining Runtime Performance while Incrementally Modernizing Transactional Monolithic Software towards Microservices Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering, (121-124)
  11. ACM
    Sridhara G Automatically Detecting the Up-To-Date Status of ToDo Comments in Java Programs Proceedings of the 9th India Software Engineering Conference, (16-25)
  12. Lessa I, F. Carneiro G, Monteiro M and Brito E Abreu F On the Use of a Multiple View Interactive Environment for MATLAB and Octave Program Comprehension Proceedings, Part IV, of the 15th International Conference on Computational Science and Its Applications -- ICCSA 2015 - Volume 9158, (640-654)
  13. ACM
    Cherukupalli P and Reddy Y Reengineering Enterprise Wide Legacy BFSI Systems Proceedings of the 8th India Software Engineering Conference, (40-49)
  14. Cuadrado J, Cánovas Izquierdo J and Molina J (2014). Applying model-driven engineering in small software enterprises, Science of Computer Programming, 89:PB, (176-198), Online publication date: 1-Sep-2014.
  15. ACM
    Khadka R, Batlajery B, Saeidi A, Jansen S and Hage J How do professionals perceive legacy systems and software modernization? Proceedings of the 36th International Conference on Software Engineering, (36-47)
  16. ACM
    Fast E, Steffee D, Wang L, Brandt J and Bernstein M Emergent, crowd-scale programming practice in the IDE Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, (2491-2500)
  17. Le Goues C, Forrest S and Weimer W (2013). Current challenges in automatic software repair, Software Quality Journal, 21:3, (421-443), Online publication date: 1-Sep-2013.
  18. Merten M and Steffen B (2013). Simplicity Driven Application Development, Journal of Integrated Design & Process Science, 17:3, (9-23), Online publication date: 1-Jul-2013.
  19. Hao D, Lan T, Zhang H, Guo C and Zhang L Is this a bug or an obsolete test? Proceedings of the 27th European conference on Object-Oriented Programming, (602-628)
  20. Ponzanelli L, Bacchelli A and Lanza M Seahawk: stack overflow in the IDE Proceedings of the 2013 International Conference on Software Engineering, (1295-1298)
  21. ACM
    Schulte E, DiLorenzo J, Weimer W and Forrest S (2013). Automated repair of binary and assembly programs for cooperating embedded devices, ACM SIGPLAN Notices, 48:4, (317-328), Online publication date: 23-Apr-2013.
  22. ACM
    Schulte E, DiLorenzo J, Weimer W and Forrest S (2013). Automated repair of binary and assembly programs for cooperating embedded devices, ACM SIGARCH Computer Architecture News, 41:1, (317-328), Online publication date: 29-Mar-2013.
  23. ACM
    Schulte E, DiLorenzo J, Weimer W and Forrest S Automated repair of binary and assembly programs for cooperating embedded devices Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, (317-328)
  24. Neamtiu I, Xie G and Chen J (2013). Towards a better understanding of software evolution, Journal of Software: Evolution and Process, 25:3, (193-218), Online publication date: 1-Mar-2013.
  25. ACM
    Chénard G, Khriss I and Salah A Towards the automatic discovery of platform transformation templates of legacy object-oriented systems Proceedings of the 6th International Workshop on Models and Evolution, (51-56)
  26. Bhattacharya P, Neamtiu I and Shelton C (2012). Automated, highly-accurate, bug assignment using machine learning and tossing graphs, Journal of Systems and Software, 85:10, (2275-2292), Online publication date: 1-Oct-2012.
  27. ACM
    Fry Z, Landau B and Weimer W A human study of patch maintainability Proceedings of the 2012 International Symposium on Software Testing and Analysis, (177-187)
  28. ACM
    Le Goues C, Weimer W and Forrest S Representations and operators for improving evolutionary software repair Proceedings of the 14th annual conference on Genetic and evolutionary computation, (959-966)
  29. ACM
    Normantas K, Sosunovas S and Vasilecas O An overview of the knowledge discovery meta-model Proceedings of the 13th International Conference on Computer Systems and Technologies, (52-57)
  30. Vetro' A Using automatic static analysis to identify technical debt Proceedings of the 34th International Conference on Software Engineering, (1613-1615)
  31. Buse R and Zimmermann T Information needs for software development analytics Proceedings of the 34th International Conference on Software Engineering, (987-996)
  32. Bhattacharya P, Iliofotou M, Neamtiu I and Faloutsos M Graph-based analysis and prediction for software evolution Proceedings of the 34th International Conference on Software Engineering, (419-429)
  33. Le Goues C, Dewey-Vogt M, Forrest S and Weimer W A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each Proceedings of the 34th International Conference on Software Engineering, (3-13)
  34. ACM
    Qi D, Roychoudhury A, Liang Z and Vaswani K (2012). DARWIN, ACM Transactions on Software Engineering and Methodology, 21:3, (1-29), Online publication date: 1-Jun-2012.
  35. Xiaofan Chen and Grundy J Improving automated documentation to code traceability by combining retrieval techniques Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering, (223-232)
  36. ACM
    Vasilecas O and Normantas K Deriving business rules from the models of existing information systems Proceedings of the 12th International Conference on Computer Systems and Technologies, (95-100)
  37. ACM
    Bhattacharya P and Neamtiu I Assessing programming language impact on development and maintenance Proceedings of the 33rd International Conference on Software Engineering, (171-180)
  38. ACM
    Kumar S, Khoo S, Roychoudhury A and Lo D Mining message sequence graphs Proceedings of the 33rd International Conference on Software Engineering, (91-100)
  39. ACM
    Le Goues C, Forrest S and Weimer W The case for software evolution Proceedings of the FSE/SDP workshop on Future of software engineering research, (205-210)
  40. ACM
    Chen X Extraction and visualization of traceability relationships between documents and source code Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (505-510)
  41. ACM
    Sridhara G, Hill E, Muppaneni D, Pollock L and Vijay-Shanker K Towards automatically generating summary comments for Java methods Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (43-52)
  42. ACM
    Buse R and Weimer W Automatically documenting program changes Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (33-42)
  43. ACM
    Brennan A, Greer D and McDaid K Adaptability performance trade-off Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, (1-4)
  44. ACM
    Fast E, Le Goues C, Forrest S and Weimer W Designing better fitness functions for automated program repair Proceedings of the 12th annual conference on Genetic and evolutionary computation, (965-972)
  45. ACM
    Weimer W, Forrest S, Le Goues C and Nguyen T (2010). Automatic program repair with evolutionary computation, Communications of the ACM, 53:5, (109-116), Online publication date: 1-May-2010.
  46. ACM
    Tee S (2009). Eliminating method redundancy for the improvement of inner class design, ACM SIGSOFT Software Engineering Notes, 34:6, (1-3), Online publication date: 3-Dec-2009.
  47. Cui B, Chen X, Song P and Liu R An extensible scientific computing resources integration framework based on grid service Proceedings of the 6th international conference on Cooperative design, visualization, and engineering, (224-231)
  48. ACM
    Qi D, Roychoudhury A, Liang Z and Vaswani K Darwin Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, (33-42)
  49. ACM
    Rul S, Vandierendonck H and De Bosschere K Towards automatic program partitioning Proceedings of the 6th ACM conference on Computing frontiers, (89-98)
  50. Weimer W, Nguyen T, Le Goues C and Forrest S Automatically finding patches using genetic programming Proceedings of the 31st International Conference on Software Engineering, (364-374)
  51. ACM
    Şavga I, Rudolf M, Götz S and Aßmann U Practical refactoring-based framework upgrade Proceedings of the 7th international conference on Generative programming and component engineering, (171-180)
  52. ACM
    Buse R and Weimer W Automatic documentation inference for exceptions Proceedings of the 2008 international symposium on Software testing and analysis, (273-282)
  53. Mazón J and Trujillo J A model driven modernization approach for automatically deriving multidimensional models in data warehouses Proceedings of the 26th international conference on Conceptual modeling, (56-71)
  54. Witte R, Li Q, Zhang Y and Rilling J Ontological text mining of software documents Proceedings of the 12th international conference on Applications of Natural Language to Information Systems, (168-180)
  55. Koskinen J, Sivula H, Tilus T, Kankaanpää I, Ahonen J and Juutilainen P Assessing software replacement success Proceedings of the 13th European conference on Software Process Improvement, (183-194)
  56. Tibermacine C, Fleurquin R and Sadou S On-Demand quality-oriented assistance in component-based software evolution Proceedings of the 9th international conference on Component-Based Software Engineering, (294-309)
  57. ACM
    de Souza S, Anquetil N and de Oliveira K A study of the documentation essential to software maintenance Proceedings of the 23rd annual international conference on Design of communication: documenting & designing for pervasive information, (68-75)
  58. Andrade L, Gouveia J, Antunes M, El-Ramly M and Koutsoukos G Forms2Net – migrating oracle forms to microsoft .NET Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering, (261-277)
  59. ACM
    Voinea L, Telea A and van Wijk J CVSscan Proceedings of the 2005 ACM symposium on Software visualization, (47-56)
  60. Hess H (2005). Aligning technology and business, IBM Systems Journal, 44:1, (25-45), Online publication date: 1-Jan-2005.
  61. Ye T, Shen-Sheng Z, Lei L and Jing-Yi Z OITASSF Proceedings of the 5th international conference on Parallel and Distributed Computing: applications and Technologies, (332-336)
  62. O'Brien L, Hansen F, Seacord R and Smith D Mining and Managing Software Assets Proceedings of the 10th International Workshop on Software Technology and Engineering Practice
Contributors
  • NCC Group, plc
  • Carnegie Mellon University
  • Software Engineering Institute

Reviews

Boniface C Nwugwo

If your organization is planning to evolve a legacy system or some elements of a legacy system, this book is for you. If you are particularly interested in refactoring or the functional transformation of a legacy system, this book is a must read. The authors provide a risk-managed approach to modernizing systems that no longer respond to new and constantly changing business requirements. Their proposed approach is called risk-managed modernization (RMM). Using RMM, the authors demonstrated how their approach can be applied to real life situations by utilizing a case study of the retail supply system (RSS), written primarily in Cobol. After a quick introduction to legacy systems and some of the modern technologies that could be used to modernize a system, the remainder of the book was dedicated to the details of how the RMM process works, illustrating each step with the RSS case study. These steps include understanding the legal system in question, understanding the target technology, evaluating the technology, defining the target architecture, defining the modernization strategy, reconciling strategies with stakeholder needs, and resource estimation. Each of these steps is presented in a brief, readable, and coherent fashion, in which the reader should have no problem understanding what the authors are trying to communicate. If there is any criticism of the book, it is in its simplification of the topics. Although the book does a good job of discussing concepts like transaction processing technologies, component architecture, transactional and non-transactional architectures, and the overall broad topic of legacy systems, its treatment of such topics is introductory at best. However, the introduction to these topics is good enough for the reader to grasp what the authors are trying to say. But if one is interested in more detailed knowledge about these concepts, this is not the book for such knowledge acquisition. These criticisms aside, I think the authors have presented a very practical approach to tackling legacy systems modernization. The book offers a good treatment of the very important broad topic of legacy systems evolution, and is an excellent starting point for software professionals who find themselves in the unenviable position of having to modernize their legacy systems in order to survive. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations