Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.

Slides:



Advertisements
Similar presentations
7M701 1 Information Systems Modelling and Design with.
Advertisements

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
CS 340 UML Class Diagrams. A model is an abstraction of a system, specifying the modeled system from a certain viewpoint and at a certain level of abstraction.
Unified Modeling Language
CS3773 Software Engineering Lecture 03 UML Use Cases.
Object-Oriented Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
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.
Unified Modeling (Part I) Overview of UML & Modeling
7M822 UML Introduction 7 September 2010.
1 © Wolfgang Pelz UML UML Unified Modeling Language.
Itntroduction to UML, page 1 Introduction to UML.
Unified Modeling Language (UML)
UML and Object Oriented Concepts
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
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.
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
UML What Is the UML? The Unified Modeling Language (UML) is the successor to the wave of object- oriented analysis and design (OOA&D) methods.
Object-Oriented Analysis and Design Fall 2009.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Engineering 5895: Software Design 9/11/01Class Diagrams 1.
UML Diagrams A tool for presentation of Architecture.
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.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Design Model Lecture p6 T120B pavasario sem.
Lab 5 CPIT 250 System Analysis and Design.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
UML: A notation for capturing work products
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
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.
1 Unified Modeling Language, Version 2.0 Chapter 2.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Unified OO becomes commonly used in the late 1980s Various analysis and design methods The “three amigos” join forces in Rational Software Also include.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
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.
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
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 (Unified Modeling Language)
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Modeling with UML – Class Diagrams
Introduction to UML.
Object-Oriented Modeling with UML
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Systems Analysis and Design With UML 2
Introduction to Unified Modeling Language (UML)
Introduction to Unified Modeling Language (UML)
University of Central Florida COP 3330 Object Oriented Programming
Unified Modeling Language
Introduction to UML.
Software Design Methodologies and Testing
Presentation transcript:

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language for design Motivation Syntax and Semantics

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Software is invisible  Invisibility is an inherent, not accidental, property of software Brooks: ‘No Silver Bullet-Essence and Accidents of Software Engineering’  We have a strong visual and spatial perception.  Software is multi-dimensional and does not lend itself easily to a single 2D or 3D diagrammatic form.

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Need for communication  Communication about software  Generating ideas: Sketch  Work division: Blueprint  Time passes: Documentation

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science UML history  Booch: Booch notation 1994  language design, focus on structural aspects esp. inheritance  Rumbaugh et al.: OMT 1991  background in database and Entity Relation modeling  Jacobson: OOSE 1992  use cases / requirements  Unified Modeling Language 1997  unified means ”joint effort instead of wars”

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science UML is a language  ”A language provides a vocabulary and the rules for combining words […] for the purpose of communication. A modeling language is a language whose vocabulary and rules focus on the conceptual and physical representation of a system. A modeling language such as the UML is thus a standard language for software blueprints.” Booch, Jacobson, and Rumbaugh: ‘UML user guide’

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science UML uses  UML is used to  document designs  design patterns / frameworks  represent different views/aspects of design  static / dynamic / deployment / modular aspects  provide a next-to-precise, common, language  for the benefit of analysis, discussion, comprehension…

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science UML and Abstraction  Abstraction takes precedence over precision!  20/80 rule  aim is overview and comprehension; not execution

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Diagram types  UML has a Zoo of different diagrams, each with their own syntax and semantics:  class diagram  object diagram  use case diagram  sequence diagram  communication diagram  interaction diagram We will not cover all!  package diagram  state diagram  activity diagram  component diagram  deployment diagram

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Class diagram  Focus: Classes and their relations.  classes  attributes  methods  relations  generalization  association  multiplicity  roles  navigability

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Exercise  What does it actually mean to have a 1-* relation between classes?

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Perspective  Programs often require phenomena and concepts that cannot be found in the modeled world.  Fowler expresses this as a perspective in the models:  Conceptual perspective  Software perspective (specification & implementation)

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science 1 diagram – 2 perspectives  Conceptual perspective  Focus on the domain: building a vocabulary  Phenomena, concepts and their relations  Forget the software to be written!  Software perspective  The elements maps pretty directly to elements in a software system.  Add concepts directed at program execution.  Focus on specification/interface (what) or implementation (how).

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Object diagram  Focus: Objects and their relations

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Contracts and roles  Subclass when you want to inherit code else subtype using interfaces.  Think in terms of contracts and responsibility!

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science A note on class diagrams  Class diagrams can easily be overloaded with implementation information.  I prefer to  Mostly ignore the attribute and method boxes in software perspective (and definitely in conceptual perspective) and…  to express behavior in terms of responsibilities

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Lollipop notation  Interfaces have an alternative notation.

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Additional notation  Notes allow us to add useful but non-standard information anywhere. for each shape { shape.draw(); } Drawing draw()

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Discussion  What are the differences between class diagrams and object diagrams?  What aspects of a system are best described by either?

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Exercise  Consider the following diagram:  I cannot create such an association in some UML CASE Tools because the association cannot be expressed by the underlying code.  Is it thus not legal UML? > Iterator > Matrix *

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Sequence diagrams  Focus: Collaboration and behavior  objects  invocations  activations  Overview!  Relation to use cases: a single scenario

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Exercises  Compare sequence- and class diagrams.  How comprehensive are the diagrams? (what percentage of the full system do they describe)  How would you mechanical compute a diagram?  class diagram?  sequence diagram?  Which is easier to compute from source code?  Which is most important?

Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Summary  UML is a modeling language for describing software systems.  Class diagrams describe static relations between abstractions: interfaces and classes.  Object diagrams describe dynamic relations between concrete objects  Sequence diagrams describe dynamics of scenarios during execution