www.es.tu-darmstadt.de
1
Prüfung von „Traceability
Prüfung von „Traceability
Links“
Links“
-
-
Workshop
Workshop
www.es.tu-darmstadt.de
2
Agenda des Workshops
Agenda des Workshops
10.00 Begrüßung und Vorstellung der Teilnehmer 10.30 Erörterung der Entwicklungsmethoden
11.30 Mittagspause
12.15 Toolnet-Vorstellung (TU Darmstadt)
13.30 OOSE/RUP (Matthias Riebisch, TU Ilmenau) Diskussion von Prüfungen und Bedingungen 14.50 Kaffeepause
15.00 WOM-Vorstellung (Tobias Zimmermann, EADS) Diskussion von Prüfungen und Bedingungen
www.es.tu-darmstadt.de
3
Integration and Automatic Maintenance
of Traceability Links between
System Development Tools
Prof. Dr. rer. nat. Andy Schürr
Darmstadt University of Technology
Dept. of Electrical Engineering & Information Technology (Associate Member of Department of Computer Science)
www.es.tu-darmstadt.de
4
The
The RunningRunning ExampleExample
System requirements SW-Functionality
HW-Design Product Data
Automotive System
Automotive System
Development
Development
www.es.tu-darmstadt.de
5
Outline
Outline of of PresentationPresentation
DOORS Requirements Eng. Tool Simulink & Stateflow 3. synchronize 1. analyze 2. repair
Meta Modeling &
Model Transformation Techniques and Tools
O
M
G
www.es.tu-darmstadt.de
6
1.
1.
The
The
MATE Project
MATE Project
(
(
M
M
ATLAB
ATLAB
Simulink
Simulink
&
&
Stateflow
Stateflow
A
A
nalysis and
nalysis and
T
T
ransformation
ransformation
E
E
nvironment
nvironment
)
)
www.es.tu-darmstadt.de
7
The
The RunningRunning ExampleExample –– Part 1Part 1
Simulink & Stateflow
Analyze
www.es.tu-darmstadt.de
8
Matlab
Matlab
Simulink/Stateflow
Simulink/Stateflow
• model-driven development of electronic control unit (ECU) software
• specification of control algorithms
• executable block diagram and statechart models
Simulink
www.es.tu-darmstadt.de
9
Model
Model ReviewReview of of ImplementationImplementation ModelModel 1600 min ≈ 27 h
Number of model modifications
Stürmer, I., Conrad, M., Fey, I., and Dörr, H.: Experiences with Model and Autocode Reviews in Model-based Software Development.
www.es.tu-darmstadt.de
10
Potentials
Potentials forfor Model Model RefactoringRefactoring OpsOps..
900; 45%
870; 43% 90; 4%
170; 8%
Unmittelbare Reparatur
Reparatur mit User-Feedback Manuelle Änderung notwendig ungeklärt
automatic repair action interactive repair action
manual / creative bug fixes unclassified
Almost 90% bug fixes with semi-automatic
www.es.tu-darmstadt.de
11
MATLAB
MATLAB Simulink/StateflowSimulink/Stateflow Meta ModelMeta Model
www.es.tu-darmstadt.de
12
Some
Some GuidelinesGuidelines
GL1: The name of a subsystem consists of characters, digits, and _ ; it starts with a character …
GL2: The name of an Enable Block should be the same as the name of the related Enable Signal
GL3: Blocks may not possess unconnected Inports or unconnected Outports
www.es.tu-darmstadt.de
13
GL2: Check
GL2: Check OnlyOnly MM--Script Script ProgramProgram
function f_block_h = guideline_2(system, cmd_s) top_h = get_param(bdroot,'Handle');
f_block_h = [];
subsys = get_param(get_param(find_system(top_h, 'BlockType', 'EnablePort'), 'Parent'), 'Handle');
for k=1:length(subsys) subsys_handle = get_param(subsys{k},'Handle'); porth = get_param(subsys{k},'PortHandles'); enable_port_name = get_param(porth.Enable,'Name'); enableh = find_system(subsys{k},'SearchDepth',1, 'BlockType','EnablePort'); enable_block_name = get_param(enableh,'Name'); if ~(strcmp(enable_port_name, enable_block_name)) f_block_h = [f_block_h;subsys_handle]; end end % for end % function
www.es.tu-darmstadt.de
14
GL2: Check
GL2: Check OnlyOnly OCL ExpressionOCL Expression if self.containedBlock
->exists(b:Block | b.oclIsTypeOf(EnableBlock) ) then
self.containingSubsystemBlock.incomingLine ->select( line | line.dstPort = "enable" )
->collect(qualifiedName) ->intersection (self.containedBlock ->select(b:Block | b.oclIsTypeOf(EnableBlock)) ->collect(qualifiedName) ) ->notEmpty() endif
www.es.tu-darmstadt.de
15
GL2:
GL2: NonNon--locallocal NamingNaming ConventionConvention
Enable Signal and EnableBlock must have the same name!
Check and repair action
www.es.tu-darmstadt.de
16
2.
2.
The
The
ToolNet
ToolNet
Project
Project
(
(
COTS Tool Integration
COTS Tool Integration
Framework
www.es.tu-darmstadt.de
17
The
The RunningRunning ExampleExample –– Part 2Part 2
DOORS Requirements Engineering Tool Simulink & Stateflow synchronize synchronize
www.es.tu-darmstadt.de
18
DOORS
DOORS –– MATLAB Integration MATLAB Integration ScenarioScenario
DOORS DOORS MATLAB MATLAB Simulink Simulink Traceability Traceability Links Links
www.es.tu-darmstadt.de
19
Code-Fragment
Consistency
Consistency CheckingChecking ScenarioScenario
MATLAB Objects Model Parser API Adapter MATLAB Model Parser
Definition Meta ModelMOF
SDM Graph Transformation Code-Fragment Analysis Results Model Analyser OCL Constraints Model Transformer Modell DOORS Model Model Parser API Adapter DOORS Objects Trace Link Creator Model Analyser Code-Fragment Analysis Results Model Transformer ???
www.es.tu-darmstadt.de 20 Code-Fragment Modell Forward Transformation
Forward Transformation ScenarioScenario
DOORS Model Model Parser API Adapter DOORS Objects MATLAB Objects Model Unparser API Adapter MATLAB Model Model Analyser Code-Fragment Analysis Results Model Analyser Model Transformer Model Transformer ??? Model Translator
www.es.tu-darmstadt.de 21 Code-Fragment Modell Backward
Backward Transformation Transformation ScenarioScenario
DOORS Model Model Unparser API Adapter DOORS Objects MATLAB Objects Model Parser API Adapter MATLAB Model Model Analyser Code-Fragment Analysis Results Code-Fragment Analysis Results Model Analyser Model Trafos Model Trafos ??? Model Translator
www.es.tu-darmstadt.de
22
Model Integration
Model Integration ScenariosScenarios
• Needed model/document/artefact integration rule sets:
¾ create traceability links only
¾ check traceability link consistency, completeness, …
¾ remove inconsistent traceability links
¾ forward transformation
¾ backward transformation
¾ forward/backward attribute propagation
¾ forward/backward structure modification propagation
¾ …
• Generate all transformation rule sets from single declarative bidirectional model integration rules
www.es.tu-darmstadt.de
23
OMG Standard + Graph Transformation
OMG Standard + Graph Transformation
MOF 2.x Metamodel Def. Language MOF 2.x Metamodel Def. Language DiaMeta Editor Generator DiaMeta Editor Generator OCL 2.x Constraint Def. Language OCL 2.x Constraint Def. Language SDM Fujaba Graph Transformations SDM Fujaba Graph Transformations TGG (QVT Subset) M2M Translation Def. Language TGG (QVT Subset) M2M Translation Def. Language Velocity, XSLT Code Generator Velocity, XSLT Code Generator TU Dresden University of Kassel University of Paderborn TU Darmstadt University BW Munich TU Darmstadt
www.es.tu-darmstadt.de
24
Connecting
Connecting MetaMeta--ModelsModels
Traceability Relations with Mapping Rules DOORS Meta Model
+ Matlab Meta Model
www.es.tu-darmstadt.de
25
TGG
TGG MappingMapping RulesRules
Context
www.es.tu-darmstadt.de
26
TGG
www.es.tu-darmstadt.de
27
Generated
Generated Forward Transformation Forward Transformation RuleRule
www.es.tu-darmstadt.de
28
3.
www.es.tu-darmstadt.de
29
Traceability Link Definition
Traceability Link Definition
Basic Properties of Traceability Link Types:
• Permitted source and target classes in meta-models
¾ Simple consistency checks
• Multiplicities for both link ends
¾ Simple completeness checks
• Integrity constraints for link types (OCL, Java, … )
¾ Static correctness checks (static semantics)
• Structural integrity rules, …
¾ Automatic creation and checking of links
Additional properties of traceability link type definitions: • Inheritance hierarchies of link types
• Composition of rules for link types (subrules)
www.es.tu-darmstadt.de
30
„Hard“ Open Problems
„Hard“ Open Problems