Upload
dina-hunt
View
220
Download
4
Tags:
Embed Size (px)
Citation preview
Applying a Research PrototypeTool in Industrial Practice
Ottawa Carleton Institute for Computer Science
Umple: a Model Oriented Programming Language
University of Ottawa
Presented By: Omar BadreddinSupervised By: Timothy C. Lethbridge
[email protected]@site.uottawa.ca
April 18, 2023
FSE-18
Demo: Umple Online
http://cruise.site.uottawa.ca/umpleonline/
Demo: Eclipse Plug-in
http://cruise.site.uottawa.ca/umpleonline/download_eclipse_umple_plugin.html
Umple’s Vision
3
So what is Umple?
Model-oriented programming
Adds UML abstractions to any OO language– Class and state diagrams
Removes boilerplate code
Allows simultaneous textual and diagrammatic modeling
Eliminates round-tripping– Don’t edit generated code, just embed your custom
code
My PhD work
6
Runway State Machine
State machine implementation
9
Umple Textual Editor
Umple Textual Editor
Total Number of tests: > 1644
Eclipse 3.4, 3.5, and 3.6Vista, XP, MAC
Grounded Theory study of Umple
10
Challenges and Mitigation
Remaining Work
Refine implementation of Nested and concurrent states
Build more examples
Complete the grounded theory study of Umple users
Model versioning and UML action language (next slide)
Model Versionning and Merging
RSA: 712 – (~ 80 layout information) = 632.
Umple: About 35 lines of code (without layout information)
13
UML Action Language
Proposed ALs are textual
Umple’s action language is Java or Php.
Using a bottom up approach to achieve a better action language by:
– Restricting existing OO language
(limit access to internal representation of state machine)
– Defining additional abstractions
(event names)
– Using language independent syntax
(Boolean expressions)
14
15
BACK UP SLIDES
Research Questions
To what extent do software developers use state machines to model system behavior and specifications? What are the major factors behind that level of adoption?
Can the gap between state machine diagrams and code be minimized by incorporating core state machine abstractions in a high-level programming-like language?
To what extent could systems that do not use state machines abstractions be made to use them?
Hypotheses
H 1: Software developers can develop software more effectively if they can develop state machines in a similar manner to which they develop code.
H 2: State machine adoption in the software industry can be enhanced if core state machine concepts are incorporated in programming-like textual language.
“The biggest payoff will not come from new research but from putting old ideas into practice”
Pernars, D. ACM Fellow
19
New Work: State Machine
20
Code Island
Model Island
21
Code Generation
Reverse Engineering
22
In Umple Island, you get the best of both
Model in Code
Code in Model
Introduction 4
23
Model Versioning and Merging
Existing tools use the XMI for persistence of models
XMI is relatively larger in size, high probability of conflicts
Software repositories do a good job with versioning and merging of code.
Umple syntax is highly concise and abstract
24