Softwarewartung

Grundlagen, Management und Wartungstechniken

Architektur, Reengineering und Refactoring

Langlebige Software-Architekturen

Technische Schulden analysieren, begrenzen und abbauen

Carola Lilienthal, dpunkt.verlag, 2016

In diesem Buch zeigt die Autorin, welche Fehler in Softwareprojekten bei der Umsetzung der Architektur vermieden werden sollten und welche Prinzipien eingehalten werden müssen, um langlebige Architekturen zu entwerfen oder bei bestehenden Systemen zu langlebigen Architekturen zu gelangen. Sie geht auf Muster in Softwarearchitekturen und Mustersprachen ein, erläutert verschiedene Architekturstile und zeigt, welche Vorgaben letztlich zu Architekturen führen, die für Entwickler noch gut durchschaubar sind. Mit über 200 farbigen Bildern aus real existierenden Softwaresystemen und etlichen Fallbeispielen werden schlechte und gute Lösungen verständlich und nachvollziehbar dargestellt. Empfehlungen und vielfältige Hinweise aus Praxisprojekten erlauben dem Leser einen direkten Transfer zu seiner täglichen Arbeit.

Refactorings in grossen Softwareprojekten

Komplexe Restrukturierungen erfolgreich durchführen

Stefan Roock, Martin Lippert, dpunkt.verlag, 2004

Refactoring ist elementarer Bestandteil moderner Entwicklungsprozesse und bedeutet dabei, die interne Struktur der Software zu modifizieren, um sie verständlicher und leichter änderbar zu gestalten, ohne dass sich das gewünschte funktionale Verhalten verändert. Während Refactorings bei kleinen Projekten noch überschaubar sind, werden sie in größeren Projekten leicht zu unangenehmen Aufgaben. Vor allem komplexere Umstrukturierungen, Refactorings von veröffentlichten APIs und solche, die die Datenbank betreffen, führen häufig zu Problemen. Wie man als Entwickler oder Projektleiter damit umgehen kann, zeigen die Autoren dieses Buches anhand eigener Erfahrungen in kommerziellen Projekten. Sie geben dem Leser eine Reihe von Tipps und Tricks mit auf den Weg, wie er Refactorings großer Systeme in seinen eigenen Entwicklungsprojekten bewältigen kann.

Refactoring

Improving the Design of Existing Code

Martin Fowler, Kent Beck, Addison-Wesley, 1999

Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.

Patterns kompakt

Entwurfsmuster für effektive Software-Entwicklung

Karl Eilebrecht, Gernot Starke, Springer Vieweg, 2013

Patterns kompakt fasst die wichtigsten Entwurfsmuster zusammen, die Sie für Software-Entwicklung benötigen. Software-Entwickler, -Architekten und -Designer finden darin effektiv anwendbare Lösungen für tägliche Entwurfsprobleme. Die vierte Auflage wurde um aktuelle Patterns erweitert und komplett überarbeitet. Das Buch gliedert Patterns anhand typischer Aspekte des Software-Entwurfs: Basismuster für mehr Flexibilität und Wartbarkeit, Präsentation, Kommunikation und Verteilung, Integration und Persistenz. Patterns kompakt richtet sich an Praktiker: Software-Entwickler, -Designer, -Architekten und alle, die einen praxisorientierten Überblick zu Entwurfsmustern benötigen.

Object-Oriented Reengineering Patterns

Oscar Nierstrasz, Stéphane Ducasse, Serge Demeyer, Square Bracket Associates, 2009

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

Information Systems Transformation

Architecture-Driven Modernization Case Studies

William M. Ulrich, Philip Newcomb, Morgan Kaufmann Publishers, 2010

Every major enterprise has a significant installed base of existing software systems that reflect the tangled IT architectures that result from decades of patches and failed replacements. Most of these systems were designed to support business architectures that have changed dramatically. At best, these systems hinder agility and competitiveness and, at worst, can bring critical business functions to a halt. Architecture-Driven Modernization (ADM) restores the value of entrenched systems by capturing and retooling various aspects of existing application environments, allowing old infrastructures to deliver renewed value and align effectively with enterprise strategies and business architectures. This book provides a practical guide to organizations seeking ways to understand and leverage existing systems as part of their information management strategies. It includes an introduction to ADM disciplines, tools, and standards as well as a series of scenarios outlining how ADM is applied to various initiatives. Drawing upon lessons learned from real modernization projects, it distills the theory and explains principles, processes, and best practices for every industry.