Oct 2010 - 1 Interchangability in Software Design Notation - Timothy C. Lethbridge Interchangability in software design notation: programs models visual.

Slides:



Advertisements
Similar presentations
Major Influences on the Design of ODM Dan Chang (IBM) Elisa Kendall (Sandpiper) MDSW 2004.
Advertisements

Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
Chapter 51 Scripting With JSP Elements JavaServer Pages By Xue Bai.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
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.
What is UML? A modeling language standardized by the OMG (Object Management Group), and widely used in OO analysis and design A modeling language is a.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
Software Engineering Principles and C++ Classes
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
® Eurostep.ESUKPC v0.1©Copyright Eurostep Limited An Introduction to ISO STEP Part 25 David Price.
Object-Oriented Analysis and Design
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.
The Umple Model-Oriented Programming Technology: Easy-to-Use Open-Source Code Generation Code Generation 2013, Cambridge UK Timothy C. Lethbridge, University.
Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa
Adaptive Processes © Adaptive Processes Simpler, Faster, Better Software Requirements.
SaveUML System design. System overview Possible...
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes.
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.
A language to describe software texture in abstract design models and implementation.
Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman.
Introduction to UML: Unified Modeling Language Ric Holt U Waterloo, March 2009 CS246.
Chapter 16 Applying UML and Patterns Craig Larman
Engineering 5895: Software Design 9/11/01Class Diagrams 1.
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
16 September 2009 Copyright © 2009 Data Access Technologies, Inc. Model Driven Solutions Action Language for Foundational UML (Alf) Joint submission of.
Sept Tracing Status Update - Sept Montreal - Timothy Lethbridge Trace-Directed Modelling Status Update Timothy C. Lethbridge University.
Abstract Classes. Review PA – 3 Design Considerations /Web/CS239/programs/pa3/draft.php ?harrisnlCS239
Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom CSEE&T 2011 Timothy C. Lethbridge, Gunter Mussbacher, Andrew Forward and.
A division of Data Access Technologies, Inc. Combining Alf and UML in Modeling Tools Ed Seidewitz, Model Driven Solutions Jérémie Tatibouet, CEA 28 September.
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.
OOP Review CS 124.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Comments, Conditional Statements Continued, and Loops Engineering 1D04, Teaching Session 4.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Object Oriented Analysis & Design By Rashid Mahmood.
CSCE 240 – Intro to Software Engineering Lecture 3.
Notices Assn 2 is due tomorrow, 7pm. Moodle quiz next week – written in the lab as before. Everything up to and including today’s lecture: Big Topics are.
Lecture 10 – Polymorphism Nancy Harris with additional slides Professor Adams from Lewis & Bernstein.
What is Wrong with Models?
Project management Software development typically includes:
SysML v2 Formalism: Requirements & Benefits
Chapter 5: Object Oriented Analysis and Design
Applying a Research Prototype Tool in Industrial Practice
SNSCT_CSE_PROGRAMMING PARADIGM_CS206
Introduction to UML: Unified Modeling Language
Chapter 4 Advanced Class Modeling
Class Diagrams.
Teaching Effective UML Modeling by Combining it with Programming
Timothy C. Lethbridge, Andrew Forward, Omar Badreddin
Software Architecture & Design
Presentation transcript:

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Interchangability in software design notation: programs models visual textual Oct 2010 Timothy C. Lethbridge Andrew Forward, Omar Badreddin University of Ottawa

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge A fundamental shift is coming Modeling will merge with programming –We will look at two approaches Alf, the latest OMG draft standard Umple, my research group’s work Programming is textual –But in future model diagrams will co-exist with textual descriptions of the model –Both can be edited Edits to diagram instantly reflected in text Edits to text instantly reflected in diagram

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Alf A complete new language –Loosely follows C-family syntax –Implements fUML (a UML subset) –Incorporates ideas from OCL too Class and activity diagrams No state diagram concepts yet

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Classes in Alf abstract class Selection { // Abstract class public abstract getSelectionValue(): Money; // Abstract operation definition } class ProductSelection // Concrete subclass specializes Selection { private quantity: Count; // Attribute definition private unitPriceOfSelection: Money; public select // Operation stub declaration (in cart: Cart, in product: Product, in quantity: Count); public getQuantity(): Count { // Concrete operation definition return self.quantity; }

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Associations in Alf assoc IsSupervisedBy { public supervisor: Professor[0..2]; public supervisee: Student [*]; { Ternary associations possible

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Activities in Alf activity Order_Behavior() { accept (checkout: Checkout); this.establishCustomer(checkout); do { accept (chargeSubmission: SubmitCharge); this.processCharge(chargeSubmission); accept (PaymentDeclined) { declined = true; this.declineCharge(); } or accept (PaymentApproved) { declined = false; } } while (declined); this.packAndShip(); accept (OrderDelivery); this.notifyOfDelivery(); }

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Other tidbits about Alf Lots of alternative ways to do things –let interest : CurrencyAmount = this.principal * this.rate * period; Or –CurrencyAmount interest = this.principal * this.rate * period; Reclassification –classify monitor from InActiveMonitor to ActiveMonitor Directives in comments Active classes run as independent threads –Can accept signals

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Umple UML Programming Language / Ample 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

Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Umplification Converting to Umple / Amplification Incremental reverse engineering Performed on many systems including Umple itself Results in simpler and more robust systems –90% reduction in CRUD code Any Java, PHP, Ruby program can currently be umplified –Other languages coming …