swe
-
- 1 / 56
-
Cartes-fiches
Module
- Best Practices
- Warum Arbeitsteilung?
- Evolution
- Was ist ein Modul?
- Klassen vs. Module
- Reduktion der Komplexität
- Spezialisierungen
- Parallelisierung
- Einbindung vorhandener Bausteine
Module
- Best Practices
- Warum Arbeitsteilung?
- Evolution
- Was ist ein Modul?
- Klassen vs. Module
- Wartbarkeit (Maintainability)
- spätere Änderungen an Software sind mit erträglichem Aufwand machbar
- Übertragbarkeit (Portability)
- Software läuft auf verschiedenen Plattformen
- Erweiterbarkeit (Extensibility)
- Zusätzliche Funktionen können hinzugefügt werden, ohne dass bestehende Teile geändert werden müssen.
Module
- Best Practices
- Warum Arbeitsteilung?
- Evolution
- Was ist ein Modul?
- Klassen vs. Module
- In sich geschlossenes Bauelement
- versteckt Details hinter Schnittstelle
- enthält ein Geheimniss (z.b.: Set mit Baum oder Hastable implementiert ist)
- Module werden seperat entwickelt, getestet, ausgetauscht
Module
- Best Practices
- Warum Arbeitsteilung?
- Evolution
- Was ist ein Modul?
- Klassen vs. Module
Klassen:
- instanzierte Objekte
- modelliert reale Welt
- Vererbung möglich
- Modellierung:
- kleinste Einheit
- Daten/Funktionen
Modul:
- keine Instanzen
- Kompilations- / Installations-Einheit
- Kann mehrere kooperierende Klassen enthalten
- Modellierung:
- Abstraktionseinheit
- Arbeitspaket zur unabhängigen Herstellung
Module
Modul als Java Klasse implementieren
- nur statische Methoden, Variablen und Klassen verwenden
- keine Vererbung zulassen,. Klasse als Final deklarieren.
- innere Klassen und Interfaces, public oder private
OSGi Bundles
- Definition
- Sichtbarkeit
- Namespace
Open Services Gateway initiative
Basis von Eclipse Plug-Ins
Modul = OSGi Bundle = .jar Datei mit Manifest
OSGi Bundles
- Definition
- Sichtbarkeit
- Namespace
- innerhalb eines Bundles kann normale Java Sichtbarkeit verwendet werden (public, private, protected)
- im Manifest gibt es zusätzliche Einschränkungen zu normalen Java Sichtbarkeitsregeln
OSGi Bundles
- Definition
- Sichtbarkeit
- Namespace
jedes Bundle hat eigenen ClassLoader und damit eigenen ClassPath
Zyklische Modulabhängigkeiten
- Definition
- Zyklen auflösen
zyklische Abhängigkeit entsteht, wenn Modul A von B importiert wird. oder:
wenn B von einem anderen Modul importiert wird, von dem A abhängig ist.
Zyklische Modulabhängigkeiten
- Definition
- Zyklen auflösen
existieren Dinge die von beiden Modulen A und B benötitgt werden. diese können nur durch zyklischen Import erreicht werden:
Die gemeinsam verwendeten Ding in ein neues Modul C auslagern. A und B imporiteren C.
Rolle SW Architekt
- Aufgaben
- Freiheitsgrade
- Variations vs. Evolution
- Entwurf
- Planung / Organisation
- Überwachung
Rolle SW Architekt
- Aufgaben
- Entwurf
- Planung / Organisation
- Überwachung
Systemstrukturen und Schnittstellen definieren
Rolle SW Architekt
- Aufgaben
- Entwurf
- Planung / Organisation
- Überwachung
- Abhängigkeiten identifizieren
- Teams auswählen
- Arbeitsreihenfolge und Termine festlegen
Rolle SW Architekt
- Aufgaben
- Entwurf
- Planung / Organisation
- Überwachung
- Korrektheit der Implementierung überwachen
- Qualitätssicherung
- Component Hell vermeiden
- Unit Tests
- Entwurf anpassen
- wenn sich Anforderungen ändern
- wenn Planungsfehler sichtbar werden
- Architekten ermöglichen Arbeitsteilung
Rolle SW Architekt
- Aufgaben
- Freiheitsgrade
- Variations vs. Evolution
Oppurtunity-Driven
- Welche änderungen werden durch die zufällig vorhandenen Freiheitsgrade vereinfacht?
Gaol-Driven
- Welche Freihetisgrade müssen geplant werden, um bestimmte Änderungen zu unterstützen?
Rolle SW Architekt
- Aufgaben
- Freiheitsgrade
- Variations vs. Evolution
Variation Point:
Variationen, di im aktuellen System bereits benutzt werden, oder bei denen sicher ist, dass entsprechende Varianten kreiert werden.
Evoultion Point:
spekulative Variationen die vielleicht in der Zukunft benötigt werden.