Copyright © 2013 Ivar Jacobson International SA. All rights reserved UML: Once More with Meaning University of Maryland Model-Based System Engineering.

Slides:



Advertisements
Similar presentations
1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 11 Brief introduction to the UML Specification (Based on UML Superstructure.
Advertisements

Architecture Representation
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
ESE Einführung in Software Engineering 7. Modeling Behaviour Prof. O. Nierstrasz.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Model-Based Programming: Executable UML with Sequence Diagrams By Ruben Campos Cal State L.A. Computer Science Thesis Work Spring 2007.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
Unified Modeling Language (UML) Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Software Requirements
Itntroduction to UML, page 1 Introduction to UML.
Unified Modeling Language (UML)
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Metadata Tools and Methods Chris Nelson Metanet Conference 2 April 2001.
Introduction to UML 1 Quick Tour Why do we model? What is the UML? Foundation elements Unifying concepts Language architecture Relation to other OMG technologies.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Introduction to the Unified Modeling Language “The act of drawing a diagram does not constitute analysis or design. … Still, having a well-defined and.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Unified Modeling Language, Version 2.0
Object-Oriented Analysis and Design An Introduction.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
1 Devon M. Simmonds University of North Carolina, Wilmington CSC450 Software Engineering WorkFlow Modeling with Activity Diagrams.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
The Unified Modeling Language (UML)
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
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.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Session 1 What Is the UML? Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
Object Oriented Analysis & Design By Rashid Mahmood.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
UML AN OVERVIEW. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of UML.
Modeling Formalism Modeling Language Foundations System Modeling & Assessment Roadmap WG SE DSIG Working Group Orlando – June 2016.
Introduction to UML.
SysML 2.0 Formalism: Requirement Benefits, Use Cases, and Potential Language Architectures Formalism WG December 6, 2016.
SysML v2 Formalism: Requirements & Benefits
University of Central Florida COP 3330 Object Oriented Programming
Proposed SysML v2 Submission Plan
Introduction to UML.
Introduction to the Unified Modeling Language
Software Design Methodologies and Testing
Presentation transcript:

Copyright © 2013 Ivar Jacobson International SA. All rights reserved UML: Once More with Meaning University of Maryland Model-Based System Engineering Colloquium Ed Seidewitz 15 April 2013

UML Prehistory: Object-Oriented Analysis and Design OOAD orthodoxy (c. 1980s): Organize programs to model the basic concepts of the problem domain. Problem: Programming languages (even OOPLs) are not particularly good as problem domain modeling languages. –Too much of a program must focus on implementation details. –As the program grows, the “big picture” gets lost. Solution: Use a graphical modeling notation for analysis and design. –“Model the problem domain” during analysis. –“Model the solution” in problem domain terms during design. –Use the solution model as a “blueprint” for coding. Consequence: “Modeling” in the software community became drawing pictures, for problem domain representation and solution blueprinting. –Precise “meaning” was only to be found in the programs themselves.

Unified Modeling Language v1.x Unified Modeling Language (UML) intended to “unify” the various OOAD graphical modeling languages of the early 1990s – UML 0.9 by Booch, Rumbaugh and Jacobson (“3 amigos”) 1996 – UML 1.0 proposed by Rational 1997 – UML 1.1 adopted by Object Management Group (OMG) The intent of OMG standardization was primarily to allow syntactic interchange of models between tools.

Unified Modeling Language v2.x There was a hope to add semantic interoperability to the UML standard with UML – UML 2.0 Request for Information (RFI) 2000 – UML 2.0 Requests for Proposal (RFPs) 2003 – UML 2.0 Adopted 2005 – UML 2.0 Finalized 2011 – UML Latest formal version “However, the presence of numerous variation points in these semantics (and the fact that they are defined informally using natural language), make it impractical to define this as a formal compliance type, since the number of possible combinations is very large.” –UML Superstructure Specification, v2.0 – 2.4.1

Unified Modeling Language v2.5 The UML 2.5 specification document is reorganized to be “consumable” and to remove redundancy and correct inconsistencies. Primarily focused on semantics descriptions – Future Development of UML RFI 2009 – UML Specification Simplification RFP (UML 2.5) 2012 – UML 2.5 Adopted 2013 – UML 2.5 Finalized (planned) “A tool demonstrating semantic conformance provides a demonstrable way to interpret UML semantics, e.g., code generation, model execution, or semantic model analysis.” –UML 2.5 Specification, Semantic Conformance

Foundational UML (fUML) Foundational UML (fUML) is an executable subset of standard UML that can be used to define, in an operational style, the structural and behavioral semantics of systems – Action Semantics for the UML RFP 2003 – UML 1.5 with action semantics formalized 2003 – UML 2.0 adopted 2005 – Semantics of a Foundational Subset for Executable UML Models RFP 2008 – fUML 1.0 Beta (based on UML 2.2) 2010 – fUML 1.0 Formal (based on UML 2.3) 2012 – fUML 1.1 Beta (based on UML 2.4.1)

Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics fUML Scope Non- Executable Model Semantics The semantics of fUML provide the foundation for formally specifying the (execution) semantics of the rest of UML. Some areas of UML (e.g., use case and requirements models) may not be best formalized based on an executable semantics foundation. Interaction Model Semantics Foundational Semantics fUML operational semantics are specified as an execution model written in fUML itself. Base Semantics The base semantics of the subset of fUML used in the execution model are specified using formal logic.

fUML Key Components Foundational UML Subset (fUML) – A computationally complete subset of the abstract syntax of UML (Version 2.4.1) –Kernel – Basic object-oriented capabilities –Common Behavior – General behavior and asynchronous communication –Activities – Activity modeling, including structured activities (but not including variables, exceptions, swimlanes, streaming or other “higher level” activity modeling) Execution Model – A model of the execution semantics of user models within the fUML subset Foundational Model Library –Primitive Types – Boolean, String, Integer, Unlimited Natural –Primitive Behaviors – Boolean, String and Arithmetic Functions –Basic Input/Output – Based on the concept of “Channels”

Action Language for fUML (Alf) The Action Language for Foundational UML (Alf) is a textual surface representation for UML modeling elements with the primary of acting as the surface notation for specifying executable (fUML) behaviors within an overall graphical UML model – Concrete Syntax for a UML Action Language RFP 2010 – Alf 1.0 Beta (based on UML 2.4 and fUML 1.0) 2013 – Alf Beta (based on UML and fUML 1.1)

Alf Key Components Concrete Syntax – A BNF specification of the legal textual syntax of the Alf language. Abstract Syntax – A MOF metamodel of the abstract syntax tree that is synthesized during parsing of an Alf text, with additional derived attributes and constraints that specify the static semantic analysis of that text. Semantics – The semantics of Alf are defined by mapping the Alf abstract syntax metamodel to the fUML abstract syntax metamodel. Standard Model Library –From the fUML Foundational Model Library Primitive Types (plus Natural and Bit String) Primitive Behaviors (plus Bit String Functions and Sequence Functions) Basic Input/Output –Collection Functions – Similar to OCL collection operations for sequences –Collection Classes – Set, Ordered Set, Bag, List, Queue, Deque, Map

Hybrid SUV Example: Operational States A state machine abstracts system behavior into a finite number of states. The system is modeled as having discrete transitions between the states. A transition may trigger further system behavior… …or system behavior may be dependent on the current state/

Using Alf to Define a State Machine Behavior

Hybrid SUV Example: “Accelerate” Activity An activity specifies behavior as the coordinated execution of a set of subordinate actions. An action in one activity may call another activity. Data and control flow between the various actions.

Hybrid SUV Example: “Provide Power” Activity Other actions provide various data and computational functions.

Using Alf to Specify an Action After a certain level of detail, it is much more convenient to use a textual rather than graphical notation (whether mathematical constraints or procedural action language.)

Using Alf to Define an Activity (1) The original Alf statements can then be preserved in a comment element stereotyped as a «TextualRepresentation». Alf statements in the body of an opaque action may be compiled into an activity.

Using Alf to Define an Activity (2) namespace ‘Hybrid SUV’; private import Alf::Library::IntegerFunctions::Min; activity ProportionPower( in battCond: Integer, in accelPosition: Integer, in speed: Integer, out eThrottle: Integer, out gThrottle: Integer, out transModeCmd: TransModeCommand) { { throttle = (accelPosition * battCond) / GetMaxBattLevel(); eThrottle = Min(throttle, GetMaxEThrottle()); gThrottle = Min(accelPosition - throttle, GetMaxGThrottle()); transModeCmd = new TransModeCommand(); transModeCmd.level = speed / GetTransModeConv(); }

The Goal: Automated Execution and Analysis

Hardware and software engineers develop components to satisfy the requirements. Test engineers develop the test environment to verify the requirements. The Goal: Model Based System Engineering System engineers analyze, simulate and validate the system design, and allocate requirements to components. Using standard- conforming modeling tools Using a standard- conforming model execution tools System engineers create the models Execution artifacts could include: System behavior, timing and statistics Execution artifacts could include: System behavior, timing and statistics Models can include both hardware and software components. Using standard-based model interchange

Implementations fUML Implementations –Open Source Reference Implementation (Academic Free License 3.0) –Cameo Simulation Toolkit for MagicDraw from NoMagic –Advanced Modeling | UML Simulation and Execution (AM|USE) by LieberLieber for Enterprise Architect from Sparx Systems Alf Implementations –Open Source Reference Implementation (GNU General Public License 3.0) –Alf for Papyrus Eclipse UML Tool (Ongoing)

Ongoing Work fUML Version 1.2 Alf Version 1.1 Precise Semantics of UML Composite Structures Additional “Precise Semantics” RFPs –State machines –Interactions –Complete activities/process modeling