Modularisierung
mit Java 9

Grundlagen und Techniken für langlebige Softwarearchitekturen
Jetzt Bestellen
Als E-Book kaufen       Quellcodes zum Buch

Modularisierung ist ein wichtiges Prinzip der Softwaretechnik und unterstützt den Entwurf langlebiger Softwarearchitekturen. Sie spielt bei der Entwicklung komplexer Softwaresysteme eine entscheidende Rolle und hilft den Architekten und Entwicklern dabei, Systeme zu bauen, die gut durchschaubar sind und damit die Voraussetzung für zukünftige Erweiter- und Wartbarkeit mitbringen.

Das Buch liefert Ihnen eine fundierte und kompakte Einführung in das Thema Modularisierung und zeigt anhand vieler Beispiele und Abbildungen, wie Sie modularisierte Anwendungen auf Basis des Java-Modulsystems erstellen können.
Darüber hinaus werden weiterer Modularisierungsansätze in Form von Microservices und Containern vorgestellt und gezeigt, wie sich diese Ansätze mit Java-Modulen verbinden lassen.

 

Der Autor

Dipl.-Inform. Guido Oelmann hat an der RWTH Aachen sein Diplom in Informatik erworben und arbeitet seit vielen Jahren als selbstständiger Softwarearchitekt und Berater. Zu seinen Schwerpunkten gehören neben agilen Entwicklungsmethoden und modernen Softwarearchitekturen, der Einsatz von Java-/Java-EE-Technologien in verteilten Systemen. Er unterstützt Unternehmen bei der Durchführung ihrer Projekte und verfügt über jahrelange Erfahrung beim Entwurf und der Entwicklung großer IT-Systeme in unterschiedlichen Branchen. Darüber hinaus gibt er sein Wissen regelmäßig bei Vorträgen, in Artikeln und Schulungen weiter.

 
Modul
 

Modularisierung -
kurz und knapp

Das Prinzip der Modularisierung verfolgt das Ziel ein System in eine Menge lose gekoppelter und in sich geschlossener Komponenten (bzw. Module) zu zerlegen. Bei einem Modul handelt es sich um eine abgeschlossene Einheit zur Lösung einer bestimmten Aufgabe. Die Implementierungsdetails des Moduls werden hinter einer Schnittstelle nach außen verborgen, die auch als Bindeglied zu anderen Modulen fungiert. Die von der Implementierung entkoppelte Schnittstelle kann als eine Art Vertrag zwischen den Modulen gesehen werden und muss in ihrem Verhalten eindeutig beschrieben sein, um eine Wiederverwendung durch andere Module zu ermöglichen. Der Entwurf einer geeigneten Modularisierung eines Systems, unter Berücksichtigung der erforderlichen Zerlegungskriterien, ist ein wichtiger Schritt für den Bau langlebiger und wartbarer Softwarearchitekturen.

Modularisierung

 

Quellcodes zum Buch

Alle Programmbeispiele aus dem Buch sind auf GitHub bereitgestellt und können dort angeschaut oder heruntergeladen und ausprobiert werden.

Principiis enim cognitis multo facilius extrema intellegetis.
(Hat man erst den Anfang verstanden, wird man das Übrige viel leichter verstehen.)
Marcus Tullius Cicero
Softwarewartung
 

Wartbarkeit -
die unterschätzte Königsdisziplin

Software unterliegt heute einer hohen Änderungsgeschwindigkeit und erfordert schnell umzusetzende Erweiterungen und Anpassungen für dessen Voraussetzung eine exzellente Software-Wartbarkeit nötig ist.

Trotzdem ist die häufig wettbewerbsentscheidende, aber zumindest die Kosten im Griff haltende Wartbarkeit oft keine klare Zielvorgabe, sondern eine im Ungefähren wabernde Idee, da Wartbarkeit eine innere Qualität von Software widerspiegelt und sich nicht in funktionale Anforderungen gießen läßt.

Zeitdruck und sich häufig ändernde Anforderungen tun dann ihr übriges und führen zu einem steten Zerfall der inneren Struktur eines Softwaresystems. Die Folge sind steigende Kosten und eine immer komplexer werdende Codebasis.

Wartbarkeit sollte den gleichen Stellenwert bekommen, wie alle anderen Zielvorgaben eines Softwareprojekts und dafür ist ein ganzheitliches Qualitätsverständnis eines Softwaresystems nötig, die auch ein Bewusstsein für Software-Wartbarkeit schafft.

Modularisierung ist ein wesentlicher Baustein auf dem Weg dorthin.

Grundlagen

Eine grundlegende Arbeit zur modularen Softwareentwicklung kam von einem der frühen Pionieren des Software Engineerings David Lorge Parnas mit der Veröffentlichung von "On the criteria To Be Used in Decomposing Systems into Modules" aus dem Jahr 1972. Er entwarf unter anderem das Konzept der Datenkapselung, welches heute ein Kernprinzip der modernen Softwaretechnik ist und ist bekannt für seine Arbeiten zur Dokumentation grosser, komplexer Softwaresysteme.

PDF
 
Die Welt ist modular

Die Modularität, das Prinzip des Zerlegens von Aufgaben in kleinere Teilaufgaben (Module), findet sich überall. Angefangen bei den biologischen neuronalen Netze des menschlichen Gehirns, die zum Teil modular arbeiten bis hin zu ganzen Branchen und Wirtschaftzweigen. Zum Beispiel konstruieren Autohersteller ihre Modellpaletten auf der Grundlage von modularen Plattformen und verkürzen dadurch Produktions- und Arbeitsprozesse, vereinfachen die Entwicklung und senken die Kosten bei gleichbleibender Qualität.

Modularisierung
mit Java 9

Grundlagen und Techniken für langlebige Softwarearchitekturen
Jetzt Bestellen