ModelBased Monitoring for Papyrus RT Supervised By Dr
Model-Based Monitoring for Papyrus. RT Supervised By: Dr. Juergen Dingel Suchita Ganesan, Laith “Leo” Juwaidah, Nondini Das Nicolas Hili, Reza Ahmadi 5/5/2016 1
Outline • • Monitoring time constraints Research project goals Implementation details Demo Challenges and solutions Vision (Nicolas) Model based animation and interaction (Nicolas) Model based debugging (Reza) 5/5/2016 2
UML-RT and Papyrus. RT 5/5/2016 3
Why UML-RT? • Real time systems are huge and complex • Convenient for communicating design concepts • UML-RT is a profile of UML for real-time embedded systems • Supports encapsulation and reuse 5/5/2016 4
UML-RT Ping Pong Example 5/5/2016 5
Papyrus. RT • Real-time variation of Papyrus • Open source Eclipse plugin • UML-RT 5/5/2016 6
Research Project Goals 5/5/2016 7
Problem Statement Latency problem 5/5/2016 8
Solution • Monitoring the generated code can be used for: Ø Model debugging Ø Model refinement Ø Runtime verification Ø Monitoring performance 5/5/2016 9
Implementation Overview Monitoring UI Code Generation Trace Collection & Display 5/5/2016 10
CODE LEVEL MODEL LEVEL Workflow 5/5/2016 UML-RT Model with Trace Results UI for monitoring configuration Display traces on model level Generated Trace Files UI for monitoring configuration Model with Monitoring Information Code-generation feature of Papyrus. RT Run and trace the code with LTTng Code with Tracepoint Files 11
Monitoring UI LTTng-Ready Code • Monitoring UI Profiled Model 5/5/2016 • Code Generation • Trace Collection & Display Model with Trace Info. 12
Monitoring UI – Monitoring Configuration 5/5/2016 13
Monitoring UI – Approach • Monitoring profile • Custom stereotypes • Interface with the code generator 5/5/2016 14
Monitoring UI – Overview UML-RT Model in Papyrus. RT • Papyrus. RT User selects the elements to be • Eclipse Plugin monitored Update the stereotypes of selected elements 5/5/2016 • UML Profiles 15
Code Generation LTTng-Ready Code • Monitoring UI Profiled Model 5/5/2016 • Code Generation • Trace Collection & Display Model with Trace Info. 16
Code Generation – Overview Profiled model • UML profiles Add tracepoints to code • Xtend Generate LTTng-ready code 5/5/2016 • LTTng 17
Code Generation – Example Capsule_Workstation: : State Capsule_Workstation: : state_____top__Workstation_Producing( const UMLRTMessage * msg ) { tracepoint( Active. State__Workstation_Producing_provider, Active. State__Workstation_Producing_tracepoint, "Active. State__Workstation_Producing" ); switch( msg->dest. Port->role()->id ) { case port_Production. Timer: switch( msg->get. Signal. Id() ) { case UMLRTTimer. Protocol: : signal_timeout: tracepoint( Message. Received__Workstation__ Workstation_finished_provider, Message. Received__Workstation_finished_tracepoint, "Message. Received__Workstation_finished" ); actionchain_____top__Workstation_finished__Action. Chain 4( msg ); return top__Workstation_Standby; default: this->unexpected. Message(); break; } return current. State; } 5/5/2016 18
Trace Collection & Display LTTng-Ready Code • Monitoring UI Profiled Model 5/5/2016 • Code Generation • Trace Collection & Display Model with Trace Info. 19
Trace Collection & Display - Goals • Monitor generated code • Collect the monitoring information • Display the traces on the model 5/5/2016 20
Trace Collection & Display – Overview Append LTTng script to the • Xtend code generator Run the generated code and generate • LTTng trace file Parse the trace • Trace file / Read live Compass traces Display traces on the model 5/5/2016 • Eclipse Plugin 21
Demo 5/5/2016 22
Rover Architecture Control Software Rover Library GPIO Class File System Hardware 5/5/2016 23
Rover Model - Structure 5/5/2016 24
Rover Model – Control Software 5/5/2016 25
Rover Model – Engine Controller 5/5/2016 26
Next Steps • Support for more options to monitor • Apply the results towards a general vision of other activities – Animation interaction – Model based debugging 5/5/2016 27
5/5/2016 28
- Slides: 28