Skip to main content
main-content

Über dieses Buch

Das Buch behandelt den zentralen Bereich "Entwurf" der Softwaretechnik, nämlich der Erstellung und Modifikation von Softwarearchitekturen, um so die Struktur eines Softwaresystems vor ihrer Detailrealisierung festzulegen. Die Softwarearchitektur enthält alle Grundlagen für Qualitätseigenschaften des später entstehenden Softwaresystems, insbesondere für Wartbarkeit. Auf dieser Betrachtungsebene finden ferner alle substantiellen Überlegungen zur Wiederverwendbarkeit statt. Hierzu werden geeignete Konzepte auf Architekturebene eingeführt, eine geeignete Architekturbeschreibungssprache vorgestellt, und es wird der methodische Umgang mit dieser Sprache geübt. Zur Übersicht werden graphische Architekturdiagramme für das Gesamtsystem zur Detailbeschreibung der Module textueller Beschreibungen verwendet. Die vorgestellten Konzepte bzw. Sprachen haben ihren Ursprung in Programmiersprachen. Trotzdem ist das Buch programmiersprachenunabhängig. Um dies zu zeigen, wird die Übertragung der Konzepte in FORTRAN, C und Pascal vorgeführt. Das Buch ist für den professionellen Software-Praktiker geschrieben. Es betont die softwaretechnische Bedeutung der objektbasierten Architekturmodellierung und ist sowohl kursbegleitend einsetzbar als auch zum Selbststudium geeignet.

Inhaltsverzeichnis

Frontmatter

1. Der Kontext: Softwaretechnik-Grundlagen

Zusammenfassung
Die Zielsetzung dieses Kapitels ist eine Einführung in die Softwaretechnik und dabei eine Klärung der wichtigsten Begriffe, die für die in diesem Buch behandelte Problematik von Bedeutung sind und die im folgenden verwendet werden. Diese Klärung ist schon deshalb nötig, weil es in der Softwaretechnik keine einheitliche Begriffswelt gibt. Es ist klar, daß ein solches Einleitungskapitel eine allgemeine Softwaretechnik—Einführung in Form eines oder mehrerer Lehrbücher nicht ersetzen kann (vgl. Literaturabschnitt 2 und 3). Für den Leser ist es deshalb von Vorteil, eine allgemeine Einführung gelesen zu haben, es ist aber nicht zwingend notwendig. Das Kapitel kann andererseits, eben wegen der uneinheitlichen Begriffswelt, von einem kundigeren Leser nicht einfach überschlagen werden.
Manfred Nagl

2. Das Problem: Modellieren auf Entwurfsebene

Zusammenfassung
Die erste Zielsetzung dieses Kapitels ist es, zu motivieren, warum die Beschäftigung mit Software-Architekturen wichtig ist. Dies zeigen wir einmal durch den Nachweis, daß alle wichtigen Qualitätseigenschaften des letztlich entstehenden Programmsystems von entsprechenden Überlegungen auf der Architekturebene abhängen, und zum anderen dadurch, daß die Eigenschaften nahezu aller weiteren Softwaredokumente von denen der Architektur bestimmt sind. Dieses Kapitel dient also der Erläuterung der Bedeutung des Programmierens im Großen.
Manfred Nagl

3. Ein erstes Beispiel: Ohne Vorüberlegung

Zusammenfassung
Zielsetzung dieses Kapitels ist die Erarbeitung eines Beispiels, ohne lange darüber nachzudenken. Dieser „Schnellschuß“ erstreckt sich auf verschiedene Ebenen: Wir werden weder über die Aufgabe lange diskutieren noch über eine geeignete Notation für Lösungen oder über die hier zu erstellende Beispielarchitektur. Deshalb werden wir schwerwiegende Fehler bei der Erstellung dieser Architektur machen. Diese Fehler sind didaktisch erwünscht, geben sie uns doch später Gelegenheit, sie zu diskutieren und andere Vorgehensweisen vorzuschlagen, um sie zu vermeiden. Das Beispiel ist aus Übungsaufgaben zu einer Vorlesung hervorgegangen.
Manfred Nagl

4. Die Notation: Ein einfaches Modulkonzept

Zusammenfassung
Wir führen in diesem Kapitel zwei formale Sprachen für Softwarearchitekturen ein, eine Diagrammsprache für Übersichtsdarstellungen und eine textuelle und Ada—ähnliche, um die Detailinformation für die einzelnen Module im Gesamtzusammenhang einer Architektur festzuhalten. Über die Syntax und Semantik dieser Sprachen haben wir uns im vorletzten Kapitel bereits geäußert. Wir erläutern in diesem Kapitel lediglich kleine Beispiele, die einzelne Bausteine einer Architektur darstellen. Insoweit ist in diesem Kapitel die Angabe von Erläuterungen im Sinne eines Entwurfsbegründungspapiers (Design-Rationales) überflüssig. Ferner betrachten wir hier auch teilweise das Programmieren im Kleinen insoweit, als wir bei der Vorstellung von Modulen beispielhaft einige Rümpfe angeben.
Manfred Nagl

5. Zur Vertiefung: Teilarchitekturüberlegungen und Modulkonzept-Erweiterungen

Zusammenfassung
In diesem Kapitel werden wir die Modulkonzeptüberlegungen des letzten Kapitels anwenden. Dies geschieht dadurch, daß wir klären werden, in welchen Zusammenhängen bestimmte Modularten in einer Architektur auftreten. Dabei werden sich bestimmte Situationen herauskristallisieren, die immer wieder als Teile einer Gesamtarchitektur auftreten. Dies führt zu einem Ansatz einer Klassifizierung von Teilarchitekturen. Diese Teile einer Gesamtarchitektur handhaben die Realisierung komplexer Einträge, die Realisierung von Kollektionen sowie das Zusammenspiel von Einträgen und Kollektionen. Dabei werden wir solche Beispiele besprechen, die nicht innerhalb eines Moduls realisiert werden können, sondern eine Teilarchitektur innerhalb des Gesamtsystems erfordern.
Manfred Nagl

6. Vorbereitung für den Einsatz: Übertragung in Programmiersprachen

Zusammenfassung
Die Zielsetzung dieses Kapitels ist die Klärung, wie die in Kap. 4 und 5 eingeführten Konzepte und deren sprachliche Ausprägung auf eine für die Implementation verwandte Programmiersprache abgebildet werden können. Für diese Abbildung werden im folgenden auch die Begriffe Übertragung, Transformation oder Übersetzung verwendet.
Manfred Nagl

7. Einübung durch Beispiele: Einige Softwarearchitekturen

Zusammenfassung
Die Zielsetzung dieses Kapitels ist, einige Programmsysteme mit den hier vorgestellten Architekturbeschreibungssprachen zu modellieren. Da für diese Beispiele die entsprechenden Textnotationen für die betroffenen Module und für die Teilsysteme bereits zu lang würden, beschränken wir uns bei den Erörterungen auf die Ebene von Architekturdiagrammen. Wir werden, wiederum aus Platzgründen, nicht einmal die Architekturdiagramme vollständig vorstellen. Im Gegensatz zu den Beispielen aus Kapitel 4, die auf der Ebene einzelner Module lagen, und zu denen von Kapitel 5, die einige typische Situationen auf Teilarchitekturebene zum Gegenstand hatten, betrachten wir in diesem Kapitel erstmals vollständige Architekturen.
Manfred Nagl

8. Allgemeine Hinweise: Strategien zur Adaptabilität und Wiederverwendbarkeit

Zusammenfassung
Die Zielsetzung dieses Kapitels ist die Angabe von Hinweisen, Regeln und Strategien, die die Kosten bei der Erstellung bzw. der Wartung eines Softwaresystems reduzieren. Der Ansatz ist dabei der, von einer schnell erstellten zu einer wohlüberlegten und „intelligenteren“ Architektur überzugehen. Der dabei erbrachte Aufwand zahlt sich zum einen in einer größeren Wartbarkeit des Softwaresystems aus und zum anderen auch in der Wiederverwendbarkeit von Modulen, Teilsystemen bzw. von Konzepten aus, die zur Realisierung eingesetzt werden können.
Manfred Nagl

9. Noch nicht gelöst: Offene Probleme und Weiterführung

Zusammenfassung
Die Zielsetzung dieses Kapitels ist es, die z.Z. noch offenen Probleme der Architekturmodellierung aufzuführen bzw. die offenen Probleme anzusprechen, die zwar nicht auf Architekturmodellierungsebene liegen, aber mit solchen Problemen eng verknüpft sind. Dieses Kapitel wird somit zeigen, daß der Arbeitsbereich Programmieren im Großen und die damit zusammenhängenden Arbeitsbereiche noch eine Reihe schwieriger Fragen aufweisen, in die noch einiger Forschungsaufwand zu investieren ist. Wie im Vorwort schon angedeutet, stellt das Buch einen Zwischenzustand des Programmierens im Großen dar, der jetzt aufgrund der Erörterung der offenen Probleme eingeordnet und bewertet werden kann. Die Probleme werden knapp skizziert, da sich für dieses Kapitel in erster Linie Leser interessieren werden, die Genaueres über den Stand dieser Diszplin der Softwaretechnik wissen wollen. Bei der Auflistung der offenen Probleme werden auch einige Möglichkeiten zur Erweiterung der in diesem Buch vorgestellten Konzepte sichtbar.
Manfred Nagl

Backmatter

Weitere Informationen