UML Notations Activity diagrams State diagrams Class diagrams

  • Slides: 51
Download presentation
UML Notations Activity diagrams State diagrams Class diagrams Use-case diagrams

UML Notations Activity diagrams State diagrams Class diagrams Use-case diagrams

Background UML • Unified Modeling Language (UML) is a standard language for specifying, visualizing

Background UML • Unified Modeling Language (UML) is a standard language for specifying, visualizing , and constructing, and documenting the artifacts of software systems. – http: //www. uml. org/ • UML represents the collection of best engineering practices, mainly used for object oriented software development • UML uses graphical notations to express the design of software projects. UML notations 2

Goals of UML • Provide users with a ready-to-use visual modeling language to exchange

Goals of UML • Provide users with a ready-to-use visual modeling language to exchange meaningful models • Provide extensibility and specialization mechanisms to extend the core concepts • Be independent of particular programming languages and development processes. • The development of UML began in 1994 by Grady Booch and Jim Rumbaugh from Rational Software Corporation

UML Diagrams • Activity diagram – combined function/control view • State diagram – highly

UML Diagrams • Activity diagram – combined function/control view • State diagram – highly interactive control • Class diagram – static information structure (“data”) • Use-case diagram – high level view of system services (functional) UML notations 4

Activity diagram • Model control and information flow of a procedure or process •

Activity diagram • Model control and information flow of a procedure or process • It describes the state of activities by showing the sequence of activities performed. UML notations 5

Action state • State in which some work is being done – activity, task

Action state • State in which some work is being done – activity, task • State terminates when the work is finished – difference with state diagrams • After termination the action state can lead to another action state – “state transition” • Special symbols for being and end of a procedure or process UML notations 6

Basic notation for activity diagram UML notations 7

Basic notation for activity diagram UML notations 7

Decision • State transition is deterministic • If transition depends on outcome of the

Decision • State transition is deterministic • If transition depends on outcome of the work, then introduces a decision UML notations 8

Introducing concurrency UML notations 9

Introducing concurrency UML notations 9

Swim lanes • Process can sometimes be distributed over several agents or organizational units

Swim lanes • Process can sometimes be distributed over several agents or organizational units • Notation: use compartments • Use to model a business process (e. g. in organization model) UML notations 10

Notation for swim lanes UML notations 11

Notation for swim lanes UML notations 11

Object flow UML notations 12

Object flow UML notations 12

Business process “Housing” UML notations 13

Business process “Housing” UML notations 13

State diagrams • Synonyms: “state chart”, “state-transition diagram” • Purpose: model of dynamic behavior

State diagrams • Synonyms: “state chart”, “state-transition diagram” • Purpose: model of dynamic behavior • Use if control is heavily influenced by “external” events UML notations 14

State UML notations 15

State UML notations 15

State transition • Event: comes from outside the object modeled • Message: generates event

State transition • Event: comes from outside the object modeled • Message: generates event for another object • Guard: outcome of internal object computation UML notations 16

Actions and activities • Action: instantaneous, not interruptible – on transition – on state

Actions and activities • Action: instantaneous, not interruptible – on transition – on state entry = action on all incoming transitions – on state exit = action on all outgoing transitions – on event • Activity: takes time, interruptible UML notations 17

State diagram of ticket machine UML notations 18

State diagram of ticket machine UML notations 18

State concurrency UML notations 19

State concurrency UML notations 19

State diagram “Housing” UML notations 20

State diagram “Housing” UML notations 20

Class diagram • Describe the types of objects in a system and their relationships

Class diagram • Describe the types of objects in a system and their relationships • Model class structure and contents • Class has three things: a name, attribute, and operations UML notations 21

Objects and classes UML notations 22

Objects and classes UML notations 22

Object class • Describes a group of objects with similar properties – Abbreviation: "class"

Object class • Describes a group of objects with similar properties – Abbreviation: "class" • Rationale for introducing classes: – it provides a means for abstraction • Terminology: “object” is often used in an ambiguous way, pointing to both objects (in the strict sense) and object classes. UML notations 23

Attributes • An attribute describes a value held by objects belonging to the class.

Attributes • An attribute describes a value held by objects belonging to the class. • Attribute specification consists of: – Class it is defined on (student) – Attribute name (name) – Admissible values (string) – Optional: default value UML notations 24

Values and Value Sets • Values are the primitive things with no internal structure

Values and Value Sets • Values are the primitive things with no internal structure from the viewpoint of the application • Admissible values are defined through a value set • Typical predefined value-sets: – string, number, integer, real, range, boolean, …. • User-defined: – set or list of strings UML notations 25

Object Identifiers • In O-O modeling you assume that every object has an identity.

Object Identifiers • In O-O modeling you assume that every object has an identity. • Consequence: introduce only attributes that act as identifiers, iff the identifier is something that exists in the real world. • Examples: student card number, social security number. UML notations 26

Operations • Definition: – operation is "a function or a transformation that can be

Operations • Definition: – operation is "a function or a transformation that can be applied to objects of a class". • Objects in a class share the same operations. • Method: implementation of an operation UML notations 27

Class notation UML notations 28

Class notation UML notations 28

Associations • Associations are used to link objects to other objects • Majority of

Associations • Associations are used to link objects to other objects • Majority of associations: – binary (between two objects) – directional (should be read in a particular direction • Ternary associations come up occasionally. • Associations between more than three objects are rare. UML notations 29

Association notation UML notations 30

Association notation UML notations 30

Multiplicity examples UML notations 31

Multiplicity examples UML notations 31

Multiplicity • Also called: "cardinality". • Always connected to one of the classes involved.

Multiplicity • Also called: "cardinality". • Always connected to one of the classes involved. • Typical types of multiplicity: – 0 -1 – 0+ – 1+ UML notations Zero or one (optional). Precisely one. Zero or more, One or more. 32

Association class • Modeling an association as a class if the association has an

Association class • Modeling an association as a class if the association has an internal information structure • Advantage: associations become first-class objects. • Attributes and methods can be defined for the association class. UML notations 33

Notation association class UML notations 34

Notation association class UML notations 34

Use of an association class UML notations 35

Use of an association class UML notations 35

Associations with specific semantics • Associations provide a general, "neutral", way of connecting object

Associations with specific semantics • Associations provide a general, "neutral", way of connecting object classes. • Semantics of the association are defined through argument typing, multiplicity and (implicitly) the name of the association. • Class diagrams provide specific types of associations, with predefined semantics: – generalization ("is a"). – aggregation ("part of"). UML notations 36

Generalization • Purpose: sharing similarities while preserving differences • Is an association between a

Generalization • Purpose: sharing similarities while preserving differences • Is an association between a class that acts as super-class and one or more classes called the sub-classes. • Super-classes show the features that the subclasses have in common. • Each sub-class inherits the attributes and operations defined on its super-class(es). UML notations 37

Notation for generalization UML notations 38

Notation for generalization UML notations 38

Aggregation • Aggregation denotes a binary association in which one side is an "assembly"

Aggregation • Aggregation denotes a binary association in which one side is an "assembly" and the other side a "part". • "Assembly" and "part" act as predefined roles involved in the aggregation association. • Cardinality of a part can be defined – precisely one; optional (0 -1); many, . . . UML notations 39

Notation for aggregation UML notations 40

Notation for aggregation UML notations 40

Composition • Sub-type of aggregation • Existence of part depends on aggregate UML notations

Composition • Sub-type of aggregation • Existence of part depends on aggregate UML notations 41

Aggregation and generalization • Similarities: – Tree-like structure • Differences: – AND-tree (aggregation) vs.

Aggregation and generalization • Similarities: – Tree-like structure • Differences: – AND-tree (aggregation) vs. OR-tree (generalization) – instance tree (aggregation) vs. class tree (generalization) UML notations 42

Combined aggregation and generalization UML notations 43

Combined aggregation and generalization UML notations 43

Use-case diagram • shows services that can be expected from a system • provides

Use-case diagram • shows services that can be expected from a system • provides outsider view (customer) • terminology use case service provided by system actor agent using a system service • used in early phases of system analysis UML notations 44

Use cases for a library UML notations 45

Use cases for a library UML notations 45

A small case study • Course administration system (CAS) • Context: university department •

A small case study • Course administration system (CAS) • Context: university department • Required services: STUDENT: update personal data, inspect exam results, inspect course info, enroll in course TUTOR: inspect exam results, update course info, inspect enrollments ADMIN STAFF: enter exam results, inspect exam results, update personal data students, inspect enrollments UML notations 46

Use cases UML notations 47

Use cases UML notations 47

Class diagram exam date: date result: [0. . 10] requires 0+ course-exam 1 enrollment

Class diagram exam date: date result: [0. . 10] requires 0+ course-exam 1 enrollment student 0+ date: date student-card#: string name: string 0+ address: string date-of-birth: data major: Major. . course 0+ course-code: string year: integer trimester: 1 -3 study-points: integer learning-goals: string description: text literature: text maximum-#students: integer 0+ university staff member title: string position: string 1+ department: string telephone: string room: string e-mail: string UML notations tutor 48

Activity diagram for course enrollment procedure UML notations 49

Activity diagram for course enrollment procedure UML notations 49

State diagram: “update student data” UML notations 50

State diagram: “update student data” UML notations 50

Tools to draw UML • Powerpoint • MS Visio: http: //www. youtube. com/watch? v=FPB

Tools to draw UML • Powerpoint • MS Visio: http: //www. youtube. com/watch? v=FPB 0 Tw 9 j FE 8 • Online: – http: //creately. com/Draw-UML-and-Class. Diagrams-Online – http: //www. gliffy. com/uses/uml-software/