architekturmodell: der weg zur klassen-hierarchie · 1 betriebssystemtechnik operating system...
TRANSCRIPT
![Page 1: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/1.jpg)
11
BetriebssystemtechnikOperating System Engineering (OSE)
Architekturmodell:der Weg zur
Klassen-Hierarchie
![Page 2: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/2.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 22
Domänenentwurf
Domänen-entwurf
Analyse Identifikation der Architekturtreiber, Mechanismen und
Sichten
Modellierung ... ? ... Architekturdokumentation mit Variationspunkten
Evaluierung Erkennen von Risiken in den Entwurfsentscheidungen
Domänenmodell Referenzarchitektur
Feedback/AnpassungenReverse Architecting
In Anlehnung an das Modell zur Architekturentwicklung aus [1].
teuer
![Page 3: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/3.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 33
Architektur-Modellierung
bisher haben wir diverse Hierarchien
Modul-Hierarchie
Funktionale Hierarchie [3]
Benutzt-Hierarchie [4]
jetzt kommt noch eine hinzu: die Belang-Hierarchie [1]
gesucht ist eine Modulstruktur
durch Programmiersprache bestimmt: AspectC++
- Klassen, Methoden, Aspekte, (Templates)
![Page 4: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/4.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 44
Funktionale Hierarchie von FAMOS
address spaces
process managem.
synchronization
address space creat.
process creation
disk i/o
swapping
file systems
special devices
job control languageuser interface
a time sharing system a batch system
a process control system
hardware[3]
Was genaubedeutet das?
![Page 5: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/5.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 55
Das Modell der funktionalen Hierarchie
1
2
3
4
disk access
irq monitorclock driver disk driver
process manager file system
...
process scheduler
![Page 6: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/6.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 66
Funktionale Hierarchie – Elemente
1
2
3
4
disk access
irq monitorclock driver disk driver
process manager file system
...
process scheduler
Funktionen elementare Systembausteine der Software (Entwurfsebene)
„logische Funktionen“
![Page 7: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/7.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 77
Funktionale Hierarchie – Elemente
1
2
3
4
disk access
irq monitorclock driver disk driver
process manager file system
...
process scheduler
Funktionale Abhängigkeiten logische Abhängigkeiten zwischen Systembausteinen („verwendet“)
müssen einen azyklischen Graphen ergeben
![Page 8: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/8.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 88
Funktionale Hierarchie – Elemente
1
2
3
4
disk access
irq monitorclock driver disk driver
process manager file system
...
process scheduler
Ebenen Gruppierung zusammenhängender Funktionen
Ebene 0 ist die Hardware
Ebenen 1...n fügen virtuelle Hardware als minimale Erweiterungen hinzu
Functionen der Ebene n kennen alle Funktions der Ebenen 0...n
![Page 9: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/9.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 99
verständlich
gut für „bottom-up“Entwicklung geeignet
feingranulare Konfigurierbarkeitdurch „minimale Erweiterungen“
erfordert keine speziellen Implementierungsmechanismen
It is the system design which is hierarchical,not its implementation Habermann, 1976 [3]
disk access
irq monitorclock driver disk driver
process manager file system
process scheduler
Funktionale Hierarchie – Vorteile
![Page 10: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/10.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1010
Das PURE Projekt (1995–2003)
Ziel: Eine hochgradig konfigurierbare BSProduktlinie für eingebettete Systeme
Herausforderungen Umgang mit großer Variabilität im Problemraum
Umsetzung der Variabilität im Lösungsraum
Entwicklungsmethoden Merkmalmodelle - Beschreibung der Variabilität
Funktionale Hierarchien - Variabler Entwurf
...
![Page 11: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/11.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1111
Problem 1: keine Verschachtelung
hochgradig konfigurierbare
Systeme können nicht durcheine einzige FH beschriebenwerden
Beispiel: PURE Prozess-verwaltung
- 13 Ebenen
- konfigurierbar in Bezug auf ...- Scheduling-Strategie- Prozess-Kontext- Systemschnittstelle- ...
![Page 12: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/12.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1212
Problem 1: keine Verschachtelung
hochgradig konfigurierbare
Systeme können nicht durcheine einzige FH beschriebenwerden
Beispiel: PURE Prozess-verwaltung
- 13 Ebenen
- konfigurierbar in Bezug auf ...- Scheduling-Strategie- Prozess-Kontext- Systemschnittstelle- ...
Lösungsansatz:
Rekursive Modellierung komplexer Funktionenals „Familie in der Familie“.
→ erlaubt schrittweise Verfeinerung
![Page 13: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/13.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1313
Problem 2: Querschneidende Belange
eine Implementierung mit Aspekten kann nurschwer abgeleitet werden
Beispiel: PURE Unterbrechungssynchronisation- 166 Join-Points
- 15 betroffene Klassen
![Page 14: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/14.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1414
Problem 2: Querschneidende Belange
eine Implementierung mit Aspekten kann nurschwer abgeleitet werden
Beispiel: PURE Unterbrechungssynchronisation- 166 Join-Points
- 15 betroffene Klassen
Lösungsansatz:
Explizite Modellierung querschneidender Belange
![Page 15: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/15.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1515
Das Modell der Belang-Hierarchien
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Erweiterung der funktionalen Hierarchien beschreibt funktionale Abhängigkeiten (zyklenfrei) erfasst quer schneidende Belange in den Funktionen
erlaubt Verfeinerungen von Funktionen durch Unterbelang-Hierarchien
![Page 16: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/16.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1616
Belang-Hierarchien – Elemente
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Herkömmliche Belange wie Funktionen in funktionalen Hierarchien
![Page 17: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/17.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1717
Belang-Hierarchien – Elemente
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Querschneidende Belange modellieren Belange, die in verschiedenen
herkömmlichen Belangen zu berück-sichtigen sind.
![Page 18: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/18.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1818
Belang-Hierarchien – Elemente
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Belanggruppen entsprechen AOP Pointcuts
ein einzelner Belang ist implizit eineGruppe (seiner Unterbelange)
![Page 19: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/19.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1919
Belang-Hierarchien – Elemente
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Funktionale Abhängigkeiten wie in funktionalen Hierarchien
querschneidende Belange können auch funktionale Abhängigkeiten haben
![Page 20: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/20.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2020
Belang-Hierarchien – Elemente
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Beeinflussung/Aktivierung ein querschneidender Belang
beeinflusst ein Belanggruppe
dabei wird der querschneidendeBelang aktiviert
![Page 21: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/21.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2121
Belang-Hierarchien – Elemente
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Notwendige Beeinflussung/Aktivierung wenn die jeweilige Aufgabe ohne die Beziehung nicht erfüllt werden kann
![Page 22: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/22.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2222
Beeinflussung und Aktivierung
notwendigeBeeinflussung
notwendigeAktivierung
![Page 23: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/23.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2323
Ableitung eines Abhängigkeitsmodells
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
![Page 24: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/24.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2424
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
concern 2concern 1
concern 3
concern 4
cross-cuttingconcern B
cross-cuttingconcern A
cross-cuttingconcern C
Ableitung eines Abhängigkeitsmodells
![Page 25: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/25.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2525
Beispiel: Lehrstuhl 4 Wetterstation
Lässt die Belang-Hierarchie aus dem Merkmalmodellsystematisch ableiten?
Merkmaldiagramm: Lehrstuhl 4 AVR-Wetterstationssoftware
WeatherMon
Actors Sensors
Temperature Air Pressure Wind SpeedDisplay PC ConnectionAlarm
RS232Line USBLine Protocol
SNGProto XMLProto
![Page 26: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/26.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2626
Beispiel: Lehrstuhl 4 Wetterstation
Lässt die Belang-Hierarchie aus dem Merkmalmodellsystematisch ableiten?
Merkmaldiagramm: Lehrstuhl 4 AVR-Wetterstationssoftware
WeatherMon
Actors Sensors
Temperature Air Pressure Wind SpeedDisplay PC ConnectionAlarm
RS232Line USBLine Protocol
SNGProto XMLProto
Nein, nicht vollständig im Merkmalmodell fehlen Belange, die zwar für
die Implementierung notwendig sind, aber zumZwecke der Konfigurierung uninteressant sind:
• „Anforderungen sind dokumentierte Belange“
allerdings sollten die hier „dokumentierten Belange“auch in der Belang-Hierarchie wieder auftauchen.
![Page 27: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/27.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2727
Beispiel: Lehrstuhl 4 Wetterstation
Belang-Hierarchie: Lehrstuhl 4 AVR-Wetterstationssoftware
1
2
3
4
Wetterdaten (-haltung und -repräsentation)
Messung (Sensoren)
Verarbeitung (Aktoren)
Steuerlogik
![Page 28: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/28.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2828
Beispiel: Lehrstuhl 4 Wetterstation
Belang-Hierarchie: Lehrstuhl 4 AVR-Wetterstationssoftware
1
2
3
4
Wetterdaten
Messung
Verarbeitung
Steuerlogik
Druck-speicherung
Wind-speicherung
Temperatur-speicherung
Druck-messung
Wind-messung
Temperatur-messung
allemessen
alleabfragen
Anzeige PC via XML PC via SNG
Leitung
allearbeiten
Main-Loop
![Page 29: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/29.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2929
program families
OO vs. familienbasierter Entwurf
Vererbung kann als Vehikel für die schrittweise Erweiterung genutzt werden
Pro
funktionale Hierarchien lassen sich (relativ) leicht in eine Modulstruktur transformieren
Contra Entwurf wird leicht als schlechter OO-Entwurf missverstanden
minimal subset
minimal extension
incrementalsystem design
object orientation
base class
derived class
inheritance
[2]
![Page 30: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/30.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 3030
Funktionen werden Klassen (1)
die funktionale Hierarchie wird „einfach auf den Kopf gestellt“:
Eigenschaften: Konfigurierung durch Anwender + Binder eventuell Mehrfachvererbung Trennung des Zustands bei Funktionen einer Ebene eignet sich für grobe Funktionen
Klassen ohne Attribute machen z.B. selten Sinn
PressureSensor
void messure()
Druck-speicherung
Druck-messung
Pressure
unsigned _p
string to_string()
![Page 31: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/31.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 3131
Funktionen werden Klassen (2)
Funktionen einer Ebene können auch zu einer Klasse zusammengefasst werden:
Eigenschaften: Konfigurierung eventuell durch
Anwender + Binder gemeinsamer Zustand möglich für kleine Funktionen die angenehmere Schnittstelle
Weather
string p_str()string w_str()string t_str()...
unsigned _punsigned _wunsigned _t
VP1VP2VP3
Druck-speicherung
Wind-speicherung
Temperatur-speicherung
VP1VP2VP3
![Page 32: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/32.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 3232
Querschn. Belange werden Aspekte
Druck-speicherung
Wind-speicherung
Temperatur-speicherung
alleabfragen
PressureSensor
SensorManagement
(A) constructionRegIterator iter()
SensorRegistry reg;
<<affects>><<aspect>>
WindSensor TemperatureSensor
Eigenschaften: Entkopplung der Funktionen erleichtert Konfigururierung nicht immer möglich/sinnvoll
![Page 33: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/33.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 3333
Konfigurierbare Funktionen
... machen eine gemeinsame Schnittstelle notwendig:
wahlweise statisch gebunden, z.B. „Klassenalias“
oder dynamisch gebunden, z.B. mit abstrakter Klasse
Port
USB Port RS232 Port ...
PC via XML PC via SNG
Leitung
![Page 34: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/34.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 3434
Zusammenfassung
Grundregeln bei der Ableitung einer AO-Klassenhierarchie aus einer Belang-Hierarchie: Erweiterungen (Ebenen) werden durch Vererbung
ausgedrückt Querschneidende Belange können i.d.R. als Aspekte
realisiert werden Konfigurierbare Funktionen erfordern eine
Schnittstellendefinition- Bindung kann statisch oder dynamisch erfolgen
- das Hinzufügen abstrakter Schnittstellenklassen erfolgt immer anwendungsgetrieben, d.h. die Entwicklung beginnt nicht mit einer abstrakten Klasse wie es in OO-Entwürfen oft zu finden ist
der Prozess vermeidet zwecks Konfigurierbarkeit zyklische Abhängigkeiten in der Modulstruktur
![Page 35: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/35.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 3535
Ausblick
Untersuchung verschiedener Techniken zur Umsetzung von Variabilität in der Implementierung der Komponenten
Stand der Kunst: Beispiel ECOS
Werkzeugbasierte Lösungen
Programmiersprachenbasierte Lösungen
![Page 36: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie](https://reader031.vdokument.com/reader031/viewer/2022041204/5d5292fa88c993021f8b98de/html5/thumbnails/36.jpg)
© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 3636
Literatur
[1] O. Spinczyk. Aspektorientierung und Programmfamilienim Betriebssystembau. Dissertation, Otto-von-Guericke-Universität Magdeburg, 2002.
[2] W. Schröder-Preikschat. The Logical Design ofParallel Operating Systems. Prentice Hall, 1994.ISBN 0-13-183369-3.
[3] A. N. Habermann, L. Flon, and L. Cooprider.Modularization and Hierarchy in a Family of OperatingSystems. Communications of the ACM, 19(5):266-272, 1976.
[4] D. L. Parnas. Some Hypotheses about the 'uses'Hierarchy for Operating Systems, Technical Report,Technische Hochschule Darmstadt, Darmstadt, West Germany, 1976.