architekturmodell: der weg zur klassen-hierarchie · 1 betriebssystemtechnik operating system...

36
1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie

Upload: hoangcong

Post on 13-Aug-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architekturmodell: der Weg zur Klassen-Hierarchie · 1 Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie

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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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.