download - SPES 2020
download - SPES 2020
download - SPES 2020
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Umfassendes Architekturmodell –<br />
Durchgängige Modellierung verschiedener<br />
Aspekte eines Systems<br />
Alexander Harhurin, Judith Thyssen<br />
12.01.2010
Agenda<br />
• Einführung: Architekturmodell<br />
• Nutzungsperspektive<br />
• Logische Perspektive<br />
• Technische Perspektive<br />
• Geometrische Perspektive<br />
• Übergänge zwischen Perspektiven<br />
• Zusammenfassung<br />
2
Einführung: Architekturmodell
High<br />
Abstraction<br />
Low<br />
Abstraction<br />
Von isolierten Lösungen zu einem<br />
durchgängigen Einsatz von Modellen<br />
Situation Today Ideal Situation<br />
Domain<br />
agnostic<br />
Domain<br />
appropriate<br />
Our mission<br />
High<br />
Abstraction<br />
Low<br />
Abstraction<br />
Domain<br />
agnostic<br />
Systematik an Abstrakationsebenen/Architekturmodell als<br />
Leitfaden für einen durchgängigen Entwicklungsprozess<br />
Domain<br />
appropriate<br />
4
Abstraktionsebenen-Systematik –<br />
Zielsetzung<br />
• Zielsetzung:<br />
– Bereitstellung einer grundlegende Systematik<br />
für einen durchgängigen Entwicklungsprozess, die es erlaubt<br />
• unterschiedliche Aspekte des zu entwickelnde System klar voneinander<br />
getrennt zu modellieren und<br />
• organisatorische Strukturen (Zulieferer/Integratoren-Beziehungen)<br />
abzubilden.<br />
• Geplantes Vorgehen:<br />
1. Bereitstellung & Diskussion einer grundlegenden Systematik <br />
2. Bereitstellung von fachliche Metamodelle, d.h. domänenübergreifende<br />
Kern-Modellierungskonzepte für einzelnen Ebenen<br />
3. Exemplarische domänen-spezifische Ausprägungen<br />
4. Prototypische Umsetzung in AF3<br />
5
Software Development Perspectives<br />
Akademisches Vorgehen:<br />
User Functionality Logical Architectuer Technical Architecture<br />
Refinement Deployment<br />
Low details High details<br />
6
Probleme<br />
• Ein umfangreiches System (Auto, Flugzeug) aus der Black-Box-<br />
Sicht zu beschreiben ist unmöglich<br />
• Man geht in der Praxis nicht strikt Top-Down vor:<br />
– Bestimmte Teilsysteme existieren bereits<br />
– HW-Topologie ist oft vorgegeben<br />
– Ein größeres System wird zunächst nicht formal sondern „aus<br />
Erfahrung“ in Teilsysteme unterteilt (Flugzeug besteht aus<br />
Flügen, Cockpit, Kabine, etc.)<br />
<br />
Lösungsvorschlag:<br />
Zweidimensionale Systembeschreibung<br />
7
Abstraktionsebenen-Systematik<br />
8
Zwei Dimensionen der Matrix<br />
• 1. Dimension: SW-Development Perspectives<br />
– Getrennte Modellierung unterschiedlicher Aspekte des Systems<br />
Komplexitätsreduktion<br />
– Von abstrakten Funktionshierarchien bis zum deployten System inkl.<br />
Geometrischer Anordnung<br />
• 2. Dimension: Decomposition Layers<br />
– Schrittweise Dekomposition und Modellierung des Gesamtsystems<br />
– Erlaubt Abbildung organisatorischer Strukturen (arbeitsteiligen Prozess<br />
mit Zulieferen/Integrator-Beziehung)<br />
9
Dekompositionsebenen<br />
Merkmale:<br />
• Schrittweise Dekomposition des Gesamtsystems in Subsysteme;<br />
• Relativer Systembegriff:<br />
– Systemgrenze wechselt bei Übergang zwischen Dekompositionsebenen<br />
Gesamt-<br />
fahrzeug<br />
Sensorik Steuerung Aktuatoren<br />
– Subsystem bei Integrator = System bei Zulieferer<br />
• Dekompositonsebenen nicht a priori vorgegeben, sondern abhängig von Domäne,<br />
Unternehmen, konkreten Entwicklungsgegenstand<br />
Ziele:<br />
• Unterstützt arbeitsteiligen Prozess, bei dem Teilsysteme von Zulieferern entwickelt<br />
werden;<br />
• Ermöglicht Zickzack-Vorgehen:<br />
– Anforderungen an das ganze System<br />
– Erste logische Architektur<br />
– Anforderungen an einzelne Teilsysteme<br />
– Zerlegung der Teilsysteme in Komponenten<br />
10
Dekompositionsebenen<br />
11
Nutzungsperspektive (Funktionale<br />
Architektur)
Ziele<br />
• Modellierung des Systemverhaltens aus Sicht der Nutzer des<br />
Systems (Blackbox-Sicht)<br />
– Nutzer: menschliche Nutzer, umliegende Systeme, Sensorik/Aktorik,…<br />
• Definition der Systemgrenze<br />
– syntaktisches Interface,<br />
– abstrakter Informationsaustausch<br />
• Hierarchische Strukturierung der Gesamtfunktionalität aus Sicht der<br />
System-Nutzer<br />
• Formalisierung der funktionalen Anforderungen<br />
– Bindeglied zwischen RE und Design<br />
– Konsolidierung der funktionalen Anforderungen durch formale<br />
Spezifikation und Analyse<br />
– Erkennen und Modellieren von funktionalen Abhängigkeiten (Feature<br />
Interaction)<br />
13
Inhalt<br />
• Funktionale Spezifikation ist eine Menge einzelner Szenarien;<br />
• Ein Szenario ist ein zeitlicher Ablauf von Ein- und<br />
Ausgabeereignissen;<br />
• Black-Box-Sicht: Szenarien sind an der Systemgrenze sichtbar;<br />
• Adressierte Fragenstellungen:<br />
– Validierung: Entsprechen Szenarien den Anforderungen?<br />
– Konsistenzprüfung: Gibt es Widersprüche in Anforderungen?<br />
– Feature Interaction: Alle Wechselwirkungen berücksichtigt?<br />
Umgebung System Umgebung<br />
14
Funktionshierarchie<br />
Funktionshierarchie besteht aus<br />
• Atomaren Funktionen<br />
• Kombinierten Funktionen<br />
• Querbeziehungen<br />
Querbeziehung<br />
A<br />
B C<br />
D E F G<br />
H K L M<br />
Kombinierte<br />
Funktion<br />
Atomare<br />
Funktion<br />
15
Funktion<br />
• Formalisiert ein Szenario;<br />
• Gegeben durch<br />
– eine syntaktische Schnittstelle und<br />
– eine (partielle) Abbildung von Eingaben auf Ausgaben<br />
m i1,1 m i1,2 m i1,3 … i1<br />
m i2,1 m i2,2 m i2,3 …<br />
m i3,1 m i3,2 m i3,3 …<br />
i 2<br />
i 3<br />
Funktion<br />
o 1<br />
o 2<br />
m o1,1 m o1,2 m o1,3 …<br />
m o2,1 m o2,2 m o2,3 …<br />
16
Funktion (2)<br />
• Mögliche Notationstechniken:<br />
cSpeed?x/mInstr!<br />
– I/O Automaten;<br />
– I/O Tabellen;<br />
– Sequenzdiagramme<br />
idle active<br />
cDistance?z/mInstr!<br />
cSpeed?x/mInstr!p(y,z)<br />
rDistance?y/mInstr!p(y,z)<br />
Env<br />
Sys<br />
17
Funktionskombination<br />
• Parallele Komposition aller atomaren Funktionen;<br />
• Unter Berücksichtigung von Querbeziehungen.<br />
• Querbeziehungen sind domänenspezifisch;<br />
• Beispiele:<br />
– Priorität: Ein Interaktionsmuster hat Vorrang vor dem anderen;<br />
– Reihenfolge: Ein Interaktionsmuster muss vor dem anderen<br />
ausgeführt werden;<br />
– XOR: Entweder eine oder die andere Funktion<br />
– etc.<br />
18
Metamodell<br />
19
Beispiel:ACC<br />
Tempomat<br />
Tempomat/G<br />
Tempomat/K<br />
ACCsteuerung<br />
Abstand/G<br />
Abstand<br />
Abstandsregelung<br />
Abstand/K<br />
Stop&Go<br />
20
ACC: Funktionshierarchie<br />
21
ACC: Funktionskombination<br />
22
ACC: Funktionsspezifikation<br />
23
Vorteile einer formalen Spezifikation<br />
• Anforderungsmodell ist simulierbar validierbar;<br />
• Automatisch analysierbar konsistent (widerspruchfrei);<br />
• Generierung von Testfällen;<br />
• Formale Basis für den Übergang zum Design:<br />
– Mapping;<br />
– Traceability;<br />
– Verifikation;<br />
• Formal aber handhabbar wegen Abstraktion von allen technischen<br />
Details.<br />
24
Logische Perspektive
Inhalt<br />
• Übergang von der Problemdomäne zu der Lösungsdomäne<br />
• White-Box-Sicht: die interne Struktur des Systems<br />
• High-Level-Design: erster Schritt Richtung der Implementierung<br />
• Struktur der Funktionalität unter Berücksichtigung von:<br />
– Qualitätsmerkmalen (wie z.B. Modifizierbarkeit, Verfügbarkeit,<br />
Sicherheit, Testbarkeit, etc.)<br />
– Vorhandene HW-Topologie<br />
– Organisationsstruktur<br />
– Erfahrung<br />
– etc.<br />
26
Netzwerk von Komponenten<br />
Communication Network<br />
• Besteht aus einer Familie von Komponenten, die über Kanäle<br />
untereinander und mit ihrer Umgebung verbunden sind.<br />
• Gegeben durch<br />
Sender Medium<br />
Receiver<br />
Medium<br />
Network Manager<br />
– eine syntaktische Schnittstelle und<br />
– eine totale Abbildung von Eingaben auf Ausgaben<br />
• Meist etablierte Notationstechnik:<br />
Komponentendiagramme und I/O Automaten<br />
27
Modellierungstool AutoFocus<br />
Struktur<br />
Verhalten<br />
Daten<br />
… weitere Informationen unter http://af3.in.tum.de<br />
28
ACC<br />
29
ACC (2)<br />
30
Component Hierarchy of ACC<br />
ACC<br />
ACC Core<br />
ConstantSpeed<br />
ACC System<br />
FollowUp<br />
PCS<br />
ACC On Off Condition<br />
ACC Core Condition<br />
DesiredSpeed SpeedControl DesiredDistance DistanceControl<br />
31
Beitrag zur durchgängigen Entwicklung<br />
• Wiederverwendung:<br />
– Teilsysteme Bibliotheken<br />
– Bibliotheken Teilsysteme<br />
• Restrukturierung gemäß Qualitätsmerkmalen<br />
• Traceability: Funktionale Anforderungen – Funktionen – logische<br />
Komponenten<br />
• Code-Generierung<br />
• Deployment: logische Komponenten auf ECUs.<br />
32
Technische Perspektive
Technische Architektur<br />
• Beschreibung der Zielplattform, d.h. der HW-Topologie und der<br />
Hauptcharakteristika der HW-Elemente<br />
• Beschreibung der Sensorik, Aktorik und HMI<br />
• Überprüfung von Echtzeiteigenschaften unter Berücksichtigung der<br />
Zielplattform<br />
34
ACC<br />
35
ACC: Deployment<br />
36
Generated Code<br />
37
Geometrische Perspektive
Geometrische Perspektive<br />
• Geometrische Anordnung der HW-Komponenten<br />
• Überprüfung geometrischer Eigenschaften, z.B. sind redundant<br />
ausgelegte Funktionen mindestens x Meter voneinander entfernt<br />
• Für ZP-AP 1 steht die geometrische Sicht nicht im Vordergrund<br />
39
Übergange zwischen Perspektiven
Zwei Dimensionen der Beschreibung<br />
41
Übergänge<br />
• Nutzungsperspektive Logische Perspektive<br />
– N:1-Abbildung ist einfach<br />
– N:M-Abbildung: laufende Arbeit<br />
• Logische Perspektive Technische Perspektive<br />
– Deployment<br />
• Component Deployment (N:1-Abbildung der atomaren Komponenten)<br />
• Port Deployment<br />
– Code-Generierung<br />
– Technische Architektur ist Architekturtreiber der Logischen Architektur<br />
• Technische Perspektive Geometrische Perspektive:<br />
– Deployment<br />
– Geometrische Architektur ist ein Architekturtreiber der Logischen<br />
Architektur.<br />
42
Zickzack-Vorgehen<br />
43
Offene Fragen<br />
• Wie werden Funktionen auf Komponenten abgebildet?<br />
– n:1<br />
– n:m<br />
• Wie werden Querbeziehungen abgebildet?<br />
44
Analyse der Modelle
Formal Verification – Model Checking<br />
• Properties for AutoFocus model<br />
• Export to SMV Model Checker<br />
46
Formal Specification – Example Properties<br />
• OnOffArbiter<br />
– Termination on brake (116)<br />
– No non-zero acceleration when inactive:<br />
• CoreArbiter<br />
– Constant-Speed-Control Condition (122)<br />
Absence of the check<br />
whether driver brakes<br />
in a transition<br />
47
ACC: Model Checking<br />
Results for the logical architecture of the ACC<br />
– Approximately 20 properties formalised<br />
– Three properties falsified and corresponding faults found<br />
– All other properties proven correct<br />
48
Test Case Generation and Execution<br />
Requirements<br />
build<br />
model of SUT<br />
test case<br />
specification<br />
Test Case<br />
Generator<br />
differences in behavior?<br />
abstract<br />
test cases<br />
Test Driver<br />
SUT<br />
executable<br />
test cases<br />
apply to<br />
49
Tests from the Test Model<br />
• Real functional tests<br />
faults which already reside in the<br />
implementation model<br />
different views on requirements<br />
• Test model independently developed<br />
• More abstract<br />
Implementation<br />
Model<br />
generate<br />
manual<br />
Code<br />
dv = vs – v;<br />
if (dv < 0) {<br />
decr();<br />
...<br />
Requirements<br />
manual<br />
Test Model<br />
test<br />
generate<br />
Test Cases<br />
Env SUT<br />
50
Random Tests with Usage Profile<br />
• New enhancement to our AutoFOCUS Test Generation Tool<br />
• Individual Settings for every input port<br />
– probability of NoVal<br />
– probability distribution of values<br />
– probability of value change<br />
51
ACC: Testing Results<br />
Generated 120 test cases each from system and test model:<br />
– Generation takes only a few seconds<br />
– in approx. 80% of test steps no error could be identified<br />
– 3 differences between test model and system model identified (potential faults)<br />
– 1 issue in test driver detected<br />
– Most test cases reached one of these failure states after some time<br />
52
Summary: Verification<br />
Different kinds of errors were found:<br />
• Testing:<br />
– Several gaps in the specification identified<br />
– Increased stability and robustness of the system<br />
• Model Checking:<br />
– Mainly implementation faults identified<br />
A precise definition of the requirements and the system is key to an efficient verification!<br />
53
Zusammenfassung
High<br />
Abstraction<br />
Low<br />
Abstraction<br />
<br />
Von isolierten Lösungen zu einem<br />
durchgängigen Einsatz von Modellen<br />
Situation Today Ideal Situation<br />
Domain<br />
agnostic<br />
Domain<br />
appropriate<br />
Our mission<br />
High<br />
Abstraction<br />
Low<br />
Abstraction<br />
Domain<br />
agnostic<br />
Systematik an Abstrakationsebenen als Framework für einen<br />
durchgängigen Entwicklungsprozess<br />
Domain<br />
appropriate<br />
55
Model<br />
Engineering Environmentr<br />
Holistic<br />
Architectural Model<br />
Semantic<br />
Domain<br />
Architecture<br />
Views<br />
develop<br />
and analyze<br />
part of<br />
Tooling Environment<br />
Model Repository<br />
Product<br />
Model<br />
processes<br />
materialize<br />
refers to<br />
based on based on based on<br />
Comprehensive Modeling Theory<br />
support<br />
Method<br />
Definition<br />
56