CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.

Slides:



Advertisements
Similar presentations
UML an overview.
Advertisements

1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 11 Brief introduction to the UML Specification (Based on UML Superstructure.
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
ESE Einführung in Software Engineering 7. Modeling Behaviour Prof. O. Nierstrasz.
Modeling Main issues: What do we want to build How do we write this down ©2008 John Wiley & Sons Ltd. vliet.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
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.
Object-Oriented Analysis and Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
David Harrison Senior Consultant, Popkin Software 22 April 2004
Unified Modeling Language
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
UML Diagrams Computer Science I.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
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.
Unified Modeling Language, Version 2.0
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: An Aside: The Quickest Tour through the UML that you will ever get.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
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.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 15 System Modeling with the UML.
Unit 1 INTRODUCTION TO MODELING AND CLASS MODEL Ref : L7-UML.PDF.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
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.
An Introduction to the Unified Modeling Language
SWT - Diagrammatics Lecture 4/4 - Diagramming in OO Software Development - partB 4-May-2000.
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,
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)
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 15 The Unified Modeling Language: a Primer.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
Session 1 What Is the UML? Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
Basic Characteristics of Object-Oriented Systems
Unified Modeling Language. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems,
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
UML (Unified Modeling Language)
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Introduction to UML.
UML Diagrams By Daniel Damaris Novarianto S..
Evolution of UML.
Main issues: • What do we want to build • How do we write this down
Object-Oriented Analysis and Design
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Object-Oriented Techniques
Systems Analysis and Design With UML 2
Unified Modeling Language
Systems Analysis and Design With UML 2
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
Software Design Methodologies and Testing
Presentation transcript:

CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language

UML Is a diagrammatic framework for modeling systems Has both syntax and semantics Has formal specifications Can be executed (MDA; Model Driven Architecture) Is NOT a process – it is to support S.E., not replace existing practices Can be used in multiple ways, including informally, and is easily extended Is generally associated with OOP

References 1. deling_Language 2. Dan Pilone & Neil Pitman (2005).UML 2.0 in a nutshell: A desktop quick reference, O'Reilly Media Inc.: Sebastopol, CA, USA.

History Based on 3 distinct OOP modeling methods 1. Booch Method of Grady Booch 2. Object Modeling Technique of James Rumbaugh 3. Objectory by Ivar Jacobson UML 1.0 was released in 1994 UML 1.1 Released in 1997 by Object Management Group UML 2.0 was released in 2005 Currently using released in August 2011 UML 2.5 was released on October 2012 and is "in process"

Uses Capturing and communicating business processes (Domain modeling) Capturing details about a system for requirements or analysis Designing software Documenting existing systems, software, processes, or organizations UML can be used anywhere in S.E. for diagrammatically describing and communicating

Rules of Thumb 1. Nearly everything in UML is optional 2. UML models are rarely complete 3. UML is designed to be open to interpretation (different organisations use it differently) 4. UML is intended to be extended UML is a framework, a set of guidelines, a tool for communicating and explaining things While it can be formal, it doesn't have to be

Power of Practicality Unless being used formally (e.g., Rhapsody, MDA), UML is designed to improve communication It should describe constraints, not impose them Do not let UML limit your thinking, perspectives, analyses, or designs Use it as you need, when you need, how you need

Components UML Infrastructure – low-level, core, bottom-most concepts used by the UML creators to provide the foundation for UML UML Superstructure – 600 pages describing the elements of UML OCL – Object constraint language for writing constraints and expressions in a specific model Data Interchange Specification – an XML schema for sharing UML models between tools

UML Diagrams

Structural Diagrams Perform static modeling Describe the structure of the system, its design, components, parts, pieces Includes attributes and relationships Most of these diagrams can be subsumed as variants of ER diagrams Not designed to capture behaviour, activities, and dynamic concerns More of value in the design phases

UML Structural Diagrams 1. Class Diagrams: The OO class organisation 2. Component Diagrams: Describes how the system is split up into components and shows dependencies between components 3. Composite Structure Diagrams: Describes the internal structure of a class 4. Deployment Diagrams: Describes the hardware and execution environments 5. Package Diagrams: shows how the system is split into logical groupings 6. Object Diagrams: Show a snapshot of the executing (partial) system at a moment in time 7. Profile Diagram (new): Used at Meta-model level (not covered)

1. Class Diagrams Decomposes a system into Objects (classes) representing entities Most commonly used diagram Classes have attributes, of which some provide functionality and are called operations Special relationships exist: Aggregation: "has a," also decomposition Generalisation: "is a," also specialisation Generally limited to OOP paradigms

Basic Class Notation Class name Data Methods

Visibility Class members (data and methods) are preceded with symbols to indicate visibility " + " Public " - " Private " # " Protected " ~ " Package " / " Derived (can be combined with one of the others) Derived data is not stored it is calculated e.g., age = date – birthdate), or obtained in some other way (e.g., from an external sensor)

Relationships Subtypes point to their parents with a hollow arrow (inheritance) Components point to their containing (holder) with a diamond arrow Hollow: Aggregation, part can exist alone Solid: Containment, part cannot exist without holder Other notations exist for other relationships

Class Diagram Example #1

Class Diagram Example #2

Notation Summary

2. Component Diagrams

3.Composite Structure Diagrams

4. Deployment Diagrams

Deployment Diagram Example

5.Package Diagrams

6. Object Diagrams (Snapshot)

UML Behavioural Diagrams Captures interactions among components and users Explores execution, timing, sequencing, control flow, and other dynamic behaviour Focus on functionality instead of structure More of value in requirements analysis and specification phases Can be used in the development of test plans

UML Behavioural Diagrams 8. Use Case Diagrams: Usage scenarios 9. Activity Diagrams: Flowcharts, step-by-step workflows 10. State Machine Diagrams: For systems where behaviour can be shown using state models 11. Interaction Overview Diagrams: Help show how other diagrams are related 12. Communication Diagrams: Interaction in terms of message sequences 13. Sequence Diagrams: Message passing and sequences 14. Timing Diagrams: For RT systems where explicit timing constraints exist

8. Use Cases Represent the system in terms of how it can be used Frequently represented as a set of usage scenarios Good for capturing data flow Customers tend to like these

Use Case Notation (UML)

Use Case Example #1

Use Case Example #2

9. Activity Diagrams Control flow diagrams Based on structured programming of the 1970s Flowcharts (basis for most process diagrams) Can have: hierarchical components, abstractions, decompositions into "swim lanes" (sequences)

Activity Diagram Example #1

Activity Diagram Example #2

Use Case Notation (alternative)

10. State Machine Diagrams

State Machine Example #1

State Machine Example #2

11. Interaction Overview Diagram

12. Communication Diagrams

Communication Diagram Example

13. Sequence Diagrams

Sequence Diagram Example #1

Sequence Diagram Example #2

14. Timing Diagrams

Effective Diagramming Know your purpose – Modeling (complete, precise, detailed) vs. Communication (partial, concise, clear, focused) Let your diagram speak when you can't – its a form of documentation that may be used without you to explain it Limit the number of abstractions in each diagram to 1 Don't feel limited by UML – if not using MDA then do whatever is needed to get the ideas across

Abuse the Notation You can merge the ideas if you want Mix'n match parts'n pieces