Softwarewartung

Grundlagen, Management und Wartungstechniken

Bücher

Softwarewartung und Legacysysteme

Softwarewartung

Grundlagen, Management und Wartungstechniken

Christoph Bommer, Markus Spindler, Volkert Barr, dpunkt.verlag, 2008

Software ist aus nahezu allen Bereichen unserer Gesellschaft nicht mehr wegzudenken und stellt nicht selten eine Achillesferse dar. Entsprechend wächst die Wichtigkeit der Pflege solcher Systeme und damit die Bedeutung der Wartung von Software. Ziel dieses Buches ist es, eine Übersicht sowie Hilfestellung rund um das Thema der Softwarewartung sowie Lösungsansätze zu den spezifischen Problemen zu geben. Dies beinhaltet eine Einführung in die Begriffswelt der Softwarewartung, die Grundlagen der Wartung sowie die Evolution von Software. Die Einbettung des Wartungsprozesses in den Lebenszyklus von Software und die Einflüsse auf die unterschiedlichen Organisationsformen werden im Detail beschrieben wie auch Ansätze zur Kostenbetrachtung und der Umgang mit Wissen und Dokumentation betrachtet. Im technischen Teil wird auf den Nutzen von Metriken, Software-Analyse und Visualisierung für die Softwarewartung eingegangen. Weitere Themen sind Reengineering, Sanierung und Migration sowie das Testen.

Legacysoftware

Das lange Leben der Altsysteme

Dieter Masak, Springer, 2005

Die Software heutiger Unternehmen besteht zum größten Teil aus Altsystemen, die zwischen fünf und dreißig Jahren alt sein können. In der heutigen Softwareliteratur wird vorwiegend die Schaffung und Konzeption von neuen Systemen behandelt. Ziel dieses Buches ist es dagegen, eine Darstellung der Entwicklungsmöglichkeiten und Strategien für die Altsysteme aufzuzeigen. Dabei beschäftigt sich der Autor auch mit folgenden Fragen: Wie kann die Wartung besser werden? Muss man wirklich ablösen? Wie funktioniert der Ersatz durch Standardsoftware?

Software-Produktmanagement

Wartung und Weiterentwicklung bestehender Anwendungssysteme

Harry M. Sneed, Martin Hasitschka, Maria Th. Teichmann, dpunkt.verlag, 2004

In diesem Buch werden anhand zahlreicher Fallstudien Planung, Organisation und Steuerung der Wartungs- und Weiterentwicklungsaktivitäten innerhalb eines Software-Produktlebenszyklus beschrieben und die erforderliche Infrastruktur dargestellt. Erklärt werden zudem dafür eingesetzte Verfahren, Techniken und Tools sowie die Organisation von Aufbau und Ablauf eines Wartungsbetriebs. Der Schwerpunkt liegt dabei auf der täglichen Praxis der Softwareentwicklung. Aber auch die Theorie wird nicht außer Acht gelassen, wodurch sich das Buch ebenso für den Einsatz in Lehrveranstaltungen eignet.

Eating the IT Elephant

Moving from Greenfield Development to Brownfield

Richard Hopkins, Kevin Jenkins, IBM Press, 2008

Most conventional approaches to IT development assume that you’re building entirely new systems. Today, “Greenfield” development is a rarity. Nearly every project exists in the context of existing, complex system landscapes--often poorly documented and poorly understood. Now, two of IBM’s most experienced senior architects offer a new approach that is fully optimized for the unique realities of “Brownfield” development. Richard Hopkins and Kevin Jenkins explain why accumulated business and IT complexity is the root cause of large-scale project failure and show how to overcome that complexity “one bite of the elephant at a time.” You’ll learn how to manage every phase of the Brownfield project, leveraging breakthrough collaboration, communication, and visualization tools--including Web 2.0, semantic software engineering, model-driven development and architecture, and even virtual worlds.

Architektur / Reengineering / 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.

Code und Test

Effektives Arbeiten mit Legacy Code

Refactoring und Testen bestehender Software

Michael C. Feathers, mitp-Verlag, 2010

Können Sie Ihren Code leicht ändern? Können Sie fast unmittelbar Feedback bekommen, wenn Sie ihn ändern? Verstehen Sie ihn? Wenn Sie eine dieser Fragen mit Nein beantworten, arbeiten Sie mit Legacy Code, der Geld und wertvolle Entwicklungszeit kostet. Feathers erläutert in diesem Buch Strategien für den gesamten Entwicklungsprozess, um effizient mit großen, ungetesteten Code-Basen zu arbeiten. Dabei greift er auf erprobtes Material zurück, das er für seine angesehenen Object-Mentor-Seminare entwickelt hat. Damit hat er bereits zahlreichen Entwicklern, technischen Managern und Testern geholfen, ihre Legacy-Systeme unter Kontrolle zu bringen. Darüber hinaus finden Sie auch einen Katalog mit 24 Techniken zur Aufhebung von Dependencies, die Ihnen zeigen, wie Sie isoliert mit Programmelementen arbeiten und Code sicherer ändern können.

Clean Code

Refactoring, Patterns, Testen und Techniken für sauberen Code

Robert C. Martin, mitp-Verlag, 2009

Das einzige praxisnahe Buch, mit dem Sie lernen, guten Code zu schreiben! Zwar kann selbst schlechter Code durchaus funktionieren, doch führt solch unsauberer Code dazu, dass jedes Jahr unzählige Arbeitsstunden und andere Ressourcen verschwendet werden. Das muss nicht sein! Der anerkannte Software-Experte Robert C. Martin präsentiert Ihnen mit diesem Buch eine revolutionär neue Methode, guten Code zu schreiben oder schlechten Code zu überarbeiten. So werden Sie ein besserer Programmierer! Sie werden viel Code lesen und Sie werden darüber nachdenken, was richtig an diesem Code ist und was nicht. Der Autor erklärt Ihnen, welche Prinzipien, Patterns und Praktiken Sie anwenden müssen, um sauberen Code zu schreiben und zeigt Ihnen anhand einiger ausführlicher Fallstudien und zahlreicher Beispiele, wie schlechter Code in guten Code umgewandelt werden kann. Auch eine saubere Fehlerbehandlung sowie die Anwendung sauberen Codes auch während der Testphase werden angesprochen.

Beyond Legacy Code

Nine Practices to Extend the Life

Dave Bernstein, O'Reilly, 2015

We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project.

Software Exorcism

A handbook for debugging and optimizing legacy code

Bill Blunden, Apress, 2012

Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code takes an unflinching, no bulls$&# look at behavioral problems in the software engineering industry, shedding much-needed light on the social forces that make it difficult for programmers to do their job. Do you have a co-worker who perpetually writes bad code that you are forced to clean up? This is your book. While there are plenty of books on the market that cover debugging and short-term workarounds for bad code, Reverend Bill Blunden takes a revolutionary step beyond them by bringing our attention to the underlying illnesses that plague the software industry as a whole. Further, Software Exorcism discusses tools and techniques for effective and aggressive debugging, gives optimization strategies that appeal to all levels of programmers, and presents in-depth treatments of technical issues with honest assessments that are not biased toward proprietary solutions.

Basiswissen Softwaretest

Aus- und Weiterbildung zum Certified Tester

Andreas Spillner, Tilo Linz, dpunkt.verlag, 2012

Es vermittelt das nötige Grundlagenwissen und verwendet dabei ein durchgängiges Beispiel. Die wichtigsten Methoden zum Testen von Software und zum Prüfen der während der Softwareentwicklung verwendeten und erstellten Dokumente werden ausführlich behandelt.
Aus dem Inhalt:

  • Grundlagen des Softwaretestens
  • Testen im Softwarelebenszyklus
  • Statischer Test
  • Dynamischer Test
  • Testmanagement
  • Testwerkzeuge

Über das in diesem Buch vermittelte Basiswissen sollten Tester sowie Softwareentwickler und Programmierer verfügen. Das Buch ist so aufbereitet, dass es auch für das Selbststudium geeignet ist. Die 5. Auflage wurde überarbeitet und ist konform zum ISTQB-Lehrplan Version 2011. Abgedeckt wird damit auch der entsprechende deutschsprachige Foundation-Level- Lehrplan des German Testing Board, des Austrian Testing Board und des Swiss Testing Board.