Introduction to the Unified Modeling Language€¦ · 1. Background 2 Informal Description of UML...

Post on 10-Aug-2020

8 views 0 download

Transcript of Introduction to the Unified Modeling Language€¦ · 1. Background 2 Informal Description of UML...

Introduction to theUnified Modeling Language (UML)

Martin GogollaUniversity of Bremen, Computer Science Department

Database Systems Group, http://www.db.informatik.uni-bremen.de

1. Background

1. Background 2

Informal Description of UMLExplanation 1 (Unified Modeling Language)• is a general purpose visual modeling language

• is designed to specify visualize, construct, and document theartifacts of software systems as well as for business modeling andother non-software systems

• is simple and powerful

• is based on a small number of core concepts that mostobject-oriented developers can easily learn and apply

• core concepts can be combined and extended so that expertobject modelers can define large and complex systems across awide range of domains

1. Background 3

Explanation 2 (Primary goals in design of UML)• provide users a ready-to-use, expressive visual modeling language

so they can develop and exchange meaningful models

• provide extensibility and specialization mechanisms to extend thecore concepts

• be independent of particular programming languages anddevelopment processes

• provide a formal basis for understanding the modeling language

• encourage growth of OO tools market

• support higher-level development concepts such as collaborations,frameworks, patterns, and components

• integrate best practices

1. Background 4

Explanation 3(Benefits of using UML for formal methods)• less time for explaining the notation

• document signatures and axioms with UML diagrams

• document the described system structure and behaviorwith UML diagrams

• think about formal specifications in a different language

• use Object Constraint Language OCL as a vehicle fortransporting other notations

1. Background 5

Benefits of using UML for formal methods (cont’d)• tunable to special needs because it is a language

independent from a software process model

• speak the same language as people in industrialapplications (with the obvious danger that the twoparties talk about different things→ use only a minmalUML subset and explain the semantics)

• way of bringing formal methods and industrialapplications closer together

1. Background 6

Development of UML

OOAD

OMT

OOSE

UMLSubmission

OMG

UMLStandard

UML’97

UML’98 UML’99 . . .

2. UML by Example

2.1 Nine Diagram Forms 8

2.1 Nine Diagram Formsfollowing the Notation Guide

• Static structure diagrams◦ (1) Class and (2) Object diagrams

• (3) Use case diagrams

• Interaction diagrams◦ (4) Sequence and (5) Collaboration diagrams

• (6) Statechart diagrams

• (7) Activity diagrams

• Implementation diagrams◦ (8) Component and (9) Deployment diagrams

2.1 Nine Diagram Forms 9

Use Case Diagram

2.1 Nine Diagram Forms 10

Class Diagram

2.1 Nine Diagram Forms 11

Object Diagram

2.1 Nine Diagram Forms 12

Sequence Diagram

2.1 Nine Diagram Forms 13

Collaboration Diagram

2.1 Nine Diagram Forms 14

Statechart Diagram

2.1 Nine Diagram Forms 15

Activity Diagram

2.1 Nine Diagram Forms 16

Component Diagram

2.1 Nine Diagram Forms 17

Deployment Diagram

2.2 TROLL light 18

2.2 TROLL light• intended to specify an information system as a

community existing and interacting objects

• intends to coherently describe structure and behaviourof objects

• incorporates ideas from semantic data models, processtheory, and abstract data types

• has set-theoretic semantics based on transitionsystems

• is supported by an animation system with web-baseduser interface

2.2 TROLL light 19

Crossing System

South�North �

West

Eas

t

2.2 TROLL light 20

TEMPLATE TrafficLightDATA TYPES Int, Bool;ATTRIBUTES Phase : int;

DERIVED Red, Yellow, Green : bool;EVENTS BIRTH createLight(initPhase:int);

switchLight;CONSTRAINTS 1<=Phase AND Phase<=3;VALUATION [createLight(initPhase)] Phase=initPhase;

[switchLight] Phase=(Phase MOD 3)+1;DERIVATION Red = (Phase=1);

Yellow = (Phase=3);Green = (Phase=2 OR Phase=3);

BEHAVIOR PROCESS TrafficLight =( createLight -> LightLife );

PROCESS LightLife =( switchLight -> LightLife );

END TEMPLATE

2.2 TROLL light 21

TEMPLATE ControlDATA TYPES Int;TEMPLATES TrafficLight;SUBOBJECTS West, East, North, South : trafficLight;ATTRIBUTES Phase : int;EVENTS BIRTH createControl;

createLights;switchControl;

VALUATION [createControl] Phase=4;[switchControl] Phase=(Phase MOD 4)+1;

CONSTRAINTS 1<=Phase AND Phase<=4;West.Phase=East.Phase;North.Phase=South.Phase;West.Phase<>North.Phase;NOT(West.Green AND North.Green);NOT(West.Red AND North.Red);

2.2 TROLL light 22

INTERACTION createLights >> West.createLight(3),East.createLight(3),North.createLight(1),South.createLight(1);

{Phase=4 OR Phase=2} switchControl >>West.switchLight,North.switchLight;

{Phase=1} switchControl >> North.switchLight;{Phase=3} switchControl >> West.switchLight;West.switchLight >> East.switchLight;North.switchLight >> South.switchLight;

BEHAVIOR PROCESS Control =(createControl -> CreateLights);

PROCESS CreateLights =(createLights -> ControlLife);

PROCESS ControlLife =(switchControl -> ControlLife);

END TEMPLATE

2.3 UML Diagrams for TROLL light Example 23

2.3 UML Diagrams for TROLL light Example

To follow

• examples from crossing scenario for the nine diagramforms

• demonstrating UML diagram variety and emphasizingdifferent aspects

• description of general goal of respective diagram form

• quotations taken from UML Notation Guide

2.3 UML Diagrams for TROLL light Example 24

Class Diagram for Object Types

1�

1

1�

1

1�

1

TrafficLight�Phase:int�/Red, /Yellow� , /Green:bool

createLight(initPhase:int)switchLight

Control

Phase:int�createControl�createLights�switchControl�

East� North� South�West�

1�

1

2.3 UML Diagrams for TROLL light Example 25

Explanation 4 (Class diagrams)• show static structure of the model

• in particular, things that exist (such as classes andtypes), their internal structure, and their relationships toother things

• do not show temporal information

• although they may contain reified occurences of thingsthat have or things that describe temporal behavior

• are graphs of classifier elements connected by theirvarious static relationships

2.3 UML Diagrams for TROLL light Example 26

Class Diagram for Data Types

+(i:int,j:int):int, mod(i:int,j:int):int, ...�-(i:int):int, abs(i:int):int, ...�

Bool�

false():bool, true():bool, ...�not(b:bool):bool, ...�and(b1:bool,b2:bool):bool, ...�

Int�

0():int, ...�succ(i:int):int, pred(i:int):int=(i:int,j:int):bool, <>(i:int,j:int):bool, ...�

2.3 UML Diagrams for TROLL light Example 27

Class Diagram with Graphical Nesting for Composition

Control

West:TrafficLight

East:TrafficLight

North:TrafficLight

South:TrafficLight

1

1

1

1

2.3 UML Diagrams for TROLL light Example 28

Object Diagram

West:TrafficLight

/Red=false/Yellow=false/Green=true

South:TrafficLight

/Red=true/Yellow=false/Green=false

East:TrafficLight

/Red=false/Yellow=false/Green=true

:Control�

North:TrafficLight

/Red=true/Yellow=false/Green=false

2.3 UML Diagrams for TROLL light Example 29

Explanation 5 (Object diagrams)• show instances compatible with a particular classdiagram

• are graphs of instances, including objects and datavalues

• are instances of a class diagram (see Expl. 3)

• show a snapshot of detailed state of a system at apoint in time

2.3 UML Diagrams for TROLL light Example 30

Use Case Diagram

generate traffic lights

switch traffic control

generate control

Engineer

Operator

Crossing�

2.3 UML Diagrams for TROLL light Example 31

Explanation 6 (Use case diagrams)• show relationship among actors and use cases within a system

• represent functionality of a system or a class as manifested toexternal interactors

• are graph of actors, a set of use cases enclosed by a systemboundary, communication (participation) associations betweenactors and use cases, and generalizations among use cases

• show coherent units of functionality provided by a system or classas manifested by sequences of messages exchanged among thesystem and one or more outside interactors (called actors)together with actions performed by the system

2.3 UML Diagrams for TROLL light Example 32

Sequence Diagram

����� ����� ����������

����� ��������� � ��� !�"�# $�%�&�'�# ( &�$ )�*�+ ,�-�.0/1+ 2 .�, 354 6 7�8�9�:�6 ; 9�7

<�=�> ?�@A�B CD�?�E�C�F

G�H�I J�K�L�M�I N L�J O�P�Q R�S�T�U�Q V T�R

W�X�Y Z�[\�] ^_�Z�`�^�a

b�c�d e�f�g�h�d i g�e j�k�l m�n�o�p�l q o�m r�s�t u�v�w0x1t y w�u z5{ | }�~�����| � ��}

����� ������ ����������

����� �����0�1� � ��� �5� � ��������� � ���

�����  �¡�¢�£�� ¤ ¢�  ¥�¦�§ ¨�©�ª�«�§ ¬ ª�¨ ­�®�¯ °�±�²0³1¯ ´ ²�° µ5¶ · ¸�¹�º�»�· ¼ º�¸

½�¾�¿ À�ÁÂ�à ÄÅ�À�Æ�Ä�Ç

ÈÊÉ�Ë�ÌÎÍ�Ï�Ë�Ð

ÑÓÒÔ�Õ Ö�×�ØÚÙ�Û ÜÓÝ�Þ�ß�àáãâåä�æ

ç�è�éëêåì�éëí�î�ï�ì�è�îð

ñ�ò�óåôëõ�ó�ö1÷ ø ù�õûúüý�þëÿ���þ���� ����� ���

��������������� ������ �"! #�$�%�&�'�%�(�) *�+'�,.-0/

1�2�3�4�5�3�6�7 8�95�:.;0<

2.3 UML Diagrams for TROLL light Example 33

Sequence Diagram Part 1

����������� ������ ������������ ������� �������! #"%$&�(')"*� +�,�-�.�/0�1 -�2�0*.

3�4�5�6�7#8 9;:=<>6@?A:�B

CED;F=G�H@IAF)J

KML NPO QSR�TVU@W XZY�[�\@]^ _a`cb

deAfag&h�fji;k�l�h@eAk�m

n#oAprq&s�p=t u�v�w�s�xyzA{a|&}�{�~&�����*}���� �

��A�a�&�����&�(�)�*�����a� ��A�a�&�����&�(�)�*�����c�

 ¡A¢a£&¤�¢�¥&¦(§)¨*¤�©�ªc«

2.3 UML Diagrams for TROLL light Example 34

Sequence Diagram Part 2

����������� �

������� ��������� � ��!#"$% &('*)

+-,�.0/213.54�6�7�1�,�6�8

9;:�<0=2>?<A@(BDC�E#>�FG;H�I0J2K3I�L(MDN OPKRQRS�T

U-V�W0XZY?W�[(\D] ^PY_R`(a b-c�d0e2f3d�g(hDi jPfkmlon

p-q�r0s2t3r�u(vDw xPtymzo{

|~}����?�;�Z�������������

�~�����?�;���(�D� �P� �������3�-�5�Z�����#�

���� �¡?¢;£(¤�¥ ¦P¡§�¥ ¨

©�ª�«�¬3­-®5¯Z«�°�®#¬ ±�²�³�´3µ-¶5·Z³�¸�¶#´ ¹�º�»�¼?½;¾�¿(»DÀ ¾P¼ Á~Â�Ã�Ä?Å;Æ�Ç(ÃDÈ ÆPÄ

2.3 UML Diagrams for TROLL light Example 35

Sequence Diagram Part 3

�������������

������ �������� �������! " #%$'&

(*)�+%,.-/+10�2�3�-)�2�4

5*6�7%8.9/7;:.<>=�?@9�AB*C�D%E.F/D;G.HJILK@FNMNO%P

Q*R�SUTWV/S;X�Y>ZL[@VN\N]%^ _*`�a%b.c/a;d.eJfLg@cNhji'k

l*m�n%o.p/n;q.rJsLt@pNujv'w

xzy|{~}/�*��������}�����

�z�|�~�/�*���.�J�L�@� �z�|�~�/�*���.�J�L�@� ���|���/�*� ���>¡���� ¢z£|¤~¥§¦©¨�ª�¤>«L¨@¥

¬z­|®~¯/°*±�²�³�´�¯µ�³�¶

·z¸|¹~º/»*¼�½.¹J¾L¼@º ¿zÀ|Á~Â/Ã*Ä�Å.ÁJÆLÄ@Â

2.3 UML Diagrams for TROLL light Example 36

Explanation 7 (Sequence diagrams)• show a pattern of interaction among objects

• show an interaction arranged in time sequence

• show objects participating in interaction by theirlifelines and messages that they exchange arranged intime sequence

• do not show associations among objects

• can exist in a generic form (describe all possbilesequences) and in an instance form (describe oneactual sequence constistent with the generic form);without loops or branches, the two forms are isomorphic

2.3 UML Diagrams for TROLL light Example 37

Collaboration Diagram

East� North� South�West�

3a : switchLight�

7a : switchLight�6a : switchLight�5a : switchLight�

2a : createLight(3)�3b : switchLight�

7b : switchLight�6b : switchLight�5b : switchLight�

2b : createLight(3)�3c : switchLight�

7c : switchLight�

5c : switchLight�4a : switchLight�

2c : createLight(1)�3d : switchLight�

7d : switchLight�

5d : switchLight�4b : switchLight�

2d : createLight(1)�

:Control

3 : switchControl

7 : switchControl�6 : switchControl5 : switchControl4 : switchControl

1 : createControl�2 : createLights�

2.3 UML Diagrams for TROLL light Example 38

Explanation 8 (Collaboration diagrams)• show a pattern of interaction among objects

• show an interaction organized around the objects inthe interaction and their links to each other

• show relationships among object roles

• do not show time as a separate dimension, sosequence of messages and concurrent threads must bedetermined using sequence numbers

• represent a collaboration, which is a set of objectsrelated in a particular context, and an interaction, whichis a set of messages exchanged among objects within acollaboration to effect a desired operation or result

2.3 UML Diagrams for TROLL light Example 39

Sequence diagramsversus

Collaboration diagrams

• Sequence diagrams and collaboration diagramsexpress similar information but show it in different ways

• Sequence diagrams show explicit sequence ofmessages and are better for real-time specificationsand for complex scenarios

• Collaboration diagrams show relationships amongobjects and are better for understanding all of effects ona given object and for procedural design

2.3 UML Diagrams for TROLL light Example 40

Statechart Diagram for B EHAVIOR Sections

TrafficLight�createLight�

LightLife� switchLight

Control� CreateLights�createControl� createLights�

ControlLife switchControl�

TrafficLightBehavior�

ControlBehavior�

2.3 UML Diagrams for TROLL light Example 41

Explanation 9 (Statechart diagrams)• show sequences of states that an object or aninteraction goes through during its life in response toreceived stimuli, together with its responses and actions

• show graphs of states and transitions that describeresponse of an object of a given class to receipt ofoutside stimuli

• are attached to a class or a method

• show states represented by state symbols andtransitions represented by arrows connecting statesymbols

• may contain subdiagrams by physical containment

2.3 UML Diagrams for TROLL light Example 42

Statechart Diagram for LightLife

switchLightswitchLight

Red�Phase=1�

Green�

Phase=2�GreenYellow

Phase=3�

switchLight�LightLife�

[initPhaseEqualTo(1)] [initPhaseEqualTo(3)]

2.3 UML Diagrams for TROLL light Example 43

Statechart Diagram for ControlLife

ControlLife

switchControl�

West.Phase=2 [G]�

Phase=3�

switchControl�

switchControl�

West.Phase=1 [R]�

Phase=1�

West.Phase=1 [R]�

Phase=2�

West.Phase=3 [GY]�

Phase=4�

switchControl�

North.Phase=2 [G]� North.Phase=3 [GY] North.Phase=1 [R]� North.Phase=1 [R]�

2.3 UML Diagrams for TROLL light Example 44

Statechart Diagram with Concurrent Substates

TrafficLight/West

CreateLights

TrafficLight/North

[Control.P=2]switchLight

[Control.P=4]switchLight [Control.P=1]switchLight

switchControl switchControl switchControl

switchControl

[Control.P=2]switchLight

[Control.P=4]switchLight

P=1 P=2 P=3

P=4P=3P=2P=1

P=1 P=2 P=3

[Control.P=3]switchLight

Control

createControl

createLight

createLight

createLights

2.3 UML Diagrams for TROLL light Example 45

Statechart Diagrams with Messages Sent

ControlLife

switchControl�

West.Phase=2 [G]�

Phase=3�

switchControl�

switchControl�

West.Phase=1 [R]�

Phase=1�

West.Phase=1 [R]�

Phase=2�

West.Phase=3 [GY]�

Phase=4�

switchControl�

North.Phase=2 [G]� North.Phase=3 [GY] North.Phase=1 [R]� North.Phase=1 [R]�

switchLightswitchLight

Red�Phase=1�

Green�Phase=2�

GreenYellowPhase=3�

switchLight�LightLifeNorthSouth

switchLightswitchLight

Red�Phase=1�

Green�Phase=2�

GreenYellowPhase=3�

switchLight�LightLifeW� estEast

2.3 UML Diagrams for TROLL light Example 46

Activity Diagram for Derivation Rules

eval[Phase=1]�

eval[Phase=2 or Phase=3]�

read(Phase)�

write(Red)� write(Yellow) write(Green)�

eval[Phase=3]

2.3 UML Diagrams for TROLL light Example 47

Explanation 10 (Activity diagrams)• are variations of state machines in which states are activitiesrepresenting performance of operations and the transitions aretriggered by completion of operations

• represent a state machine of a procedure itself; the procedure isthe implementation of an operation on owning class

• are special cases of state diagrams in which all (or at least most)of states are action states and in which all (or at least most) oftransitions are triggered by completion of actions in the sourcestates

• are attached to a class or to implementation of an operation or ause case

• focus on flows driven by internal processing (as opposed toexternal events)

2.3 UML Diagrams for TROLL light Example 48

Activity diagramsversus

Statechart diagrams

• Use activity diagrams in situations where all or most ofthe events represent completion of internally-generatedactions (that is, procedural flow of control)

• Use ordinary state diagrams in situations whereasynchronous events occur

2.3 UML Diagrams for TROLL light Example 49

Activity Diagram for Triggering andValuation of Phase=initPhase

initPhase

write-attribute�

PhaseWritten

expr-value

eval-expr

TrafficLight� Temporary�Control

createLight(c)�createLights�

2.3 UML Diagrams for TROLL light Example 50

Component Diagram

Bool�Int

DataTypeInterface�

TrafficLight� Control�

2.3 UML Diagrams for TROLL light Example 51

Explanation 11 (Component Diagrams)• show structure of the code itself

• show dependencies among software components,including source code components, binary codecomponents, and executable components

• have only a type form, not an instance form

• are graphs of components connected by dependencyrelationships

• may also be used to show interfaces and callingdependencies among components

2.3 UML Diagrams for TROLL light Example 52

Deployment DiagramWestNorth:PC�

West:Traf� ficLight North:Traf� ficLight

EastSouth:PC�

East:Traf� ficLight

South:Traf� ficLight

MainServer:SUN

Root:Control�

DataTypeHandler�

2.3 UML Diagrams for TROLL light Example 53

Explanation 12 (Deployment Diagrams)• show configuration of run-time processing elementsand the software components, processes, and objectsthat live on them

• show structure of run-time system

• are graphs of nodes connected by communicationassociations

2.3 UML Diagrams for TROLL light Example 54

Relationship between UML Diagram Forms

StaticStructure�

UseCase�

Object�Class�

Implementation�

Component� Deployment�

Requirements� Analysis and Design� Implementation�

Behavioral

Interaction�

Sequence Collaboration

Statechart�

Activity

OCL�

Emphasis on�"schema/type" aspect

Emphasis on�"instance" aspect