Modellierung in der Software- und Systementwicklung
Modellierung in der Software- und Systementwicklung
Modellierung in der Software- und Systementwicklung
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Modellierung</strong> <strong>in</strong> <strong>der</strong><br />
System- <strong>und</strong> <strong>Software</strong>entwicklung:<br />
Theorie <strong>und</strong> Praxis<br />
Von den Anfor<strong>der</strong>ungen zur Architektur<br />
Manfred Broy<br />
Lehrstuhl für <strong>Software</strong> & Systems Eng<strong>in</strong>eer<strong>in</strong>g<br />
Technische Universität München<br />
Institut für Informatik<br />
Über die Natur <strong>der</strong> <strong>Software</strong>entwicklung<br />
Zwei extreme Sichten:<br />
• <strong>Software</strong>entwicklung bedeutet die Konstruktion e<strong>in</strong>es formalen,<br />
mathematischen, logischen Modells, das effizient ausführbar ist - ist<br />
also e<strong>in</strong>e ziel- <strong>und</strong> zweckgerichtete Formalisierung<br />
! <strong>Software</strong> ist e<strong>in</strong> mathematisches Objekt, quantifizier-, spezifizier- <strong>und</strong><br />
verifizierbar<br />
• <strong>Software</strong>entwicklung ist Kunst <strong>und</strong> Handwerk; sie basiert auf<br />
Erfahrung, Augenmaß <strong>und</strong> Können<br />
! <strong>Software</strong> def<strong>in</strong>iert sich durch die Ausführung auf e<strong>in</strong>er<br />
Hardware/<strong>Software</strong>plattform, ist von Natur aus unzuverlässig, ad hoc,<br />
wird <strong>in</strong> Versuch <strong>und</strong> Irrtum erstellt<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 2
Was ist e<strong>in</strong> Modell?<br />
E<strong>in</strong> Modell ist<br />
• e<strong>in</strong>e Abstraktion<br />
• bezogen auf e<strong>in</strong>en Betrachtungsgegenstand<br />
• unter e<strong>in</strong>em Gesichtspunkt für e<strong>in</strong>em bestimmten Zweck.<br />
E<strong>in</strong> Modell erfor<strong>der</strong>t e<strong>in</strong>e Präsentationsform durch<br />
• e<strong>in</strong>e Metapher (Gedankenmodell) durch Text<br />
• e<strong>in</strong>e Sprache (Programmiersprache, <strong>Modellierung</strong>ssprache) o<strong>der</strong><br />
• e<strong>in</strong>en Gegenstand.<br />
E<strong>in</strong> Modell erlaubt bestimmte Aussagen über den Betrachtungsgegenstand.<br />
E<strong>in</strong> Modell dient<br />
• <strong>der</strong> Kommunikation zwischen Menschen<br />
• aber auch <strong>der</strong> Automatisierung<br />
Daraus ergibt sich die Qualität e<strong>in</strong>es Modells<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 3<br />
Zwei essentielle Aspekte <strong>der</strong> <strong>Software</strong> Entwicklung<br />
<strong>Software</strong> Entwicklung bedeutet immer:<br />
+ Formalisierung: <strong>Software</strong> ist formales Artefakt<br />
+ <strong>Modellierung</strong>: <strong>Software</strong> bedeutet immer Abstraktion von <strong>der</strong><br />
Wirklichkeit (von dem Betrachtungsgegenstand) <strong>und</strong> damit<br />
Modellbildung<br />
Jedes <strong>Software</strong>system enthält zwangsläufig Modelle <strong>und</strong> zwar<br />
• e<strong>in</strong> Domänenmodell (fachliche Gesichtspunkte)<br />
• e<strong>in</strong> <strong>Modellierung</strong> technischer Gesichtspunkt<br />
Beispiele:<br />
• Die „Blutgruppen <strong>der</strong> Komponenten e<strong>in</strong>er <strong>Software</strong>architektur“ a la<br />
Sie<strong>der</strong>sleben<br />
• Das R3 System von SAP<br />
Interessante Frage: Welche <strong>der</strong> Modelle s<strong>in</strong>d wertvoller?<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 4
Modelle im Code<br />
Im Code von <strong>Software</strong>systemen (= Programme + Daten)<br />
s<strong>in</strong>d<br />
• das Domänenmodell (fachliche Gesichtspunkte)<br />
• die <strong>Modellierung</strong> technischer Gesichtspunkt<br />
„vergraben“ (s<strong>in</strong>d implizit).<br />
• Beim Entwickeln <strong>und</strong> Warten von <strong>Software</strong> müssen diese<br />
Modelle ständige genutzt (<strong>und</strong> gegebenenfalls<br />
wie<strong>der</strong>entdeckt werden)<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 5<br />
E<strong>in</strong> Beispiel: Das Problem <strong>der</strong> absoluten Mehrheit<br />
totale Funktion f: IN ! Partei<br />
Anzahl n " IN, mit n > 0 von Parteigängern.<br />
#(p, k) = | {i " IN: 1 ! i ! k # f(i) = a} |<br />
major(p, k) = 2 * #(p, k) > k<br />
anarchic(k) = $ p " Partei: 2 * #(p, k) " k<br />
A, H : Var Set Nat<br />
Wir wählen als Invariante<br />
A anarchisch<br />
H homogen: $ m " H: f(m) = r<br />
e = |H|<br />
k, e : Var Nat, r : Var Partei<br />
k, r, e := 2, f(1), 1;<br />
do k ! n then<br />
if f(k) = r then k, e := k+1, e+1<br />
[] f(k) % r # e = 0 then k, r, e := k+1, f(k), e+1<br />
[] f(k) % r # e > 0 then k, e := k+1, e–1<br />
H, A := {1}, Ø<br />
H := H ' {k}<br />
H := {k}<br />
H, A := H\{any(H)}, A'{k, any(H)}<br />
fi od<br />
{¬anarchic(n) & major(r, n)}<br />
A anarchisch # H homogen # A'H = {1, ... n}<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 6
Und noch e<strong>in</strong> Beispiel<br />
SPEC SEQ =<br />
{<br />
based_on BOOL,<br />
sort Seq (,<br />
‹› : Seq (,<br />
‹_› : ( ! Seq (, Mixfix<br />
_°_ : Seq (, Seq ( ! Seq (, Infix<br />
ises : Seq ( ! Bool,<br />
first, last : Seq ( ! (,<br />
head, rest : Seq ( ! Seq (,<br />
Seq ( generated_by ‹›, ‹_›, _°_,<br />
ises(‹›) = true,<br />
ises(‹a›) = false,<br />
ises(x°y) = and(ises(x), ises(y)) ,<br />
x°‹› = x = ‹›°x,<br />
(x°y)°z = x°(y°z) ,<br />
first(‹a›°x) = a,<br />
last(x°‹a›) = a,<br />
head(x°‹a›) = x,<br />
rest(‹a›°x) = x<br />
}<br />
Hier haben wir alles perfekt: Klare Modelvorstellung, Syntax, logische Theorie<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 7<br />
E<strong>in</strong> formales Modell umfaßt:<br />
• Syntax<br />
! Formale Sprache<br />
! Graphik<br />
Formale Modelle<br />
• Semantik - Festlegung <strong>der</strong> Bedeutung<br />
! Informell<br />
! Formal<br />
• Theorie<br />
• Denotationell<br />
• Axiomatisch<br />
• Operationell<br />
! Theoreme<br />
! Umformungsregeln<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 8
“Formal Methoden” <strong>und</strong> “<strong>Software</strong> Eng<strong>in</strong>eer<strong>in</strong>g”<br />
• Formal Methoden werden häufig als <strong>in</strong>adäquat, zu teuer,<br />
unrealistisch, nicht auf grosse Systeme unwendbar<br />
beurteilt<br />
• Praktische <strong>Software</strong> Entwicklung wird often als “ad hoc”,<br />
“immature”, uncontrollable, <strong>und</strong> “not an eng<strong>in</strong>eer<strong>in</strong>g<br />
discipl<strong>in</strong>e” bewertet<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 9<br />
Digitale <strong>Modellierung</strong><br />
Die Modelle <strong>der</strong> Informatik s<strong>in</strong>d digital!<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 10
Essentielle Beiträge <strong>der</strong> Modellorientierung<br />
• <strong>Software</strong> ist unanschaulich („immateriell“), bestimmt komplexe<br />
dynamische Vorgänge<br />
! <strong>Software</strong> wird durch Modelle begreifbar<br />
• Die Ausführungsmodelle unserer Masch<strong>in</strong>en s<strong>in</strong>d <strong>und</strong>urchsichtig<br />
! <strong>Software</strong> wird von den komplexen („low level“) Ausführungsmodellen<br />
unabhängig<br />
• <strong>Software</strong> ist umfangreich <strong>und</strong> unübersichtlich<br />
! Modelle erlauben gezielte Darstellungen von Eigenschaften<br />
! Modelle geben Übersicht<br />
• <strong>Software</strong> braucht unterschiedliche Darstellung verschiedener<br />
Aspekte<br />
! Modelle können auf Aspekte zugeschnitten werden -<br />
Sichtenmodellierung<br />
• <strong>Software</strong> braucht präzise Analysen<br />
! Modelle können auf geeignete Theorien abgestützt werden<br />
! Modelle erlauben tiefe Automatisierung/Werkzeugunterstützung<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 11<br />
<strong>Modellierung</strong> <strong>in</strong> software<strong>in</strong>tensiver Systems<br />
Was ist e<strong>in</strong> Modell:<br />
• E<strong>in</strong>e vere<strong>in</strong>fachte („abstrakte“) Wie<strong>der</strong>gabe e<strong>in</strong>es Produkts<br />
(„Systems“) <strong>in</strong> e<strong>in</strong>er bewährten Form (mit wohlverstanden Mitteln)<br />
für e<strong>in</strong>en bestimmten Zweck<br />
Was ist e<strong>in</strong>e Beschreibung e<strong>in</strong>es Modells:<br />
• Text, Graphik, Tabellen die bestimmte Eigenschaften e<strong>in</strong>es Produkts<br />
(„Systems“) beschreiben<br />
Wichtige Ziele:<br />
• Verständlichkeit<br />
• Präzision<br />
Was ist e<strong>in</strong>e Anfor<strong>der</strong>ung<br />
• Gefor<strong>der</strong>te Eigenschaft für e<strong>in</strong> System<br />
Was ist e<strong>in</strong>e (Anfor<strong>der</strong>ungs-)Spezifikation:<br />
• Die genaue <strong>und</strong> vollständige Festlegung aller Eigenschaften e<strong>in</strong>es<br />
Produkts („Systems“)<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 12
Vom Nutzen <strong>der</strong> Modelle<br />
• E<strong>in</strong> Modell erlaubt e<strong>in</strong> konkrete Darstellung bestimmter<br />
Aspekte o<strong>der</strong> e<strong>in</strong>er Perspektive e<strong>in</strong>es Systems<br />
! Erfassung <strong>und</strong> Erkenntnis<br />
! Dokumentation<br />
! Formalisierung<br />
! Analyse<br />
! Weiterverwendung<br />
• Modelltransformation<br />
• Codeerzeugung<br />
• Produktl<strong>in</strong>ien<br />
• Modelle<br />
! strukturieren die Sichten auf e<strong>in</strong> System<br />
! erfassen Anwen<strong>der</strong>- <strong>und</strong> Entwicklerwissen<br />
! geben e<strong>in</strong>e Richtschnur für den Entwicklungsprozess<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 13<br />
Beobachtungen zum Modelle<strong>in</strong>satz heute<br />
• Modellansätze <strong>in</strong> Anfor<strong>der</strong>ungen nur wenig vertreten<br />
• Heute <strong>in</strong> <strong>der</strong> Praxis oft nur lokale Optimierungen<br />
! E<strong>in</strong>zelaspekte werden isoliert betrachtet <strong>und</strong> verbessert<br />
(Beispiel: Standardisiertes Lastenheft ohne Betrachtung von Test<br />
o<strong>der</strong> Architekturimplikationen)<br />
• Modelle werden nur halbformal erfasst -<br />
<strong>Modellierung</strong>ssprachen s<strong>in</strong>d nicht formalisiert<br />
! Tiefergehen<strong>der</strong> Nutzen ist nicht abgreifbar (Beispiel:<br />
Konsistenzüberprüfungen, Generierung von Tests aus Modellen)<br />
• Standardisierung <strong>in</strong> <strong>der</strong> Kommunikation zwischen<br />
Unternehmen noch unzureichend<br />
! Modelle können nicht ausgetauscht werden, bzw. nicht als<br />
Referenz für Schnittstellen verwendet werden<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 14
Modellbasierung ist mehr als Dokumentation<br />
Modellbasierung unterstützt (im Idealfall):<br />
• Unmissverständliche Beschreibung<br />
• Wohldef<strong>in</strong>ierte Sichten <strong>und</strong> Ebenen <strong>der</strong> Abstraktion<br />
• Masch<strong>in</strong>enverarbeitbare Beschreibungen<br />
• Rechnergestützte Analyse<br />
! Konsistenzsicherung<br />
• Automatische Extraktion von Information für<br />
Nachfolgeschritte<br />
• Frühe Qualitätssicherung<br />
! Verifikation<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 15<br />
Informelle<br />
Anfor<strong>der</strong>ungen<br />
Modellbasierung <strong>in</strong> <strong>der</strong> Entwicklung<br />
Formalisieren<br />
S<br />
Requiremerments<br />
Eng<strong>in</strong>eer<strong>in</strong>g<br />
Validierung<br />
Formalisierte<br />
Systemanfor<strong>der</strong>ungen<br />
Systemabnahme<br />
Systemverifikation<br />
R & S<br />
Integration<br />
R = R1)R2)R3)R4<br />
R<br />
Ausliefern<br />
R1<br />
R2<br />
R4 R3<br />
Architektur<br />
Architekturdesign<br />
Architekturverifikation<br />
S = S1)S2)S3)S4<br />
S1<br />
S4<br />
S2<br />
S3<br />
Realisieren<br />
R1<br />
Integrieren<br />
R2<br />
R4 R3<br />
Komponentenimplementierung<br />
-verifikation<br />
R1 & S1<br />
R2 & S2<br />
R3 & S3<br />
R3 & S4<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 16
Theorie <strong>der</strong> <strong>Modellierung</strong> von Systemen<br />
• Schnittstellensicht - Schnittstellenspezifikation<br />
• Hierarchischen Architekturen durch Komposition/Dekomposition<br />
• Realisierung durch Zustandsmasch<strong>in</strong>en<br />
• Dekomposition des Systems <strong>in</strong> gesteuerte <strong>und</strong> steuernde<br />
Teilsysteme<br />
• Modularität<br />
• Mult-Sichtenmodell<br />
• Sichten <strong>in</strong>tegrieren<br />
• Systemmodelle vervollständigen<br />
• Verfe<strong>in</strong>erung<br />
• Wechsel <strong>der</strong> Abstraktionsebene<br />
• Schichtenansatz<br />
• Abbildung auf Logik<br />
• Gr<strong>und</strong>lage für Eng<strong>in</strong>eer<strong>in</strong>g<br />
• E<strong>in</strong>-/Ausgabe, Ursache/Wirkungsbeziehung, Kausalität<br />
• Nichtdeterm<strong>in</strong>ismus/Unterspezifikation<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 17<br />
Modelle anschaulich: Beispiel: Zustandsübergangsdiagramm<br />
x:Data<br />
Sen<strong>der</strong><br />
bs: Bit<br />
d: Data<br />
c1:M<br />
c4:Bit<br />
x:e / - {d := e}<br />
- / c1:m(d,bs)<br />
{bs := true}<br />
Input<br />
Transmission<br />
- / -<br />
{bs = ¬t} c4:t/-<br />
Wait<strong>in</strong>g<br />
{bs = t} c4:t / - {bs := ¬bs}<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 18
Communication Network<br />
Weitere Systemsichten<br />
• Prozess/Ablauf:<br />
Medium<br />
Darstellung des Verhaltens e<strong>in</strong>es Systems durch Mengen von<br />
Ereignissen/Aktionenen <strong>und</strong> ihre zeitlichen/kausalen Abhängigkeiten<br />
Beispiel: Interaktionsdiagramme, MSCs, Occurrence Network Manager Netze,<br />
Geschäftsprozessdiagramme<br />
• Architektur:<br />
Menge von Komponentenidentifikatoren, belegt mit Komponenten mit<br />
verträglichen syntaktischen Schnittstellen<br />
Komponenten können dargestellt werden durch:<br />
! Schnittstellenverhalten,<br />
! Zustandsmasch<strong>in</strong>en,<br />
! Architekturen,<br />
Sen<strong>der</strong><br />
! Prozesse.<br />
Wir erhalten e<strong>in</strong>e hierarchische Systemsicht<br />
Medium<br />
Receiver<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 19<br />
Theorie <strong>der</strong> <strong>Modellierung</strong> verteilter Systeme<br />
• Schnittstellenabstraktion: Jede Zustandsmasch<strong>in</strong>e, je<strong>der</strong><br />
Prozess <strong>und</strong> jede Architektur kann zu e<strong>in</strong>em<br />
Schnittstellenverhalten abstrahiert werden<br />
• Komposition:<br />
! Auf je<strong>der</strong> Systemsicht (Schnittstelle, Zustandsmasch<strong>in</strong>e,<br />
Architektur, Prozess) ist e<strong>in</strong> Kompositionsoperator gegeben<br />
! Die Kompositionsoperatoren s<strong>in</strong>d verträglich<br />
• Verfe<strong>in</strong>erung:<br />
! Auf je<strong>der</strong> Systemsicht (Schnittstelle, Zustandsmasch<strong>in</strong>e,<br />
Architektur, Prozess) ist e<strong>in</strong> Kompositionsoperator gegeben<br />
! Die Verfe<strong>in</strong>erungsoperationen s<strong>in</strong>d verträglich<br />
! Verfe<strong>in</strong>erung <strong>und</strong> Komposition s<strong>in</strong>d verträglich<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 20
abstraction<br />
abstraction<br />
abstraction<br />
Theorie <strong>der</strong> <strong>Modellierung</strong>: Meta Model<br />
Composition<br />
Ref<strong>in</strong>ement<br />
Time<br />
Feature model<br />
Interface model: components<br />
Input and output<br />
uses<br />
Implementation<br />
uses<br />
Composition<br />
Ref<strong>in</strong>ement<br />
Time<br />
Process transition model:<br />
Events, actions and causal relations<br />
Implementation<br />
state transition model:<br />
states and state mach<strong>in</strong>es<br />
uses<br />
Data model:<br />
Types/sorts and characteristic functions<br />
Composition<br />
Ref<strong>in</strong>ement<br />
Time<br />
Is sub-feature<br />
Hierarchy<br />
and<br />
Architektur<br />
Composition<br />
Ref<strong>in</strong>ement<br />
Time<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 21<br />
Herausfor<strong>der</strong>ung: <strong>Modellierung</strong> Architektur<br />
• System Dekomposition/Komposition<br />
• Hierarchie<br />
• Komponenten<br />
! Rollen<br />
! Interaction<br />
! Schnittstellenverhalten<br />
• Nichtfunktionale Aspekte<br />
! Performanz<br />
! Zuverlässigkeit<br />
• Architekturvalidierung <strong>und</strong> -bewertung<br />
• Aspekt-orientierte Sichten auf Architekturen<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 22
Kritisch: Schnittstellenmodellierung <strong>und</strong> -spezifikation<br />
Unsere heutigen praktischen Methoden zur <strong>Modellierung</strong><br />
von Schnittstellen s<strong>in</strong>d ungenügend:<br />
• Nutzungsschnittstellen<br />
! Nicht nur Oberfläche son<strong>der</strong>n auch Verhalten<br />
• Komponentenschnittstellen<br />
! Nicht nur syntaktische Schnittstellen, son<strong>der</strong>n auch Verhalten<br />
Schlüsselfrage: <strong>Modellierung</strong> <strong>der</strong> Interaktion<br />
• Sequenzdiagramme s<strong>in</strong>d oft nicht ausdrucksstark genug<br />
• Zustandsmasch<strong>in</strong>en s<strong>in</strong>d oft zu implementierungslastig<br />
• Problem im OO:<br />
! Methodenaufrufe zu unflexibles Konzept!<br />
! Ke<strong>in</strong> brauchbarer Komponentenbegriff<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 23<br />
Durchgänge <strong>Modellierung</strong> <strong>und</strong> QS<br />
Aufgaben <strong>Modellierung</strong><br />
• <strong>Modellierung</strong> Anfor<strong>der</strong>ungen<br />
! Featurehierarchie<br />
! Featuremodelle<br />
! Abhängigkeiten<br />
• Architektur<br />
! Komponentenlayout<br />
! Interaktionsszenarien<br />
! Schnittstellen<br />
• Module<br />
! Schnittstellen<br />
Aufgaben QS<br />
• Validierung<br />
• Virtuelle Architekturverifikation<br />
• Modulverifikation<br />
! Review<br />
! Inspektion<br />
! Test<br />
• Integration<br />
! Review<br />
! Inspektion<br />
! Test<br />
• <strong>Software</strong>/System<strong>in</strong>tegration<br />
• Systemtest<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 24
<strong>Modellierung</strong>stechniken <strong>und</strong> ihre Verwendung<br />
<strong>Modellierung</strong>stechniken<br />
• Datensicht<br />
! Abstrakte Datentypen<br />
! E/R Diagramme<br />
! Klassendiagramme<br />
• Schnittstellensicht<br />
! Use Cases <strong>und</strong> Featurebäume<br />
! Schnittstellenspezifikationen<br />
• Zustandssicht<br />
! Zustandsmasch<strong>in</strong>en<br />
• Ablaufsicht<br />
! Interaktionsdiagramme<br />
! Prozessdiagramme<br />
! Ablaufdiagramme<br />
• Struktursicht<br />
! Komponentenstrukturdiagramme<br />
! Klassendiagramme<br />
Phasen<br />
• Analyse <strong>und</strong><br />
Anfor<strong>der</strong>ungsspezifiaktion<br />
• Design: Architekturentwurf<br />
• Implementierung<br />
• Modultest<br />
• Integration<br />
• Integrationstest<br />
• Systemtest<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 25<br />
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 26
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 27<br />
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 28
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
• Gesamtarchitektur<br />
K<strong>und</strong>enfunktionsordnungsstrukt<br />
ur<br />
Logische Architektur<br />
Technische Architektur<br />
Konzeptionelle Architektur<br />
Tasks<br />
T1<br />
T2<br />
T3<br />
T4<br />
...<br />
<strong>Software</strong> Architektur<br />
Deployme<br />
nt<br />
T1<br />
...<br />
T2<br />
...<br />
T3<br />
T4<br />
...<br />
Hardware Architektur<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 29<br />
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
• Gesamtarchitektur<br />
• Systemmodelle<br />
abstractio<br />
n<br />
abstraction<br />
Compositi<br />
on<br />
Ref<strong>in</strong>eme<br />
ntTime<br />
Feature model<br />
Schnittstellenmodel: components<br />
Input <strong>und</strong> output<br />
abstraction<br />
uses<br />
Compositi<br />
on<br />
Ref<strong>in</strong>eme<br />
ntTime<br />
Implementati<br />
on<br />
uses<br />
Process transition model:<br />
Events, actions <strong>und</strong> causal relations<br />
Is subfeature<br />
Compositi<br />
on<br />
Ref<strong>in</strong>eme<br />
ntTime<br />
Implementati<br />
on<br />
zustand transition model:<br />
zustands <strong>und</strong> zustand mach<strong>in</strong>es<br />
uses<br />
Hierarchy<br />
<strong>und</strong><br />
Architektur<br />
Compositi<br />
on<br />
Ref<strong>in</strong>eme<br />
ntTime<br />
Data model:<br />
Types/sorts <strong>und</strong> characteristic funktions<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 30
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
• Gesamtarchitektur<br />
• Systemmodelle<br />
• Vorgehensmodelle<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 31<br />
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
• Gesamtarchitektur<br />
• Systemmodelle<br />
• Vorgehensmodelle<br />
• Prozessmodelle<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 32
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
• Gesamtarchitektur<br />
• Systemmodelle<br />
• Vorgehensmodelle<br />
• Prozessmodelle<br />
• Qualitätsmodelle<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 33<br />
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
• Gesamtarchitektur<br />
• Systemmodelle<br />
• Vorgehensmodelle<br />
• Prozessmodelle<br />
• Qualitätsmodelle<br />
• Meta-Modelle<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 34
Die Fülle <strong>der</strong> <strong>Modellierung</strong>sthemen<br />
• Datenmodelle<br />
• Modelle von Schichtenarchitekturen<br />
• Dienstmodellierung<br />
• Gesamtarchitektur<br />
• Systemmodelle<br />
• Vorgehensmodelle<br />
• Prozessmodelle<br />
• Qualitätsmodelle<br />
• Meta-Modelle<br />
K<strong>und</strong>enfunktionsordnungsst<br />
ruktur<br />
Logische Architektur<br />
Konzeptionelle Architektur<br />
Technische Architektur<br />
Tasks<br />
<strong>Software</strong> Architektur<br />
T1<br />
T2<br />
T3<br />
Deploy<br />
T4<br />
ment<br />
...<br />
T1<br />
...<br />
T2<br />
...<br />
Hardware Architektur<br />
T3<br />
T4<br />
...<br />
Abstraktion<br />
Abstraktion<br />
Abstraktion<br />
Composition<br />
Ref<strong>in</strong>ement<br />
Time<br />
Composition<br />
Hierarchy<br />
Ref<strong>in</strong>ement<br />
<strong>und</strong><br />
Feature model<br />
Time<br />
Architektur<br />
Is sub-feature<br />
Schnittstellenmodel: components<br />
Input <strong>und</strong> output<br />
Composition<br />
Ref<strong>in</strong>ement<br />
Implementation<br />
Time<br />
uses<br />
Process transition model:<br />
Events, actions <strong>und</strong> causal relations<br />
Composition<br />
Ref<strong>in</strong>ement<br />
Implementation<br />
Time<br />
uses<br />
zustand transition model:<br />
zustands <strong>und</strong> zustand mach<strong>in</strong>es<br />
uses<br />
Data model:<br />
Types/sorts <strong>und</strong> characteristic funktions<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 35<br />
Universelle vs. domänenspezifische <strong>Modellierung</strong>sansätze<br />
Universelle <strong>Modellierung</strong>:<br />
• „One Size fits all“: E<strong>in</strong> universeller <strong>Modellierung</strong>sansatz<br />
(„<strong>Modellierung</strong>ssprache“)<br />
! <strong>Software</strong><br />
! Hardware<br />
! Anwendungen<br />
! Mechatronik<br />
Domänenspezifische <strong>Modellierung</strong>:<br />
• Auf Domänen (Anwendungsgebiete) zugeschnittene<br />
<strong>Modellierung</strong>sansätze („<strong>Modellierung</strong>ssprachen“)<br />
! Telekommunikation<br />
! Adaptive Systeme<br />
! Mobile Systeme<br />
! Geschäftsprozesse<br />
! Workflow<br />
! Nutzerschnittstellen<br />
! ...<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 36
Zusammenfassung: <strong>Modellierung</strong> von <strong>Software</strong> <strong>und</strong> QS<br />
• Modellorientierung <strong>und</strong> QS ergänzen sich ideal<br />
! Formalisierung als Voraussetzung für QS<br />
• Validierung<br />
• Verifikation<br />
• Test<br />
! Mehrwert bei vielfältiger Nutzung <strong>der</strong> Modelle<br />
• Durchgängigkeit wird heute noch nicht erreicht<br />
! Modellansätze nicht formal genug<br />
! QS zu wenig automatisiert <strong>und</strong> <strong>in</strong> Werkzeuge <strong>in</strong>tegriert<br />
! Modelle werden nicht konsequent genutzt<br />
! Übergang zwischen Modellen nicht verstanden<br />
! Integration von Modellsichten unzureichend<br />
Festkolloquium, Hans-Dieter Ehrich, Februar 2007<br />
Manfred Broy 37