21
1 Betriebssystemtechnik Operating System Engineering (OSE) Querschneidende Belange

Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

Embed Size (px)

Citation preview

Page 1: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

11

BetriebssystemtechnikOperating System Engineering (OSE)

QuerschneidendeBelange

Page 2: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 22

Was ist ein Belang (concern)?

Belange können sehr unterschiedlich sein: „Pi soll auf 20 Dezimalstellen genau berechnet werden“ „Reaktion erfolgt nach spätestens 5 µs“ „detaillierte Fehlerinformationen im Fehlerfall ausgeben“

Belang = Anforderung? Im Prinzip ja. Man verwendet jedoch lieber „Belang“, wenn es darum

geht, was aus einer „Anforderungen“ im Zuge der Entwicklung wird. Anforderungen sind „dokumentierte Belange“

„A concern is an area of interest or focus in a system.“

Glossar bei www.aosd.net

Page 3: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 33

Lösungsraum (Implementierung)

Problemraum (Anforderungen)

Belange auf dem Weg in die Lösung

Belang

Belang

BelangBelang

Entwicklungsprozess(Methoden, z.B. OO)

KlasseKlasse

Page 4: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 44

Lösungsraum (Implementierung)

Problemraum (Anforderungen)

Belange auf dem Weg in die Lösung

Belang

Belang

BelangBelang

Entwicklungsprozess(Methoden, z.B. OO)

KlasseKlasse

Dieser Belang wirkt sich„nur“ auf den Entwicklungs-prozess aus.

Page 5: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 55

Lösungsraum (Implementierung)

Problemraum (Anforderungen)

Belange auf dem Weg in die Lösung

Belang

Belang

BelangBelang

Entwicklungsprozess(Methoden, z.B. OO)

KlasseKlasse

Für die Realisierung dieserBelange findet sich in derImplementierung Code.

Was passiert hier beiAnforderungsänderungen?

Page 6: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 66

Lösungsraum (Implementierung)

Problemraum (Anforderungen)

Belange auf dem Weg in die Lösung

Belang

Belang

BelangBelang

Entwicklungsprozess(Methoden, z.B. OO)

KlasseKlasse

Für die Realisierung dieserBelange findet sich in derImplementierung Code.

Was passiert hier beiAnforderungsänderungen?

Prinzip der Trennung der Belange(separation of concerns - SoC):

„Dinge, die nichts miteinander zu tun haben, sind auch getrennt unterzubringen und zu behandeln.“

Ziel: Jedes Artefakt der Implementierung istein Modell genau eines Belangs

Page 7: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 77

Lösungsraum (Implementierung)

Problemraum (Anforderungen)

Belange auf dem Weg in die Lösung

Belang

Belang

BelangBelang

Entwicklungsprozess(Methoden, z.B. OO)

KlasseKlasse

Dieser Belang lässt sich trotzaller Mühe nicht getrenntimplementieren. Es ist einquer schneidender Belang.

Page 8: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 88

Quer schneidende Belange - Beispiele

„auf einen Fehlerzustand nach Aufruf einer libc Funktion soll mit dem Werfen einer exception reagiert werden“

nach jedem libc Funktionsaufruf muss ein Test erfolgen

quer schneidend in der Instruktionsabfolge (dynamisch)

„garbage collection durch reference counting“

jedes Objekt jeder Klasse muss einen Zähler enthalten

quer schneidend in der Programmstruktur (statisch)

„vor dem Betreten des BS-Kerns durch die Anwendung muss ein lock gesetzt werden.“

alle system calls werden abgesichert

Page 9: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 99

Lösungsraum (Implementierung)

Problemraum (Anforderungen)

Belange auf dem Weg in die Lösung

Belang

Belang

BelangBelang

Entwicklungsprozess(Methoden, z.B. OO)

KlasseKlasse

Dieser Belang lässt sich trotzaller Mühe nicht getrenntimplementieren. Es ist einquer schneidender Belang.

Aber warum?

Quer schneidender Belang(crosscutting concern - CCC):

„Ein quer schneidender Belang ist dadurch charakterisiert, dass er in der

gewählten Modellierungssprache nicht als eigenständige Entität ausdrückbar ist“

Ziel: Auch quer schneidende Belangemodular im Sinne des SoC implementieren

Page 10: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1010

Lösungsraum (AO-Modell)

Problemraum (Anforderungen)

Belange auf dem Weg in die Lösung

Belang

Belang

BelangBelang

Entwicklungsprozess(Methoden, z.B. OO)

KlasseKlasse

Mit Hilfe der aspektorientiertenProgrammierung (AOP) lassensich auch quer schneidendeBelange modular implementieren

Aspekt

Page 11: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1111

OO-Modell

Lösungsraum (AO-Modell)

Die Rolle des Aspektwebers

KlasseKlasse

Aspekt-weber

KlasseKlasse

Aspekt

Page 12: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1212

OO-Modell

Die Rolle des Aspektwebers

Der Aspektcode ...• beschreibt wo und wie die

anderen Komponentenbeeinflusst werden

• kann auf viele Komponentenwirken (quantification)

Lösungsraum (AO-Modell)

KlasseKlasse

Aspekt-weber

KlasseKlasse

Aspekt

Page 13: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1313

OO-Modell

Die Rolle des Aspektwebers

Der Komponentencode ...• wird durch Aspekte beein-

flusst.• muss nicht speziell präpariert

sein (obliviousness)

Lösungsraum (AO-Modell)

KlasseKlasse

Aspekt-weber

KlasseKlasse

Aspekt

Page 14: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1414

OO-Modell

Lösungsraum (AO-Modell)

KlasseKlasse

Aspekt-weber

KlasseKlasse

Aspekt

Die Rolle des Aspektwebers

Der Aspektweber ...• fügt Aspekt- und

Komponentencode anden Verbindungs-punkten (join points)zusammen.

• kann zu unterschiedlichenZeitpunkten weben, z.B.

• Übersetzungszeit• Ladezeit• Laufzeit

Page 15: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1515

Was bringt AOP [1]?

Wiederverwendbarkeit der Komponentencode kann u.U. auch ohne den Aspektcode

(und umgekehrt) genutzt werden

Lesbarkeit Aspekte vermeiden oft Code-Replikation im Komponentencode der Komponentencode realisiert nur die „eigentliche Funktion“

Erweiterbarkeit und Wartbarkeit Ein „gut formulierter“ Aspekt bezieht zukünftige Erweiterungen

„automatisch“ mit ein

Qualität Policies können durch Aspekte oftmals explizit ausgedrückt und

durchgesetzt werden

Konfigurierbarkeit bei Konfigurierung des Aspektcodes kann ein kleiner

Konfigurierungseingriff große Wirkung haben

Page 16: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1616

Aspekte im Domänenentwurf?

Wie könnten auch die quer schneidenden Belange beim Entwurf einer Referenzarchitektur berücksichtigt werden?

Experiment: Belang-Hierarchien Erweiterung der funktionalen Hierarchien bestehen aus Funktionen, Aspekten und deren Beziehungen

Funktionen repräsentieren (später) modularisierbare Belange können logische Abhängigkeiten zu anderen Funktionen haben

Aspekte repräsentieren quer schneidende Belange können auf/in Funktionen und anderen Aspekten wirken können auch logische Abhängigkeiten zu Funktionen haben

Page 17: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1717

Bisher: Funktionale Hierarchie

process scheduler

clock driver

resource manager

memory manager

application

garbage collector

interrupt monitor

1

2

3

4

5

6

Page 18: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1818

kernel API

Jetzt: Belang-Hierarchie

process scheduler

clock driver

resource manager

driversmemory manager

application

garbage collector

interrupt monitor

1

2

3

4

5

6

process synchr....

... interrupt synchr.

Page 19: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 1919

Zusammenfassung

Mit Hilfe von AOP können auch quer schneidende Belange modular implementiert werden

Gerade im Hinblick auf konfigurierbare Software verspricht AOP Vorteile

ein Aspekt(modul) kann leicht weggelassen werden

konfigurierbare Aspekte versprechen eine große Wirkung

Beim Entwurf der Systemarchitektur sollten quer schneidende Belange berücksichtigt werden

Verfeinerung ergibt eine Modulstruktur mit Aspekten

Page 20: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2020

Ausblick

AspectC++ (jetzt)

und in der Übung

Durchführung eines (Sub-)Domänenentwurfs in der Übung

unter Berücksichtigung von AOP

Untersuchung verschiedener Techniken zur Umsetzung von Variabilität in der Implementierung der Komponenten

„Domänenimplementierung“

Page 21: Querschneidende Belange - cs.fau.de · „A concern is an area of interest or focus in a system. ... 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 6 Lösungsraum (Implementierung)

© 2007, 2008 Wolfgang Schröder-Preikschat, Olaf Spinczyk 2121

Literatur

[1] R.E. Filman, T. Elrad, S. Clarke, and M. Aksit (eds).

Aspect-Oriented Software Development.Addison-Wesley, 2005, ISBN 0-321-21976-7.