Model Oriented Programming: An Empirical Study of Comprehension Omar Badreddin Andrew Forward Timothy C. Lethbridge try.umple.org.

Slides:



Advertisements
Similar presentations
Intermediate Code Generation
Advertisements

Design patterns exercise Nick Lopez Duplication of course material for any commercial purpose without the explicit written permission of the professor.
The Analytical Engine Module 6 Program Translation.
Selection Statements choice of one among several blocks of code Java supports 3 kinds of selection statements: if statement – selects one block or leaves.
Introduction to a Programming Environment
Unified Modeling Language (UML)
Social Science Research Design and Statistics, 2/e Alfred P. Rovai, Jason D. Baker, and Michael K. Ponton Internal Consistency Reliability Analysis PowerPoint.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Exploring a Model-Oriented and Executable Syntax for UML Attributes SERA 2013SERA 2013 (August 7, 2013 in Prague, Czech Republic) Omar Badreddin, Andrew.
SCHOOL OF COMPUTING QUEEN’S UNIVERSITY 08/03/2013 Andrew Forward, Omar Badreddin, Timothy C. Lethbridge, and Julian Solano School of Electrical Engineering.
Object-Oriented Design. From Analysis to Design Analysis Artifacts –Essential use cases What are the problem domain processes? –Conceptual Model What.
Introduction to High-Level Language Programming
The Umple Model-Oriented Programming Technology: Easy-to-Use Open-Source Code Generation Code Generation 2013, Cambridge UK Timothy C. Lethbridge, University.
Object Oriented Software Development
Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University.
Programming Languages CPS120: Introduction to Computer Science Lecture 5.
Design Patterns Standardized Recurring model Fits in many location Opposite of customization Fundamental types of pattern Choose and use as desired and.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Generations of Programming Languages First generation  Machine Language Second Generation  Assembly Language Third Generation  Procedural language such.
AS Computing Introduction to Programming. What is a Computer Program? A list of instructions that a computer must work through, in a logical sequence,
Evolution of Programming Languages Generations of PLs.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
CSC 338: Compiler design and implementation
Cosc 2150: Computer Organization
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
Umple Toolkit for Model-Oriented Programming NECSIS Webinar, May Timothy C. Lethbridge, University of Ottawa
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
1 CS 391L: Machine Learning: Experimental Evaluation Raymond J. Mooney University of Texas at Austin.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
National Diploma Unit 4 Introduction to Software Development Introduction to Programming Languages.
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
CONTENTS Processing structures and commands Control structures – Sequence Sequence – Selection Selection – Iteration Iteration Naming conventions – File.
Sept Tracing Status Update - Sept Montreal - Timothy Lethbridge Trace-Directed Modelling Status Update Timothy C. Lethbridge University.
Chapter 5 Implementing UML Specification (Part II) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence.
Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom CSEE&T 2011 Timothy C. Lethbridge, Gunter Mussbacher, Andrew Forward and.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
WERST – Methodology Group
Separation Of Concerns: Mixins + Variability Models + Aspects in Umple CSER – June 2013 – Montreal Timothy C. Lethbridge, University of Ottawa
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Interchangability in software design notation: programs models visual.
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
Introduction to Modeling Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh.
Introduction to Language Programming Hierarchy of programming lang. Based on machine independences: 1. Machine language 2. Assembly language 3. Higher.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
CSC 212 – Data Structures Lecture 15: Big-Oh Notation.
Introduction to Computer Programming using Fortran 77.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
CSC235 Computer Organization & Assembly Language
What is Wrong with Models?
Applying a Research Prototype Tool in Industrial Practice
CS 153: Concepts of Compiler Design November 30 Class Meeting
Developing Applications
TRANSLATORS AND IDEs Key Revision Points.
High Level Programming Languages
Chapter 1: Computer Systems
Visual Basic – Decision Statements
Programming Fundamentals Lecture #2 Overview of Computer Programming
Timothy C. Lethbridge, Andrew Forward, Omar Badreddin
Statistical Machine Translation
Presentation transcript:

Model Oriented Programming: An Empirical Study of Comprehension Omar Badreddin Andrew Forward Timothy C. Lethbridge try.umple.org

2

3 Technology Trend Low level Languages Procedural Languages Object Orientation Model Orientation, Action Languages Levels of Abstraction Assembly Pascal Java, C++ Alf, Umple

4 What is Umple? Model Oriented Programming Add modeling abstractions to code –Class diagram –State machines Model-Code Duality State-of-the-art code generation Open source (Google Code) Available online (try.umple.org) as well as on the command line and in Eclipse

5 Examples of Umple code

6

7 Associations

8 State Machines

9 What else can you model in Umple Composite state machine. –Nested –Concurrent Do Activities in state machines Tracing directives Aspect-oriented concepts –Code injection (Before, After) Certain patterns (e.g. singleton, immutable)

10 Umple online (try.umple.org)

11 Development Approaches Model-Only Code-Only A mix of Code and Model (Complete running systems)

12 Technology trend revisited main mov cx,3 loopstart: do mov dh,10 ;row 10 mov dl,20 ;column 20 call Gotoxy ;locate cursor PromptForIntegers ArraySum DisplaySum ENDP END main for (int i = 0; i < 3; i++) 12 Java Assembly

13 Technology trend revisited public boolean e() { boolean wasEventProcessed = false; Status aStatus = status; switch (aStatus) { case On: setStatus(Status.Off); wasEventProcessed = true; break; case Off: setStatus(Status.Off); wasEventProcessed = true; break; } return wasEventProcessed; } status { On { e -> Off;} Off{ e -> Off;} } 13 Umple Java

14 Experiment Hypotheses & Design

15 Hypothesis H1: A system written in Umple is more comprehensible than an equivalent Java implementation of the system –H1 0 : Umple and Java do not differ in comprehensibility H2: A system written in Umple has a different comprehensibility level than an equivalent UML diagram of the system –H2 0 : Umple and UML diagrams do not differ in comprehensibility

16 Experiment Design Umple UML Java

17 Experiment Design Umple UML Java C M M C

18 Umple UML Java C M M C TV T Experiment Design

19 Umple Java C M C T T Comparing Umple & Java Common to both: Textual syntax Complete system Natural advantage to Java: Familiarity

20 Umple UML C M M TV Comparing Umple and UML Common to both: Modeling notation Natural advantage to UML: Familiarity Model only (fewer details)

21 Experiment Procedure

22 Experiment Procedure System Example Analyze 9 Participants 3 system examples represented in 3 notations (Umple, UML, Java) 12 Questions per example Measure time, count number of incorrect responses Mix of students and professionals Questions reflect comprehension and some require tracing

23 Experiment Results

24 Average Response Time Seconds Participants

25 Box Plot of Response Time Time in Seconds Notation

26 Statistical tests Examining Data for Umple and Java –Mann-Whitney test ((p = 8.9x10 -9 ) –Two Tailed t-test: Umple was faster for users than Java (p=1.5x10-8) Examining Data for Umple and UML –Mann-Whitney test (p = 0.2) –Two Tailed t-test: Umple ~ UML (p=0.9) Number of errors

27 Threats of Validity Number of Participants and their experience Will users interpret questions consistently? Fairness of comparing Umple, UML, and Java –Umple & Java / Umple and UML Examples could be too simple, not realistic/representative, not ‘the same’ as each other Time for response is very small. External validity (can it scale to real systems?)

28 Conclusion Modeling abstractions embedded in code enhances comprehensibility. Such abstractions retain comprehensibility benefits as evident in UML. Replication of experiment Experimenting with larger, more complex system examples and tasks. Future Work

29