G. Pomberger, W. Pree: Software Engineering , Architektur-Design und Prozessorientierung, Carl Hanser Verlag, München Wien, 2004.


Dieses Buch wendet sich an alle, die Softwaresysteme planen, entwerfen und implementieren wollen, sich also mit grundsätzlichen Fragen zur Konstruktion von Softwaresystemen auseinandersetzen wollen oder müssen. Dazu gehören vor allem professionelle Software-Entwickler und Studierende der Informatik und der Wirtschaftsinformatik, aber auch anderer Studienrichtungen, in denen Programmierung ein integraler Bestandteil der Ausbildung ist. Die Verfasser beschäftigen sich seit vielen Jahren mit der Anwendung, Entwicklung und Vermittlung von Konzepten, Techniken, Methoden und Werkzeugen zur Qualitäts- und Produktivitätssteigerung bei der Herstellung von Software. Die Erfahrungen aus Forschungsprojekten, Software-Entwicklungsprojekten und viele fruchtbringende Diskussionen mit Kollegen, Kolleginnen und Auftraggebern bilden die Grundlage für dieses Buch. Software Engineering (im Deutschen auch als Softwaretechnik bezeichnet) ist jenes Teilgebiet der Informatik, das die Herstellung großer Softwaresysteme behandelt und dazu erforderliche Konzepte, Techniken und Methoden entwickelt beziehungsweise erforscht und darüber hinaus Werkzeuge bereitstellt, die die Herstellung, Dokumentation und Wartung großer Softwaresysteme unterstützen oder überhaupt erst möglich machen. Die Softwareentwicklung ist eine anspruchsvolle Tätigkeit. Um die dabei auftretenden Probleme zu bewältigen, reicht der Hausverstand nicht aus. Neben der Fähigkeit komplexe Zusammenhänge zu analysieren, Systemarchitekturen zu gestalten und der Beherrschung technischer Fertigkeiten ist insbesondere ein methodengestütztes Vorgehen notwendig. Im Gegensatz zu anderen technischen Produkten unterliegt Software keinen materiellen Schranken. Diese Unbeschränktheit führt dazu, dass immer größere und komplexere Softwaresysteme entwickelt werden. Die Entwicklung solch komplexer Systeme ist schwierig und mit so vielen Problemen behaftet, dass es bis heute nicht gelungen ist, Softwareprodukte mit einer ähnlich hohen Qualität herzustellen, wie sie für andere technische Produkte längst zur Selbstverständlichkeit geworden ist. Viele träumen daher davon, dass sich auf diesem Gebiet durch neue Methoden, Techniken und Werkzeuge ein Sprung nach vorne oder gar ein revolutionärer Durchbruch erzielen lässt. Bei nüchterner Betrachtung stellt man jedoch fest, dass wir noch weit davon entfernt sind, diesen schwierigen Prozess umfassend zu beherrschen, und dass wohl auch in absehbarer Zeit kaum ein Quantensprung im Hinblick auf die Lösung der vielschichtigen Probleme, mit denen Softwareentwickler konfrontiert sind, zu erwarten ist. Dennoch sind beträchtliche Fortschritte auf dem Weg zur Beherrschung von Software-Entwicklungsprozessen und zur Gestaltung und Implementierung von Softwaresystemen erzielt worden. Es ist das Anliegen dieses Buches, einige aus der Sicht der Autoren wesentliche Konzepte, Vorgehensmodelle, Techniken und Methoden zur Meisterung der Komplexität von Software-Entwicklungsprojekten und zur Konstruktion von Softwaresystemen darzulegen. Die Beschränkung auf einige wesentliche Aspekte und der Verzicht auf den (ohnehin kaum erfüllbaren) Anspruch, das Gebiet Software Engineering umfassend zu behandeln, charakterisieren das Buch. Bewusst ausgeklammert sind Bereiche wie Datenbanken, Software-Ergonomie, Versions- und Konfigurationsmanagement, Software Reverse- und Re-Engineering. Auf Programmiersprachen und spezielle Notationen, wie z.B. UML, wird nicht umfassend eingegangen, sondern nur soweit, wie es zu ihrer Verwendung in diesem Buch erforderlich ist.