09.08.2013 Aufrufe

download - SPES 2020

download - SPES 2020

download - SPES 2020

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!