SCHOOL OF COMPUTING QUEEN’S UNIVERSITY 08/03/2013 Andrew Forward, Omar Badreddin, Timothy C. Lethbridge, and Julian Solano School of Electrical Engineering.

Slides:



Advertisements
Similar presentations
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Advertisements

Software Process Models
Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Object Oriented System Development with VB .NET
Introduction to UML Visual modeling Models and its importance
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
SE 555 Software Requirements & Specification Requirements Analysis.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Exploring a Model-Oriented and Executable Syntax for UML Attributes SERA 2013SERA 2013 (August 7, 2013 in Prague, Czech Republic) Omar Badreddin, Andrew.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University.
Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
Introduction to MDA (Model Driven Architecture) CYT.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
Selected Topics in Software Engineering - Distributed Software Development.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
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
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University.
Lab 5 CPIT 250 System Analysis and Design.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom CSEE&T 2011 Timothy C. Lethbridge, Gunter Mussbacher, Andrew Forward and.
CSE 303 – Software Design and Architecture
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Interchangability in software design notation: programs models visual.
SwE 455 Tutorial. What is Evolve? Evolve is a tool for defining components and connecting them together to form new components. Also provides a runtime.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
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.
© 2005 Prentice Hall, Decision Support Systems and Intelligent Systems, 7th Edition, Turban, Aronson, and Liang 6-1 Chapter 6 Decision Support System Development.
Applying a Research Prototype Tool in Industrial Practice
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Analysis models and design models
Timothy C. Lethbridge, Andrew Forward, Omar Badreddin
Presentation transcript:

SCHOOL OF COMPUTING QUEEN’S UNIVERSITY 08/03/2013 Andrew Forward, Omar Badreddin, Timothy C. Lethbridge, and Julian Solano School of Electrical Engineering and Computer Science, University of Ottawa, K1N 6N5, Canada

Outlines Introduction Problem Definition Umple Features Model-Driven Software Development and its Challenges Properties of Prototypes Umple Modeling and Prototyping Approach Class Diagram In Umple Umple User-Interface Prototype Generator State Machines in Umple Mixins and Substitution Umple’s Architecture Conclusions

Introduction Umple:  Stands for “UML Programming Language”  Currently, Model-driven software development brings new opportunities and challenges for rapid prototyping.  Modeling process is inherently abstract, removing the prototyper from details.  Modeling process allows the prototyper to focus on exploring design alternatives for various aspects of the system.

Problem Definition Most popular modeling languages and tools entirely omit the modeling and generating of user interfaces. The benefit of user interface prototypes as a medium for interaction with the user and customer is lost.

Model-Driven Software Development The philosophy of MDSD is that these models should be used to directly generate executable systems. It should always be inherently possible to generate prototypes from a model.

MDSD Challenges The most popular types of models are not intended for modeling the user interface. Combining code generated from models with other necessary code is not easy. There is a need to generate tangible artifacts and prototypes for business-domain stakeholders. Software modellers often do not fully understand the consequences of their modeling decisions. There are limitations in existing approaches to prototype generation from UML models.

Attempts to address the previous issues

Umple allows end users to quickly create class and state machine models and to incrementally embed implementation artifacts. At any point in the modeling process, users can quickly generate a fully functional prototype that exposes modeling implications on the user interface (Quick user interface creation). Umple provides a set of textual notations for UML modeling abstractions such as classes, associations, states, and transitions. Quickly and abstractly prototype the data and behavior of a software system. Umple Features

Umple can be embedded directly in several programming languages to reduce the amount of code required and speed up the programming process. Umple provides a tool to allow editing of UML class diagrams in their graphical form. Subsequent editing of the model can be performed textually or visually. Umple Features - conti

Desirable Properties of Prototypes 1. Accurate reflection of system components (data & Design). 2. Quick and cheap generation of a prototype. 3. Maximized potential for reuse and composition. 4. Support for different levels of abstraction. 5. Support for incremental development. Umple Support all of these properties

Umple Modeling and Prototyping Approach Umple supports modeling either visually or textually. Textual Editor Supports: o Syntax-Driven editing o Searching o Auto indentation o Mixins Graphical Models Support: o Better communication & collaboration. o Relationships are clearer.

Umple Modeling and Prototyping Approach

Class Diagram In Umple class Student {} class CourseSection {} class Registration { String grade; // an attribute: get and set methods are generated * -- 1 Student; // an association: A registration has 1 Student * -- 1 CourseSection; // another association } A class diagram corresponding to Umple code Code Sample

Umple User-Interface Prototype Generator At any point in the modeling or development activities, the user can automatically generate a system prototype. The system prototype has the following features: 1. It allows the user to create instances of classes (objects) and links of associations. 2. Semantic rules are respected at run time (Error message is displayed if violation of the multiplicity). 3. The user can view and update an object’s attributes. 4. The user can follow links. 5. The user can change predefined themes.

Umple User-Interface Prototype Generator School_Person Example:

Generated Prototype

State Machines in Umple Umple supports the specification of state machines. Umple adheres to UML semantics except as described later. State machines provide a very compact representation of behavior, and hence are ideal for rapid prototyping.

State Machines in Umple Delivery of a courier package example: class Customer { String name; // An ordinary attribute with a primitive type Address address; // An attribute with an Umple type } class CourierShipment { Time ArrivalTime; Time DeliveryTime; Money price; Boolean billToRecipient; * -- 1 Customer sender; // An association * -- 1 Customer recipient; packageStatus { // State machine, like an enumerated attribute Initial { // One of the states; this is the initial state createDraft -> Draft; // If createDraft called state changes createFinal -> Ready; } Draft { // Another state createFinal -> Ready; } Ready { dropAtCourierDepot -> Transit; pickUpByDeliverer -> Picked; } Picked { dropAtCourierDepot -> Transit; } Transit { transferToNextStage -> Transit; deliver -> Delivered; } Delivered { billingSettled -> Done; } Done {} }

State Machines in Umple Traffic Control System Example: class trafficLightSystem { carTraffic { Red { Entry / {goingRed();} // Call this when entering the state // The following is a timed transition that is also // guarded, meaning the state changes only if the condition // in square brackets (arbitrary Java) evaluates to true after(redTimer)[!emergency] -> Yellow; emergencyNotice -> AllRed; } Yellow {... }... } pedestrianTraffic { DontWalk { goingRed [!emergency] -> Walk; emergencyNotice -> DontWalk; }... }... }

Mixins and Substitution Statemachine coreTrafficController { Red { After(redTimer) -> Green; } Green { After(greenTimer) -> Yellow; } Yellow { After(yellowTimer) -> Red; } Mixin allows independently-developed code to be injected into a set of classes Mixin Substituti on

Mixin Benefits Code Reuse Easy to add and remove transitions Quickly draft Iterative refinement

Umple’s Architecture Layout Information Umple Core System Visual Editor Textual Editor XMI Third Part Tools Repository Ecore Umple Compiler Umple Code Generator Interface Generator Runtime Object Persistence Mechanism

Conclusions Umple Provides: 1. Accurate reflection of system components and data. 2. Accurate reflection of current system design directions. 3. Quick and cheap generation of a prototype. 4. Maximized potential for reuse and composition. 5. Support for different levels of abstraction. 6. Support for incremental development.