Object Modeling with OMG UML Introduction to UML

Object Modeling with OMG UML: Introduction to UML Tutorial from Object Management Group (OMG) August 2002

Quick Tour n n n Why do we model? What is the UML? Foundation elements. Unifying concepts. Language architecture. Relation to other OMG technologies. Introduction to UML 2

Why do we model? n n n Provide structure for problem solving Experiment to explore multiple solutions Furnish abstractions to manage complexity Reduce time-to-market for business problem solutions Decrease development costs Manage the risk of mistakes Introduction to UML 3

Why do we model graphically? n Graphics reveal data. n Edward Tufte The Visual Display of Quantitative Information, 1983 n 1 bitmap = 1 megaword. n Anonymous visual modeler Introduction to UML 4

Quick Tour of UML n The UML is a graphical language for n n specifying visualizing constructing documenting the artifacts of software systems in OO paradigm. n n Added to the list of OMG adopted technologies in November 1997 as UML 1. 1 Most recent minor revision is UML 1. 3 (1999), UML 1. 5 (2001) and major revision in UML 2. 0 (2002). Introduction to UML 5

UML Goals n n n Define an easy-to-learn but semantically rich visual modeling language Unify the Booch, OMT, and Objectory modeling languages Include ideas from other modeling languages Incorporate industry best practices Address contemporary software development issues n n n scale, distribution, concurrency, executability, etc. Provide flexibility for applying different processes Enable model interchange and define repository interfaces Introduction to UML 6

OMG UML Evolution Introduction to UML 7

OMG UML Contributors Aonix Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard IBM I-Logix In. Line Software Intellicorp Kabira Technologies Klasse Objecten Lockheed Martin Microsoft Objec. Time Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Software Sun Taskon Telelogic Unisys … Introduction to UML 8

OMG UML Specification n n n UML Summary UML Semantics UML Notation Guide UML Standard Profiles n Software Development Processes n Business Modeling UML CORBAfacility Interface Definition UML XML Metadata Interchange DTD Object Constraint Language Introduction to UML 9

Tutorial Focus: the Language n language = syntax + semantics n n syntax = rules by which language elements (e. g. , words) are assembled into expressions (e. g. , phrases, clauses) semantics = rules by which syntactic expressions are assigned meanings n UML Notation Guide – defines UML’s n UML Semantics – defines UML’s graphic syntax semantics Introduction to UML 10

Foundation Concepts Building blocks n Well-formedness rules n ØNo Mathematical Formalism has been deployed and so UML is SEMI-FORMAL language. Introduction to UML 11

Building Blocks n The basic building blocks of UML are: n n model elements (classes, interfaces, components, use cases, etc. ) relationships (associations, generalization, dependencies, etc. ) diagrams (class diagrams, use case diagrams, interaction diagrams, etc. ) Simple building blocks are used to create large, complex structures n n cf. elements, bonds and molecules in chemistry cf. components, connectors and circuit boards in hardware Introduction to UML 12

Diagram: Classifier View Introduction to UML 13

Diagram: Instance View Introduction to UML 14

Well-Formedness Rules n n Well-formed: indicates that a model or model fragment adheres to all semantic and syntactic rules that apply to it. UML specifies rules for: n n n naming scoping visibility integrity execution (limited) However, during iterative, incremental development it is expected that models will be incomplete and inconsistent at the earlier stage. Introduction to UML 15
![Well-Formedness Rules n (cont’d) Example of semantic rule: Class [1] n n English: If Well-Formedness Rules n (cont’d) Example of semantic rule: Class [1] n n English: If](http://slidetodoc.com/presentation_image_h/a2f4e58b56f7cbcf8457ed9e7790bfe8/image-16.jpg)
Well-Formedness Rules n (cont’d) Example of semantic rule: Class [1] n n English: If a Class is concrete, all the Operations of the Class should have a realizing Method in the full descriptor. OCL: not self. is. Abstract implies self. all. Operations-> for. All (op | self. all. Methods-> exists (m | m. specification-> includes(op))) Introduction to UML 16

Well-Formedness Rules n Example of syntactic rules: Class n n n (cont’d) Basic Notation: A class is drawn as a solid-outline rectangle with three compartments separated by horizontal lines. Presentation Option: Either or both of the attribute and operation compartments may be suppressed. Example of syntactic guideline: Class n Style Guideline: Begin class names with an uppercase letter. Introduction to UML 17

Unifying Concepts n classifier-instance dichotomy n n specification-realization dichotomy n n e. g. , an object is an instance of a class OR a class is the classifier of an object e. g. , an interface is a specification of a class OR a class is a realization of an interface analysis-time vs. design-time vs. run-time n n modeling phases (“process creep”) usage guidelines suggested, not enforced Introduction to UML 18

Language Architecture Metamodel architecture n Package structure n Introduction to UML 19

Metamodel Architecture Introduction to UML 20

Package Structure Introduction to UML 21

Relation to Other OMG Technologies Introduction to UML 22

Structural Modeling n n n What is structural modeling? Core concepts Diagram tour When to model structure Modeling tips Introduction to UML 23

What is structural modeling? n Structural model: a view of an system that emphasizes the structure of the objects, including their classifiers, relationships, attributes and operations. Introduction to UML 24

Structural Modeling: Core Elements Introduction to UML 25

Structural Modeling: Core Elements (cont’d) ¹ An extension mechanism useful for specifying structural elements. OCL is devised for the purpose. Introduction to UML 26

Structural Modeling: Core Relationships Introduction to UML 27

Structural Modeling: Core Relationships (cont’d) Introduction to UML 28

Structural Diagram Tour n Show the static structure of the model n the entities that exist (e. g. , classes, interfaces, components, nodes) internal structure relationship to other entities n temporal information n static structural diagrams n n Do not show Kinds n n n class diagram object diagram implementation diagrams n n component diagram deployment diagram Introduction to UML 29

Static Structural Diagrams Shows a graph of classifier elements connected by static relationships. n kinds n class diagram: classifier view n object diagram: instance view n Introduction to UML 30

Classes Fig. 3 -17, UML Notation Guide Introduction to UML 31

Classes: compartments with names Fig. 3 -20, UML Notation Guide Introduction to UML 32

Classes: method body Fig. 3 -21, UML Notation Guide Introduction to UML 33

Interfaces Fig. 3 -24, UML Notation Guide Introduction to UML 34

Associations Fig. 3 -31, UML Notation Guide Introduction to UML 35

Association Ends Fig. 3 -32, UML Notation Guide Introduction to UML 36

Ternary Associations Fig. 3 -31, UML Notation Guide Introduction to UML 37

Composition Fig. 3 -36, UML Notation Guide Introduction to UML 38

Composition Fig. 3 -36, UML Notation Guide Introduction to UML 39

Generalization Fig. 3 -38, UML Notation Guide Introduction to UML 40

Generalization Fig. 3 -39, UML Notation Guide Introduction to UML 41

Dependencies Fig. 3 -41, UML Notation Guide Introduction to UML 42

Dependencies Fig. 3 -42, UML Notation Guide Introduction to UML 43

Objects Fig. 3 -29, UML Notation Guide Introduction to UML 44

Composite objects Fig. 3 -30, UML Notation Guide Introduction to UML 45

Links Fig. 3 -37, UML Notation Guide Introduction to UML 46

Constraints and Comments Fig. 3 -15, UML Notation Guide Introduction to UML 47

Implementation Diagrams Show aspects of model implementation, including source code structure and run-time implementation structure n Kinds n component diagram n deployment diagram n Introduction to UML 48

Component Diagram Shows the organizations and dependencies among software components n Components include n source code components n binary code components n executable components n Introduction to UML 49

Components Fig. 3 -84, UML Notation Guide Introduction to UML 50

Component Diagram Fig. 3 -81, UML Notation Guide Introduction to UML 51

Deployment Diagram n n Shows the configuration of run-time processing elements and the software components, processes and objects that live on them Deployment diagrams may be used to show which components may run on which nodes Introduction to UML 52

Deployment Diagram Fig. 3 -82, UML Notation Guide Introduction to UML 53

Deployment Diagram (cont’d) Fig. 3 -83, UML Notation Guide Introduction to UML 54

When to model structure n Adopt an opportunistic top-down+bottom-up approach to modeling structure n n n Specify the top-level structure using “architecturally significant” classifiers and model management constructs (packages, models, subsystems) Specify lower-level structure as you discover detail re classifiers and relationships If you understand your domain well you can frequently start with structural modeling; otherwise n n If you start with use case modeling (as with a use-case driven method) make sure that your structural model is consistent with your use cases If you start with role modeling (as with a collaboration-driven method) make sure that your structural model is consistent with your collaborations [Will see in next tutorial] Introduction to UML 55

Structural Modeling Tips n n Define a “skeleton” (or “backbone”) that can be extended and refined as you learn more about your domain. Focus on using basic constructs well; add advanced constructs and/or notation only as required. Defer implementation concerns until late in the modeling process. Structural diagrams should n n n emphasize a particular aspect of the structural model contain classifiers at the same level of abstraction Large numbers of classifiers should be organized into packages. Introduction to UML 56

Use Case Modeling n n n What is use case modeling? Core concepts Diagram tour When to model use cases Modeling tips Example: Online HR System Introduction to UML 57

What is use case modeling? n use case model: a view of a system that emphasizes the behavior as it appears to outside users. A use case model partitions system functionality into transactions (‘use cases’) that are meaningful to users (‘actors’). Introduction to UML 58

When to model use cases n n n Model user requirements with use cases. Model test scenarios with use cases. If you are using a use-case driven method n n start with use cases and derive your structural and behavioral models from it. If you are not using a use-case driven method n make sure that your use cases are consistent with your structural and behavioral models. Introduction to UML 59

Use Case Modeling: Core Elements Introduction to UML 60

Use Case Modeling: Core Relationships <<extend>> Introduction to UML 61

Use Case Modeling: Core Relationships (cont’d) <<include>> Introduction to UML 62

Use Case Diagram Tour n n n Shows use cases, actor and their relationships Use case internals can be specified by text and/or interaction diagrams Kinds n n use case diagram use case description Introduction to UML 63

Use Case Diagram Fig. 3 -44, UML Notation Guide Introduction to UML 64

Use Case Relationships Fig. 3 -45, UML Notation Guide Introduction to UML 65

Actor Relationships Fig. 3 -46, UML Notation Guide Introduction to UML 66

Example: Online HR System USE CASE DESCRIPTION: n. Actors : employee, employee account db, healthcare plan system, insurance plan system n. Preconditions: Employee has logged on to the system and selected ‘update benefits’ option. Possible only in the month of October. · n. Basic · course System retrieves employee account from employee account db System asks employee to select medical plan type; include Update Medical Plan. · System asks employee to select dental plan type; include Update Dental Plan. · … · n. Alternative courses If health plan is not available in the employee’s area the employee is informed and asked to select another plan. . . · Introduction to UML 67

Example: Online HR System Introduction to UML 68

Online HR System: Use Case Relationships Introduction to UML 69

Use Case Description: Change Flight n. Actors: traveler, client account db, airline reservation system n. Preconditions: Traveler has logged on to the system and selected ‘change flight itinerary’ option · n. Basic course System retrieves traveler’s account and flight itinerary from client account database · System asks traveler to select itinerary segment she wants to change; traveler selects itinerary segment. · System asks traveler for new departure and destination information; traveler provides information. · If flights are available then · … · System displays transaction summary. · n. Alternative · courses If no flights are available then … Introduction to UML 70

Use Case Modeling Tips n n n Make sure that each use case describes a significant chunk of system usage that is understandable by both domain experts and programmers When defining use cases in text, use nouns and verbs accurately and consistently to help derive objects and messages for interaction diagrams (see Lecture 2) Factor out common usages that are required by multiple use cases n n n A use case diagram should n n n If the usage is required use <<include>> If the base use case is complete and the usage may be optional, consider use <<extend>> contain only use cases at the same level of abstraction include only actors who are required Large numbers of use cases should be organized into packages (see Lecture 4) Introduction to UML 71

Ideas to Take Away n n n UML is effective for modeling large, complex software systems It is simple to learn for most developers, but provides advanced features for expert analysts, designers and architects using object oriented paradigm. It can specify systems in an implementationindependent manner 10 -20% of the constructs are used 80 -90% of the time Structural modeling specifies a skeleton that can be refined and extended with additional structure and behavior Use case modeling specifies the functional requirements of system in an object-oriented manner Introduction to UML 72

References n OMG UML Specification v. 1. 5, OMG doc# ad/03 -03 -2001. Introduction to UML 73

Further Info n Web: n OMG UML Resources: www. omg. org/uml/ Introduction to UML 74
- Slides: 74