Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University of Ottawa Presented By: Omar Badreddin Supervised By: Timothy C. Lethbridge obadr024@uottawa. ca [email protected]. ca June 23, 2022 FSE-18
24
Embed
Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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.