Re-Engineering Legacy Software


Book Description

Summary As a developer, you may inherit projects built on existing codebases with design patterns, usage assumptions, infrastructure, and tooling from another time and another team. Fortunately, there are ways to breathe new life into legacy projects so you can maintain, improve, and scale them without fighting their limitations. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Book Re-Engineering Legacy Software is an experience-driven guide to revitalizing inherited projects. It covers refactoring, quality metrics, toolchain and workflow, continuous integration, infrastructure automation, and organizational culture. You'll learn techniques for introducing dependency injection for code modularity, quantitatively measuring quality, and automating infrastructure. You'll also develop practical processes for deciding whether to rewrite or refactor, organizing teams, and convincing management that quality matters. Core topics include deciphering and modularizing awkward code structures, integrating and automating tests, replacing outdated build systems, and using tools like Vagrant and Ansible for infrastructure automation. What's Inside Refactoring legacy codebases Continuous inspection and integration Automating legacy infrastructure New tests for old code Modularizing monolithic projects About the Reader This book is written for developers and team leads comfortable with an OO language like Java or C#. About the Author Chris Birchall is a senior developer at the Guardian in London, working on the back-end services that power the website. Table of Contents PART 1 GETTING STARTED Understanding the challenges of legacy projects Finding your starting point PART 2 REFACTORING TO IMPROVE THE CODEBASE Preparing to refactor Refactoring Re-architecting The Big Rewrite PART 3 BEYOND REFACTORING—IMPROVING PROJECT WORKFLOWAND INFRASTRUCTURE Automating the development environment Extending automation to test, staging, and production environments Modernizing the development, building, and deployment of legacy software Stop writing legacy code!




Application Software Re-engineering


Book Description

Application Software Re-engineering is about reorganizing and modifying existing software systems to make them more maintainable and user friendly. It also powerfully dwells on the aspects of general Application Software Reengineering across variou.




Object-oriented Reengineering Patterns


Book Description

Object-Oriented Reengineering Patterns collects and distills successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign. This book is made available under the Creative Commons Attribution-ShareAlike 3.0 license. You can either download the PDF for free, or you can buy a softcover copy from lulu.com. Additional material is available from the book's web page at http://scg.unibe.ch/oorp




Legacy Software Re-Engineering Technology (LSRET).


Book Description

This Final Report documents the state of the Legacy Software Reengineering Technology (LSRET) Prototype Project at the time it was halted. The technology developed by TASC under the LSRET program was to be used to assist in the reengineering of avionics software. The RET was designed to process FORTRAN and JOVIAL code, and generate Ada code. The RET was also designed to be extensible to other High Order Languages. Much of the existing avionics software is poorly documented for maintenance purposes. LSRET was being developed to support engineers in transforming the legacy code into a more modern programming language and also to be used to (re)document either the legacy or the reengineered systems. This would improve the maintainability of the avionics software in two ways. LSRET could reengineer the software into a language that promotes better software engineering practices; and also makes it easier to find engineers who are trained in the use of the newer language. Second, LSRET could redocument the legacy and reengineered systems making them easier to maintain in the future.







Handbook of Re-Engineering Software Intensive Systems into Software Product Lines


Book Description

This handbook distils the wealth of expertise and knowledge from a large community of researchers and industrial practitioners in Software Product Lines (SPLs) gained through extensive and rigorous theoretical, empirical, and applied research. It is a timely compilation of well-established and cutting-edge approaches that can be leveraged by those facing the prevailing and daunting challenge of re-engineering their systems into SPLs. The selection of chapters provides readers with a wide and diverse perspective that reflects the complementary and varied expertise of the chapter authors. This perspective covers the re-engineering processes, from planning to execution. SPLs are families of systems that share common assets, allowing a disciplined software reuse. The adoption of SPL practices has shown to enable significant technical and economic benefits for the companies that employ them. However, successful SPLs rarely start from scratch, but instead, they usually start from a set of existing systems that must undergo well-defined re-engineering processes to unleash new levels of productivity and competitiveness. Practitioners will benefit from the lessons learned by the community, captured in the array of methodological and technological alternatives presented in the chapters of the handbook, and will gain the confidence for undertaking their own re-engineering challenges. Researchers and educators will find a valuable single-entry point to quickly become familiar with the state-of-the-art on the topic and the open research opportunities; including undergraduate, graduate students, and R&D engineers who want to have a comprehensive understanding of techniques in reverse engineering and re-engineering of variability-rich software systems.




Model-Driven Software Migration: A Methodology


Book Description

Today, reliable software systems are the basis of any business or company. The continuous further development of those systems is the central component in software evolution. It requires a huge amount of time- man power- as well as financial resources. The challenges are size, seniority and heterogeneity of those software systems. Christian Wagner addresses software evolution: the inherent problems and uncertainties in the process. He presents a model-driven method which leads to a synchronization between source code and design. As a result the model layer will be the central part in further evolution and source code becomes a by-product. For the first time a model-driven procedure for maintenance and migration of software systems is described. The procedure is composed of a model-driven reengineering and a model-driven migration phase. The application and effectiveness of the procedure are confirmed with a reference implementation applied to four exemplary systems.




Re-Engineering RPG Legacy Applications


Book Description

Re-engineering AS/400 Legacy Applications and companion CD ROM provide a tutorial aimed at showing you how to modernize your applications by taking you step by step through the re-engineering of a sample application. Author Paul Tuohy covers conversion of RPG IV programs, as well as re-engineering them to take full advantage of RPG IV and ILE. He also covers triggers, referential integrity, and APIs so that your applications can take advantage of all the new technology that is available today. This book will be a valuable aid as you evaluate your legacy applications and then move into re- engineering.




Successful Software Reengineering


Book Description

Software process reengineering has become highly visible over the past several years. Efforts are being undertaken by organizations of all types and sizes as they attempt to deal with the challenges of quality, complexity and competitiveness. As an emerging technology, the effectiveness and potential impact of process improvement efforts have been debated, but not fully tested or validated. At the very core of this technological evolution is the idea that the quality of a software product is highly dependent on the quality of the process used for its development. Successful Software Reengineering examines the most recent theories, models, approaches and processes involved with the concept of software improvement and reengineering.




Reengineering Legacy Software Systems


Book Description

Reengineering Legacy Software Systems shows how to evaluate systems, identify the problems, and fix them without starting over from scratch. It focuses on identifying the positive aspects of the system and building on them, instead of getting bogged down with what doesn't work. It covers the principles of reengineering and then shows how to specifically apply them to the problem of software engineering. Reengineering Legacy Software Systems fits in with system engineering books and looks at all the current tools such as CASE, rule-based technology and object technology. Information technology managers and software engineers are faced with the problem of having to solve problems without spending a lot of money and this book will be a great resource for those people. Mix of theory and practice. Specific to software, emphasizing techniques and tools required. Incorporates case studies.