• No results found

11 November

N/A
N/A
Protected

Academic year: 2021

Share "11 November"

Copied!
21
0
0

Loading.... (view fulltext now)

Full text

(1)

7M900

UML Class Diagrams UML Class Diagrams

11 November 2015

www.isbe.tue.nl

UML Class Diagrams UML Class Diagrams

Class diagrams are used in:

Analysis To build a conceptual domain model with semantic associations between concepts

Design Structural model of a design in terms of class interfaces

Implementation Source code documentation, exposing the implementation

The class diagram provides a static structure of all the classes

that exist within the system. Classes are arranged in hierarchies

sharing common structure and behaviour and are associated

with other classes.

(2)

7M900

Classes and Objects Classes and Objects

• Objects looks like modules in some ways Object = Identity + State + Behaviour

• Objects provide encapsulation of data.

• An object is described by a class. A class may define a number of objects with identical properties.

3

www.isbe.tue.nl

About a Class About a Class

• An class has a public interface defining the operations(methods) it will support

• A class has private data called attributes, which only its own operations can access

• A class can have private operations for its own use

• A class may know about other classes by means of associations

4

(3)

7M900

Classes Classes

A class is simply represented as a box with the name of the class inside

– The diagram may also show the attributes and operations Rectangle Rectangle

height width

Rectangle height width getArea resize

Rectangle height: int width: int getArea(): int resize(int,int)

The complete signature of an operation is:

operationName(parameterName: parameterType …): returnType

5

www.isbe.tue.nl

From UML Distilled 2ndEd.

– Martin Fowler (Covers UML 1.4)

(4)

7M900 7 From UML Distilled 3rdEd.

– Martin Fowler (Covers UML2.0)

www.isbe.tue.nl

Essentials of UML Class Diagrams

1of2

Essentials of UML Class Diagrams

1of2

The main symbols shown on class diagrams are:

• Classes

– Represent the types of data themselves

• Associations

– Represent linkages between instances of classes

• Attributes

– Are simple data found in classes and their instances

• Operations

– Represent the functions performed by the classes and their instances

• Generalizations

– Group classes into inheritance hierarchies

8

(5)

7M900 9

www.isbe.tue.nl

Essentials of UML Class Diagrams

2of2

Essentials of UML Class Diagrams

2of2

• Constraints

– Extensions of the semantics of a UML element, allowing you to add new rules or modify existing ones.

– A constraint specifies conditions that a run-time configuration must satisfy to conform to the model.

– A constraint is rendered as a string enclosed by brackets and placed near the associated element.

• Navigation

– Given a plain, unadorned association between two classes, it is possible to navigate from objects of one kind to objects of the other kind. Unless otherwise specified, navigation across an association is bidirectional.

However there are circumstances in which you will want to be able to limit navigation to just one direction.

– Specifying that an association is navigable is a statement that, given an object at one end, you can easily and directly get to objects at the other end, usually because the source object store some references to objects of the target.

(6)

7M900

Navigation: Example Navigation: Example

11 Bidirectional

Unidirectional

association

association navigation

www.isbe.tue.nl

12

(7)

7M900

Identifying objects ? Identifying objects ?

A possible recipe

– We can identify objects in our problem context by looking for nouns and noun phrases

– Each of these can be underlined and becomes a candidate for an object in our solution

– Eliminate irrelevant objects

• Redundant, vague, event, outside scope, attribute, meta-language

13

www.isbe.tue.nl

The Bank Account Example The Bank Account Example

You are asked to design a system to handle current and savings accounts for a bank.

Accounts are assigned to one or more customers, who may make deposits or withdraw money. Each type of account earns interest on the current balance held in it. Current accounts may have negative balances (overdrafts) and then interest is deducted. Rates of interest are different for each type of account. On a savings account, there is a maximum amount that can be withdrawn in one transaction.

Bank employees may check any account that is held at their branch. They are

responsible for invoking the addition of interest and for issuing statements at the correct times.

A money transfer is a short lived record of an amount which has been debited from one account and has to be credited to another. A customer may create such a transfer from their account to any other. Transfers within a branch happen immediately, while those between branches take three days.

(8)

7M900

The Bank Account Example The Bank Account Example

You are asked to design a system to handle current and savings accounts for a bank.

Accounts are assigned to one or more customers, who may make deposits or withdraw money. Each type of account earns interest on the current balance held in it. Current accounts may have negative balances (overdrafts) and then interest is deducted. Rates of interest are different for each type of account. On a savings account, there is a maximum amount that can be withdrawn in one transaction.

Bank employees may check any account that is held at their branch. They are

responsible for invoking the addition of interest and for issuing statements at the correct times.

A money transfer is a short lived record of an amount which has been debited from one account and has to be credited to another. A customer may create such a transfer from their account to any other. Transfers within a branch happen immediately, while those between branches take three days.

Question ? Recognize the nouns!

15

www.isbe.tue.nl

You are asked to design a system to handle current and savings accountsfor a bank.

Accountsare assigned to one or more customers, who may make depositsor withdraw money. Each type of account earns intereston the current balanceheld in it. Current accounts may have negative balances (overdrafts) and then interest is deducted. Rates of interestare different for each type of account. On a savings account, there is a maximum amountthat can be withdrawn in onetransaction.

Bank employeesmay check any account that is held at their branch. They are

responsible for invoking the addition of interest and for issuing statementsat the correct times.

A money transferis a short lived recordof an amountwhich has been debited from one account and has to be credited to another. A customer may create such a transfer from their account to any other. Transfers within a branch happen immediately, while those between branches take three days.

Nouns in the bank account example

16

(9)

7M900

Redundant - overdraft, account Vague - amount, money

An event or an operation - transaction, deposit Outside scope of system - bank, days

An attribute - interest, rate of interest, maximum amount, current balance, overdraft

Meta-language - transaction, correct times, record

Nouns eliminated Nouns eliminated

17

www.isbe.tue.nl

Nouns left Nouns left

• current account, savings account, customer, branch, statement, transfer

Remark:

The Bank Account is derived from

Pauline Wilcox – ‘The Unified Modelling Language’ in

Msc in Systems Level Integration – Systems Partitioning Module

(10)

7M900

Association Association

Association is a relationship between two classes (objects).

Whenever a class use another class, there exists a relationship between the two classes, this relationship is known

as association.

Association talks about relationship between objects in general.

Example

:

www.isbe.tue.nl

Association Adornments: Name, Role Association Adornments: Name, Role

• The association has a name - the descriptive term, often a verb, for the association.

• Each association has two association ends; each end is attached to one of the classes in the

association. An end can be explicitly named with a label. This label is called a role name (association ends are often called roles).

Person Company

employee employer

works for

Person Company

employee employer

has employment for

20

(11)

7M900

Association: Multiplicity Association: Multiplicity

Multiplicity defines the number of objects associated with an instance of the association.

– Default of 1 (1: 1) – 0 or 1: 0..1

– Zero or more (0..infinite): * – 1 or more (1..infinite): 1..*

– n..m; range from n to m inclusive

Car Person

transports

passenger

Car Person

transports

passenger 5

Car Person

transports

passenger

*

Car Person

transports

passenger 1..*

Car Person

transports

passenger 2..5

21

www.isbe.tue.nl

Association classes Association classes

Sometimes an attribute that concerns two associated classes cannot be placed in either of the classes

Student

* *

CourseSection

Registration grade

Student CourseSection

Registration grade

* *

(12)

7M900

Attribute Analysis Attribute Analysis

It is not always clear which attributes belongs to which classes by finding out the class attributes. An attribute is assigned to that class where it is certainly a feature.

For example:

a project leader has the attributes name, department and age.

But what to do with the attributes project number, project duration, starting time, and budget? These attributes clarifies something about the relation between project leader and type of project.

This often happens if a n:m relation refers to an association between two classes. In that case, we can define a new class, for instance project management.

23

www.isbe.tue.nl

24

(13)

7M900

Generalization Generalization

A specialization / generalization relationship, in which objects of the specialized element (child) are substitutable for objects of the generalized element (parent).

• Superclass – the generalization of another class, the child.

• Subclass – the specialization of another class, the parent.

Customer

Corporate Customer

Personal Customer

25

www.isbe.tue.nl

Generalization - characteristics Generalization - characteristics

• Identify common features concerning behaviour and knowledge. Define these common features on a higher level in the inheritance hierarchy.

• The aim is at behaviour more than knowledge when combining classes.

• Generalization is a bottum-up process.

• A superclass includes all common properties of

its subclasses.

(14)

7M900

Specialization - characteristics Specialization - characteristics

• Define a new class which is a special appearance of an existing class.

• Specialization is a top-down process.

• A subclass can have attributes and operations that are specific for that sub-class.

• A subclass may redefine operations of its super-class.

27

www.isbe.tue.nl

28

(15)

7M900

Associations vs. Generalizations Associations vs. Generalizations

Associations describe the relationships that will exist between instances at run time

– when you show an instance diagram generated from a class diagram, there will be an instance of both classes joined by an association

Generalizations describe relationships between classes in class diagrams

– they do not appear in instance diagrams at all

– an instance of any class should also be considered to be an instance of that class’s super classes

29

www.isbe.tue.nl

Aggregation Aggregation

Aggregations are special associations that represent ‘part- whole’ relationships

– the ‘whole’ side is often called the assembly or the aggregate (“has-a” relationship)

Vehicle

*

VehiclePart

Country

*

Region

(16)

7M900

Composition Composition

A composition is a strong kind of aggregation

– if the aggregate is destroyed, then the parts are destroyed as well

Building

*

Room

31

www.isbe.tue.nl

Difference between Aggregation and Composition Difference between Aggregation and Composition

Association talks about relationship between two classes (objects) in general. Any type of relationship between two objects is called association.

Aggregation is more restricted form of association. When a object has a ownership of another object, there exists aggregation between objects. However, this ownership does not mean that: without Parent object child object would not exist.

Composition is again the more restricted form of aggregation. When a object has a ownership of another object and without Parent object, child object can not exist, there exists composition.

(17)

7M900

Association, Aggregation, Composition ? Association, Aggregation, Composition ?

33

What is OK?

A or B or None

A B

www.isbe.tue.nl

Association, Aggregation, Composition ? Association, Aggregation, Composition ?

What is OK?

A or B or None

A B

(18)

7M900

Association, Aggregation, Composition ? Association, Aggregation, Composition ?

35

What is OK?

A or B or None

A B

www.isbe.tue.nl

Association, Aggregation, Composition ? Association, Aggregation, Composition ?

36

What is OK?

A or B or None

A B

(19)

7M900

Aggregation and Composition: example Aggregation and Composition: example

A B

Question: What is OK?

1. A 2. B 3. A & B 4. None

37

www.isbe.tue.nl

Object diagram Object diagram

An object diagram is shown as a class, and the name is underscored, although an object’s name can be shown optionally preceding the class name as:

objectname: classname.

The object does not have to be named, in which case only

the classname is shown underscored.

(20)

7M900

Class diagram Object diagram : example Class diagram Object diagram : example

Computer name: String memory: String Author

name: String age: Integer

0..* 1..*

39

Derive from this class diagram an object diagram consisting of 1 author and 2 computers.

www.isbe.tue.nl

Class diagram Object diagram : example Class diagram Object diagram : example

Computer name: String memory: String Author

name: String age: Integer

0..* 1..*

Brian’s PC: Computer name = “Dell 486”

memory = “256MB”

Brian: Author name = “Brain Jones”

age = 35r

Brian’sLaptop: Computer name = “Toshiba CT”

memory = “512MB” 40

(21)

7M900

References References

• Timothy Lethbridge & Robert Laganière

(2005) Object-Oriented Software Engineering, 2ndedition http://www.lloseng.com

• Martin Fowler (2000, 2004

)

Object-Oriented Software Engineering, 2ndedition; 3rdedition

41

References

Related documents

using fingerprint based identification because of a better understanding of 15fingerprints and furthermore, its matching perfonnance is better than any other existing

Convolutional features for correlation filter based visual tracking[C]//Proceedings of the IEEE International Conference on Computer Vision Workshops..

In the heart of a lockdown across the world, a crazy idea to do a multi-track event made possible with a team and crew of less than 10 people. Just like any activity, we

Information stating how to retrieve personal belongings, when the Credit Union plans to sell the motor vehicle, what actions the member has to take in order to redeem the vehicle

3.2 Probability Distributions for Discrete Random Variables 101 3.3 Expected Values of Discrete Random Variables 112 3.4 Moments and Moment Generating Functions 121 3.5 The

“Our government will support a new local sustainable food initiative to increase purchasing from local agricultural producers, promoting community economic development by creating

In ecological optimum (mesic relatively productive sites), there are raw humus gley-podzols with poor plant diversity in North taiga and modern and mull podzolic soils with rich