A Brief Introduction Acknowledgements The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee and Jeff Kramer The Unified Modeling Language, 2nd edition, by James Rumbaugh, Ivar Jacobson, and Grady Booch Definition Abstraction Meaning Purpose Contents Definition A representation in a medium of something in the same or another medium Captures important aspects Convenient for working Take various forms Definition A representation in a medium of something in the same or another medium Captures important aspects Convenient for working Takes various forms Definition A representation in a medium of something in the same or another medium Captures important aspects Convenient for working Takes various forms Definition A representation in a medium of something in the same or another medium Captures important aspects Convenient for working Take various forms Purpose To capture and precisely state requirements and domain knowledge To think about the design of a system To capture design decisions in a mutable form Purpose To capture and precisely state requirements and domain knowledge To think about the design of a system To capture design decisions in a mutable form Purpose To capture and precisely state requirements and domain knowledge To think about the design of a system To capture design decisions in a mutable form Purpose To generate usable work products To organize, find, filter, retrieve, examine, and edit information about large systems To explore multiple solutions To master complex systems Purpose To generate usable work products To organize, find, filter, retrieve, examine, and edit information about large systems To explore multiple solutions To master complex systems Purpose To generate usable work products To organize, find, filter, retrieve, examine, and edit information about large systems To explore multiple solutions To master complex systems Purpose To generate usable work products To organize, find, filter, retrieve, examine, and edit information about large systems To explore multiple solutions To master complex systems Abstraction Different forms Different levels of abstraction Various purposes Levels of Abstraction Guides to the thought process Abstract specifications of the essential structure of a system Full specifications of a final system Exemplars of typical or final systems Complete or partial description of systems Levels of Abstraction Guides to the thought process Abstract specifications of the essential structure of a system Full specifications of a final system Exemplars of typical or final systems Complete or partial description of systems Levels of Abstraction Guides to the thought process Abstract specifications of the essential structure of a system Full specifications of a final system Exemplars of typical or final systems Complete or partial description of systems Levels of Abstraction Guides to the thought process Abstract specifications of the essential structure of a system Full specifications of a final system Exemplars of typical or final systems Complete or partial description of systems Levels of Abstraction Guides to the thought process Abstract specifications of the essential structure of a system Full specifications of a final system Exemplars of typical or final systems Complete or partial description of systems Content Semantic Information Captures meaning of an application Used for code generation, validation, etc Visual Presentation Notations Guide human understanding of a model Context Meaning Abstraction vs. Detail Specification vs. Implementation Description vs. Instance Variations in interpretation A Brief Summary UML History Goals of UML UML Views A Brief Summary General-purpose visual modeling language for discrete system Captures information about the static structure and dynamic behavior of a system Contains organizational constructs for arranging models into packages NOT primarily a programming language A Brief Summary General-purpose visual modeling language for discrete system Captures information about the static structure and dynamic behavior of a system Contains organizational constructs for arranging models into packages NOT primarily a programming language A Brief Summary General-purpose visual modeling language for discrete system Captures information about the static structure and dynamic behavior of a system Contains organizational constructs for arranging models into packages NOT primarily a programming language A Brief Summary General-purpose visual modeling language for discrete system Captures information about the static structure and dynamic behavior of a system Contains organizational constructs for arranging models into packages NOT primarily a programming language UML History Fusion [Coleman-94] Included concepts from: ○ OMT [Rumbaugh-91] ○ Booch [Booch-94] ○ CRC [Wirfs-Brock-90] Rational Software, Rumbaugh & Booch Combined OMT & Booch methods Jacobson join Rational group ○ UML draft 1996, OMG issues rfp for standard approach to OO modeling UML results UML History Fusion [Coleman-94] Included concepts from: ○ OMT [Rumbaugh-91] ○ Booch [Booch-94] ○ CRC [Wirfs-Brock-90] Rational Software, Rumbaugh & Booch Combined OMT & Booch methods Jacobson join Rational group ○ UML draft 1996, OMG issues rfp for standard approach to OO modeling UML results UML History Fusion [Coleman-94] Included concepts from: ○ OMT [Rumbaugh-91] ○ Booch [Booch-94] ○ CRC [Wirfs-Brock-90] Rational Software, Rumbaugh & Booch Combined OMT & Booch methods Jacobson join Rational group ○ UML draft 1996, OMG issues rfp for standard approach to OO modeling UML results Goals of UML General-purpose modeling language Non-proprietary Support good design practices Encapsulation Separation of concerns Address development issues Large-scale Distribution Concurrency Patterns Team development Goals of UML General-purpose modeling language Non-proprietary Support good design practices Encapsulation Separation of concerns Address development issues Large-scale Distribution Concurrency Patterns Team development Goals of UML General-purpose modeling language Non-proprietary Support good design practices Encapsulation Separation of concerns Address development issues Large-scale Distribution Concurrency Patterns Team development Goals of UML General-purpose modeling language Non-proprietary Support good design practices Encapsulation Separation of concerns Address development issues Large-scale Distribution Concurrency Patterns Team development UML Views 4 Areas Structural classification Dynamic behavior Physical layout Model Management UML Views A subset of UML modeling constructs Represents one aspect of a system One or two kinds of diagrams provide a visual notation for the concepts in each view UML Views Structural Static View Design View Use Case View Dynamic Physical Model Management Class Diagram association class dependency generalization interface realization UML Views Internal Structure Collaboration Diagram Structural Static View Design View Use Case View Dynamic Physical Model Management Component Diagram connector interface part port provided interface role required interface collaboration collaboration use component dependency realization subsystem UML Views Structural Static View Design View Use Case View Dynamic Physical Model Management Use Case Diagram actor association extend include use case use case generalization UML Views Structural Dynamic State Machine View Activity View Interaction View Physical Model Management State Machine Diagram completion transition do activity effect event region state transition trigger UML Views Structural Dynamic State Machine View Activity View Interaction View Physical Model Management Activity Diagram action activity control flow control node data flow exception expansion region fork join object node pin UML Views Sequence Diagram Communication Diagram Structural Dynamic State Machine View Activity View Interaction View Physical Model Management occurrence specification execution specification interaction interaction fragment interaction operand lifeline message signal collaboration guard condition role sequence number UML Views Structural Dynamic Physical Deployment View Model Management Deployment Diagram artifact dependency manifestation node UML Views Structural Dynamic Physical Model Management Model Management View Profile Package Diagram import model package constraint profile stereotype tagged value Review Modeling Models have several abstract levels Models takes various forms UML History Four concept areas and corresponding views