24
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

Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Embed Size (px)

Citation preview

Page 1: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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

Page 2: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Demo: Umple Online

http://cruise.site.uottawa.ca/umpleonline/

Demo: Eclipse Plug-in

http://cruise.site.uottawa.ca/umpleonline/download_eclipse_umple_plugin.html

Page 3: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Umple’s Vision

3

Page 4: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University
Page 5: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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

Page 6: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

My PhD work

6

Page 7: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Runway State Machine

Page 8: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University
Page 9: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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

Page 10: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Grounded Theory study of Umple

10

Page 11: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Challenges and Mitigation

Page 12: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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)

Page 13: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Model Versionning and Merging

RSA: 712 – (~ 80 layout information) = 632.

Umple: About 35 lines of code (without layout information)

13

Page 14: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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

Page 15: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

15

Page 16: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

BACK UP SLIDES

Page 17: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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?

Page 18: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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.

Page 19: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

“The biggest payoff will not come from new research but from putting old ideas into practice”

Pernars, D. ACM Fellow

19

Page 20: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

New Work: State Machine

20

Page 21: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Code Island

Model Island

21

Page 22: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

Code Generation

Reverse Engineering

22

Page 23: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

In Umple Island, you get the best of both

Model in Code

Code in Model

Introduction 4

23

Page 24: Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University

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