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!




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




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.







Information Systems Reengineering for Modern Business Systems


Book Description

"This book covers different techniques that could be used in industry in order to reengineer business processes and legacy systems into more flexible systems capable of supporting modern trends such as Enterprise Resource Planning (ERP), supply chain management systems and e-commerce"--Provided by publisher.




Software Evolution and Maintenance


Book Description

Provides students and engineers with the fundamental developments and common practices of software evolution and maintenance Software Evolution and Maintenance: A Practitioner’s Approach introduces readers to a set of well-rounded educational materials, covering the fundamental developments in software evolution and common maintenance practices in the industry. Each chapter gives a clear understanding of a particular topic in software evolution, and discusses the main ideas with detailed examples. The authors first explain the basic concepts and then drill deeper into the important aspects of software evolution. While designed as a text in an undergraduate course in software evolution and maintenance, the book is also a great resource forsoftware engineers, information technology professionals, and graduate students in software engineering. Based on the IEEE SWEBOK (Software Engineering Body of Knowledge) Explains two maintenance standards: IEEE/EIA 1219 and ISO/IEC14764 Discusses several commercial reverse and domain engineering toolkits Slides for instructors are available online Software Evolution and Maintenance: A Practitioner’s Approach equips readers with a solid understanding of the laws of software engineering, evolution and maintenance models, reengineering techniques, legacy information systems, impact analysis, refactoring, program comprehension, and reuse.




Reengineering .NET


Book Description

Reengineer .NET Code to Improve Quality, Update Architecture, Access New Tools, and Accelerate Delivery of New Features As software ages, it becomes brittle: difficult to understand, fix, manage, use, and improve. Developers working with many platforms have encountered this problem; now, developers working with Microsoft’s .NET are facing it as well. In Reengineering .NET, leading .NET architect Bradley Irby introduces proven best practices for revitalizing older .NET code and integrating new architectural and development advances into business-critical systems that can’t go offline. Using a step-by-step approach, .NET professionals can make legacy enterprise software more reliable, maintainable, attractive, and usable—and make it easier to upgrade for years to come. Through real-world case studies and extensive downloadable sample code, Irby shows how to carefully plan a .NET reengineering project, understand the true current state of your code, introduce unit testing and other agile methods, refactor to services and controllers, and leverage powerful .NET reengineering tools built into Microsoft Visual Studio 2012. This book is an indispensable resource for all developers, architects, and project managers responsible for existing .NET code bases and for a wide audience of non-technical managers and CTOs who want to understand the unique challenges faced by .NET teams involved in application or system reengineering projects. Coverage includes • Migrating legacy .NET software to more flexible, extensible, and maintainable architectures—without breaking it • Reengineering web applications with the MVC pattern, Winforms software with MVP, and WPF/Silverlight systems with MVVM • Asking the right questions to predict refactoring problems before they happen • Planning and organizing reengineering projects to apply the right expertise to each task at the right time • Using innovative Test Doubling to make unit testing even more effective • Applying Dependency Inversion to break tight coupling and promote easier development and testing • Leveraging source control, defect tracking, and continuous integration • “Cleaning up” legacy solutions to improve them before you even touch business logic • Establishing solid development infrastructure to support your reengineering project • Refactoring to services—including advanced techniques using Repositories, Domain Models, and the Command Dispatcher • Refactoring to controller/view or ViewModel/View pairs




Legacy Systems


Book Description

In Legacy Systems: Transformation Strategies, leading IT and business architecture consultant William Ulrich presents a step-by-step, phased roadmap to legacy transformation that maximizes business value, while minimizing cost, disruption, and risk. Transformation strategies, organizing disciplines, techniques, and tools reduce the risks of deploying the component-based architectures you need to stay competitive while maximizing the business value of core systems that work.




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.