Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Model Oriented Programming: An Empirical Study of Comprehension Omar Badreddin Andrew Forward Timothy C. Lethbridge try.umple.org."— Presentation transcript:

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

2 2

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

4 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 5 Examples of Umple code

6 6

7 7 Associations

8 8 State Machines

9 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 10 Umple online (try.umple.org)

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

12 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 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 14 Experiment Hypotheses & Design

15 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 16 Experiment Design Umple UML Java

17 17 Experiment Design Umple UML Java C M M C

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

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

20 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 21 Experiment Procedure

22 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 23 Experiment Results

24 24 Average Response Time Seconds Participants

25 25 Box Plot of Response Time Time in Seconds Notation

26 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 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 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 29


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

Similar presentations


Ads by Google