Sponsored Links
This presentation is the property of its rightful owner.
1 / 24

Applying a Research Prototype Tool in Industrial Practice PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

FSE-18. Ottawa Carleton Institute for Computer Science. Applying a Research Prototype Tool in Industrial Practice. Umple: a Model Oriented Programming Language. University of Ottawa. Presented By : Omar Badreddin Supervised By : Timothy C. Lethbridge. obadr024@uottawa.ca

Download Presentation

Applying a Research Prototype Tool in Industrial Practice

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Ottawa Carleton Institute for Computer Science

Applying a Research Prototype

Tool in Industrial Practice

Umple: a Model Oriented Programming Language

University of Ottawa

Presented By: Omar Badreddin

Supervised By: Timothy C. Lethbridge



9 November 2014

Demo: Umple Online


Demo: Eclipse Plug-in


Umple’s Vision

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

Runway State Machine

State machine implementation

Editor Tests

Tokens Tests

Meta-Model Tests

Generated Code Tests

Generated System Tests

Umple Textual Editor

Total Number of tests: > 1644

Eclipse 3.4, 3.5, and 3.6

Vista, XP, MAC

Grounded Theory study of Umple

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)

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)


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?


  • 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

New Work: State Machine

Code Island

Model Island

Code Generation

Reverse Engineering

In Umple Island, you get the best of both

Introduction 4

Model in Code

Code in Model

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

  • Login