Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University.

Slides:



Advertisements
Similar presentations
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
Advertisements

IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Unified Modeling Language
UML Static diagrams. Static View: UML Component Diagram Component diagrams show the organization and dependencies among software components. Component:
The Rhapsody in C++ Tool Training "Essential" © I-Logix v2.3 25/9/2000 EI-1 “Essential” Rhapsody in C++ Introduction.
Software Reuse Building software from reusable components Objectives
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
Lecture #4 Agenda Cell phones off & name signs out Review Questions? Objects The birds-and-the-bees talk.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Portability CPSC 315 – Programming Studio Spring 2008 Material from The Practice of Programming, by Pike and Kernighan.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
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.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES API documentation.
The Umple Model-Oriented Programming Technology: Easy-to-Use Open-Source Code Generation Code Generation 2013, Cambridge UK Timothy C. Lethbridge, University.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Systems Analysis and Design in a Changing World, Fifth Edition
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Xactium xDSLs Run Models Not Code Tony Clark
Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
SE-1010 Dr. Mark L. Hornick 1 Introduction to Object-Oriented Programming (OOP) Part 1.
Object-Oriented Analysis and Design An Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Model Oriented Programming: An Empirical Study of Comprehension Omar Badreddin Andrew Forward Timothy C. Lethbridge try.umple.org.
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.
Systems Analysis and Design in a Changing World, 3rd Edition
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
Nov Quality Process for Research Software - Timothy C. Lethbridge Research Software Doesn't Have to be Buggy: A Model-Driven, Test-Driven and Agile.
Sept Tracing Status Update - Sept Montreal - Timothy Lethbridge Trace-Directed Modelling Status Update Timothy C. Lethbridge University.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
University of Utah SoCCS Lecture 121 Dynamic Models in Design CS6961 – Lecture 12 Nathan Dykman.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Computing System Fundamentals 3.1 Language Translators.
Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University.
Unified Modelling Language (UML) Software Engineering Lab. Sharif University of Technology.
Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom CSEE&T 2011 Timothy C. Lethbridge, Gunter Mussbacher, Andrew Forward and.
 Programming - the process of creating computer programs.
Separation Of Concerns: Mixins + Variability Models + Aspects in Umple CSER – June 2013 – Montreal Timothy C. Lethbridge, University of Ottawa
XML Schemas Experiences Rogue Wave Software Allen Brookes.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
By: Cheryl Mok & Sarah Tan. Java is partially interpreted. 1. Programmer writes a program in textual form 2. Runs the compiler, which converts the textual.
Introduction Mehdi Einali Advanced Programming in Java 1.
Summer Project Marama2008 By Robert and Johnson. What is Marama? Marama is an Eclipses based toolset permits rapid specification of notational elements,
Object Oriented Programming Criteria: P2 Date: 07/10/15 Name: Thomas Jazwinski.
Introduction to Classes, Objects, Methods and Attributes Lecture # 5.
Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Interchangability in software design notation: programs models visual.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Object Oriented Analysis & Design By Rashid Mahmood.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
What is Wrong with Models?
Chapter 5: Object Oriented Analysis and Design
Applying a Research Prototype Tool in Industrial Practice
Entry Ticket: High and Low Level Languages
Online Shopping APP.
The Object Oriented Approach to Design
Intro To Design 1 Elementary School Library: User Sub-System Class Diagrams Software Engineering CSCI-3321 Dr. Tom Hicks Computer Science Department.
Object Oriented Analysis and Design
Chapter 7 –Implementation Issues
Models 2015 M. Garzón, A. Forward, and T. Lethbridge
Teaching Effective UML Modeling by Combining it with Programming
Timothy C. Lethbridge, Andrew Forward, Omar Badreddin
Presentation transcript:

Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University of Ottawa

Key Ideas of Model-Oriented Programming (MOP) It should be possible to Use a ‘nice’ textual form for any modeling construct Embed code in model Embed model in code Umple allows this transparently for Java C++ PhP And even all at the same time! T. Lethbridge MiSE Umple - Model-Code Divide2

Why Model-Oriented Programming Real programmers still like code Outside the critical systems domain, most models are just documentation And tend to be: —Wrong —Not executable anyway Those of us who have done real model-driven development know doing so is a ‘no brainer’ for productivity + quality We just have to bridge the model-code divide T. Lethbridge MiSE Umple - Model-Code Divide3

Why not just use a ‘UML Action Language’ like Alf? We don’t really need yet another language for such elements People want to Leverage their existing code and libraries Do this in small increments T. Lethbridge MiSE Umple - Model-Code Divide4

Umple as a MOP tool It ‘eats its own dogfood’ The Umple compiler is developed with itself ise.umple/src/Umple.umphttp://code.google.com/p/umple/source/browse/trunk/cru ise.umple/src/Umple.ump Umple allows embedding of code for Methods State machine actions, activities, guards Arbitrary code before/after any generated API for manipulating associations, attributes etc. T. Lethbridge MiSE Umple - Model-Code Divide5

Examples Small example: State machines: T. Lethbridge MiSE Umple - Model-Code Divide6

Evidence of benefit Empirical studies show Umple code is easier to understand than Java Helps students learn to model: CSEE&T T. Lethbridge MiSE Umple - Model-Code Divide7

T. Lethbridge MiSE Umple - Model-Code Divide8 Availability of a textual form for models and diagrams Ability to edit diagram or text & have the other reflect changes Ability to generate code to represent the model

Questions? T. Lethbridge MiSE Umple - Model-Code Divide9