Proseminar Model-Driven Software Engineering (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker Model-Driven Software Engineering Software Engineering Group 1
Outline Basic Requirements Preliminary Dates Seminar Guidelines Presentation of the Topics 2
Basic Requirements Completion of a seminar thesis in English (approx. 20 pages written in LaTeX) Design and run a presentation Presentation is 20 min, to be held in a block seminar (presumably between 16.07.-20.07.) Internal peer-review among the students, but also review by your supervisor 3
Preliminary Dates We, 11.04., 14:00: Topic presentation We, 18.04., 15:00: Final topic assignment, introduction to scientific working The following dates have their deadline 23:59 MEZ: Fr, 04.05.: Outline and literature references (student) Mo, 21.05.: Seminar thesis for review (student) Fr, 25.05.: Assignment of peer reviews (supervisors) Fr, 01.06.: Completed peer-review (student) Fr, 29.06.: Presentation for supervisor feedback (student) Fr, 06.07.: Supervisor feedback: presentation (supervisors) Fr, 03.08.: Camera-ready version of thesis (student) Fr, 17.08.: Supervisor feedback: thesis (supervisors) Fr, 31.08.: Final hand-in of thesis (student) Presentations (block seminar): 16.07.-23.07. 4
Seminar Guidelines Wednesday, 18.04., 15:00 in room ZM1.02-48: Final topic assignment and seminar rules Participation is mandatory Rules to create thesis and presentations Next week Use templates introduced next week for LaTeX and Powerpoint 5
Topic Selection We will use a Doodle poll with three options: yes, maybe, no We try to minimize conflicts Final conflict resolution is First-Come, First-Served Poll will be opened tomorrow morning 6
Motivation for the Seminar 7
Model-Driven Software Development Platform Independent Model Platform Specific Model Code.... Fixed Transformation PIM PSM Code Platform Independent Model Platform Specific Model Code <<annotate>> Mark Model Parameterised Transformation.... [MDA2006] WS10/11, MDSD-PCM, Steffen Becker 12.04.12 8
Model-Driven Engineering: Covered Aspects Source Models? Which languages? Syntax? Semantics? Transformations Which types? Languages? Target Models Code for Specific Platforms Quality Analysis Models Test Definitions 9
Topics 10
1. Performance Prediction with Palladio The software needs to answer 90% of all requests within 3 seconds. How to design performant software? How to decide economic sizing of hardware? Predict performance with the Palladio Bench! Literature: Becker, S., Koziolek, H., and Reussner, R. 2009. The Palladio component model for model-driven performance prediction. Journal of Systems and Software 82, 1, 3 22. Supervisor: Matthias Becker April 12, 2012 11
2. The Graphical Modeling Framework Software Engineers use models to specify software use UML tools. How about domain-specific models? How to define own modeling languages? How to provide tool support? Generate graphical editors with GMF! Literature: R. Gronback: Eclipse Modeling Project: A Domain- Specific Language (DSL) Toolkit. Addison-Wesley, 2009. Supervisor: Matthias Becker April 12, 2012 12
3. Reachability Analysis on Time Petri Nets Safety analyses for real-time systems E.g. analyze propagation of failures Model-based analysis on petri nets enhanced with time Mapped to timed automata Task: Mapping TPN -> TA Usage of UPPAAL for checking TA Evaluate example with Roméo Literature: Franck Cassez and Olivier (H.) Roux. Structural translation from Time Petri Nets to Timed Automata - Model-Checking Time Petri Nets via Timed Automata. The journal of Systems and Software, 79(10):1456-1468, 2006. Elsevier Supervisor: Claudia Priesterjahn Roméo 13
4. Probabilistic Model Checking Probabilistic safety analysis Check probability of failures Markov chains with continuous time Task Probabilistic model checking on continuous time Markov chains Evaluate example with PRISM Literature: J.-P. Katoen, M. Kwiatkowska, G. Norman and D. Parker. Faster and Symbolic CTMC Model Checking. In L. de Alfaro and S. Gilmore (editors) Proc. PAPM/PROBMIV'01, volume 2165 of Lecture Notes in Computer Science, pages 23-38, Springer. September 2001. Supervisor: Claudia Priesterjahn PRISM 14
5. Triple Graph Grammars Model driven software development Models are primary development artefacts Important to keep models consistent Model-to-model transformations bidirectional Incremental TGG Interpreter Literature: J. Greenyer, E. Kindler. Comparing relational model transformation technologies: implementing Query/View/ Transformation with Triple Graph Grammars. In: Software and Systems Modeling (SoSyM), 2010 Supervisor: Jan Rieke 15
6. Xpand 1.2.1 Model To Text (M2T) Generate Text from EMF Models Pluggable type system Template mechanism Model validation Part of the Eclipse Model to Text Project Literature: http://www.eclipse.org/modeling/m2t Supervisor: Markus von Detten Xpand 16
7. Xtext 2.3 Framework for development of programming languages and domain specific languages Syntax Coloring Automatically generates Parsers Editors Eclipse Integration Literature: http://www.eclipse.org/xtext/ Supervisor: Markus von Detten Code Completion Quick Fixes 17
8. Code generation of IEC compliant languages Closing the gap between high-level modeling languages and executable PLC code: Using code generation techniques to enable model driven development of programmable logic controllers Literature to start with: Vogel-Heuser, B.; Witsch, D.; Katzke, U.;, "Automatic code generation from a UML model to IEC 61131-3 and system configuration tools," Control and Automation, 2005. ICCA '05. International Conference on Thieme, J.; Hanisch, H.-M.;, "Model-based generation of modular PLC code using IEC61131 function blocks," Industrial Electronics, 2002. ISIE 2002. Proceedings of the 2002 IEEE International Symposium on Goal of the seminar: investigate different code generation approaches to create IEC 61131 compliant programming languages from MechatronicUML Supervisor: Jens Frieben Seminar "Software Quality and Safety" - Dr. Matthias Meyer IEC 61131 18
9. The FRACTAL Component Model Components are used to structure complex programs Use of components requires a suitable component model Fractal... is a formally defined component model supports advanced features like runtime adaptation provides good tool support Literature: E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, and J.-B. Stefani. The Fractal Component Model and Its Support in Java. Software Practice and Experience, special issue on Experiences with Auto-adaptive and Reconfigurable Systems. 36(11-12), 2006 Supervisor: Christian Heinzemann 19
10. Maveryx - Open Source Test Automation Framework Maveryx is a free and open source test automation tool for functional and regression testing of Java(TM) applications. Automated testing capabilities functional testing regression testing GUI testing data-driven testing Literature: http://www.maveryx.com Supervisor: Uwe Pohlmann Maveryx plug-in extends the capabilities of Eclipse quickly set up new Maveryx test projects create tests based on the Maveryx Framework API compile, run, and debug Maveryx tests from the Eclipse SDK. 20