Model-Oriented Programming: Bridging the
Description: Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University of Ottawa tcleecs.uottawa.ca http:www.eecs.uottawa.catcl http:www.umple.org Key
Related Topics
Download Presentation
"Model-Oriented Programming: Bridging the" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Presentation Transcript
slide1. Model-Oriented Programming:
Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013)
Omar Badreddin, Timothy C. Lethbridge
University of Ottawa
tcl@eecs.uottawa.ca
http://www.eecs.uottawa.ca/~tcl
http://www.umple.org<br>
slide2. Key Ideas ofModel-Oriented Programming (MOP) It should be possible to
Use a ‘nice’ textual form for any modeling construct
Embed code in model
Embed model in code
Umple allows this transparently for
Java
C++
PhP
And even all at the same time! T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 2<br>
slide3. Why Model-Oriented Programming Real programmers still like code
Outside the critical systems domain, most models are just documentation
And tend to be:
Wrong
Not executable anyway
Those of us who have done real model-driven development know doing so is a ‘no brainer’ for productivity + quality
We just have to bridge the model-code divide T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 3<br>
slide4. Why not just use a ‘UML Action Language’ like Alf? We don’t really need yet another language for such elements
People want to
Leverage their existing code and libraries
Do this in small increments T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 4<br>
slide5. Umple as a MOP tool It ‘eats its own dogfood’
The Umple compiler is developed with itself
http://code.google.com/p/umple/source/browse/trunk/cruise.umple/src/Umple.ump
http://metamodel.umple.org
Umple allows embedding of code for
Methods
State machine actions, activities, guards
Arbitrary code before/after any generated API for manipulating associations, attributes etc. T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 5<br>
slide6. Examples Small example: http://helloworld.umple.org
State machines: http://statemachines.umple.org T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 6<br>
slide7. Evidence of benefit Empirical studies show
Umple code is easier to understand than Java
Helps students learn to model: CSEE&T T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 7<br>
slide8. T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 8 Availability of a textual form for models and diagrams Ability to edit diagram or text & have the other reflect changes Ability to generate code to represent the model<br>
slide9. Questions? T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 9<br>
Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013)
Omar Badreddin, Timothy C. Lethbridge
University of Ottawa
tcl@eecs.uottawa.ca
http://www.eecs.uottawa.ca/~tcl
http://www.umple.org<br>
slide2. Key Ideas ofModel-Oriented Programming (MOP) It should be possible to
Use a ‘nice’ textual form for any modeling construct
Embed code in model
Embed model in code
Umple allows this transparently for
Java
C++
PhP
And even all at the same time! T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 2<br>
slide3. Why Model-Oriented Programming Real programmers still like code
Outside the critical systems domain, most models are just documentation
And tend to be:
Wrong
Not executable anyway
Those of us who have done real model-driven development know doing so is a ‘no brainer’ for productivity + quality
We just have to bridge the model-code divide T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 3<br>
slide4. Why not just use a ‘UML Action Language’ like Alf? We don’t really need yet another language for such elements
People want to
Leverage their existing code and libraries
Do this in small increments T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 4<br>
slide5. Umple as a MOP tool It ‘eats its own dogfood’
The Umple compiler is developed with itself
http://code.google.com/p/umple/source/browse/trunk/cruise.umple/src/Umple.ump
http://metamodel.umple.org
Umple allows embedding of code for
Methods
State machine actions, activities, guards
Arbitrary code before/after any generated API for manipulating associations, attributes etc. T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 5<br>
slide6. Examples Small example: http://helloworld.umple.org
State machines: http://statemachines.umple.org T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 6<br>
slide7. Evidence of benefit Empirical studies show
Umple code is easier to understand than Java
Helps students learn to model: CSEE&T T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 7<br>
slide8. T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 8 Availability of a textual form for models and diagrams Ability to edit diagram or text & have the other reflect changes Ability to generate code to represent the model<br>
slide9. Questions? T. Lethbridge MiSE 2013 - Umple - Model-Code Divide 9<br>