Top Banner
SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML
51

SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

Apr 01, 2015

Download

Documents

Owen Walters
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 – Advanced Software Design and Reengineering

TOPIC A

Review of UML

Page 2: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 2

What is UML?

The Unified Modelling Language is a standard graphical language for modelling object oriented software

• Developed when Booch, Rumbagh and Jacobson merged their approaches.

• In 1997 the Object Management Group (OMG) started the process of UML standardization

Page 3: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 3

Reminder about Naming classes

• Use capital letters—E.g. BankAccount not bankAccount

• Use singular nouns

• Use the right level of generality—E.g. Municipality, not City

• Make sure the name has only one meaning—E.g. ‘bus’ has several meanings

Page 4: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic C - Advanced UML and Umple 4

Umple

A technology for programming in UML

• Model-Oriented Programming

Adds associations and attributes to programming languages

•Java

•PHP

•Ruby

Stand alone code-generator is online at

•http://cruise.site.uottawa.ca/umpleonline/index.php

Page 7: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic C - Advanced UML and Umple 7

Selected patterns

class University {

singleton;

String name;

}

Open the above in UmpleOnline

Page 8: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 8

Reminder about Labelling associations

• Each association can be labelled, to make explicit the nature of the association

Page 9: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 9

Analyzing and validating associations 1

• Many-to-one

—A company has many employees,

—An employee can only work for one company.- This company will not store data about the moonlighting

activities of employees!

—A company can have zero employees- E.g. a ‘shell’ company

—It is not possible to be an employee unless you work for a company

*worksForEmployee Company1

Page 10: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 10

Analyzing and validating associations 2

• Many-to-many

—A secretary can work for many managers

—A manager can have many secretaries

—Secretaries can work in pools

—Managers can have a group of secretaries

—Some managers might have zero secretaries.

—Is it possible for a secretary to have, perhaps temporarily, zero managers?

*

supervisor

*****1..*Assistant Manager

Page 11: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 11

Analyzing and validating associations 3

• One-to-one

—For each company, there is exactly one board of directors

—A board is the board of only one company

—A company must always have a board

—A board must always be of some company

11

Page 12: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 12

Analyzing and validating associations

Avoid unnecessary one-to-one associations

Avoid this do this

Page 13: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 13

Association classes

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

• The following are equivalent

Page 14: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 14

Reflexive associations

• It is possible for an association to connect a class to itself

class Course

{

* prerequisite -- * Course successor;

* self multuallyExclusive;

}

Open in Umple (the symmetric reflexive association doesn’t show graphically yet)

Page 15: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 15

Directionality in associations

• Associations are by default bi-directional

• It is possible to limit the direction of an association by adding an arrow at one end

• Open in Umple

Page 16: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 16

Object Diagrams

• A link is an instance of an association

—In the same way that we say an object is an instance of a class

Page 17: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 17

Inheritance and the Isa Rule

Inheritance• The implicit possession by all subclasses of features

defined in its superclasses

Always check generalizations to ensure they obey the isa rule

• “A checking account is an account”• “A village is a municipality”

Should ‘Province’ be a subclass of ‘Country’?• No, it violates the isa rule

—“A province is a country” is invalid!

Page 18: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 18

Inheritance, Polymorphism and Variables

Page 19: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 19

Avoiding unnecessarygeneralizations

rockbluesclassicaljazzmusic video

video audio

subcategory subcategorysubcategorysubcategorysubcategory

:RecordingCategory :RecordingCategory

:RecordingCategory :RecordingCategory :RecordingCategory :RecordingCategory:RecordingCategory

9th Symphony

:Recording

Let it be

:Recording

The BeatlesBeethoven

Inappropriate hierarchy ofclasses, which should beinstances

Improved class diagram,with its correspondinginstance diagram

Page 20: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 20

Avoiding having instances change class

• An instance should never need to change class

Page 21: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 21

• A composition is a strong kind of aggregation

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

Composition

Page 22: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 22

Interfaces

An interface describes a portion of the visible behaviour of a set of objects.

• An interface is similar to a class, except it lacks instance variables and implemented methods

Page 23: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 23

OCL – More to come in a later lecture

Page 24: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 24

Use Case Diagrams

Page 25: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 25

Example of generalization, extension and inclusion

Page 26: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 26

Example Description of a Use Case

Page 27: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 27

Sequence diagrams – an example

Page 28: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 28

• An iteration over objects is indicated by an asterisk preceding the message name

Sequence Diagrams – an example with replicated messages

Page 29: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 29

• If an object’s life ends, this is shown with an X at the end of the lifeline

Sequence Diagrams – an example with object deletion

Page 30: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 30

State Diagrams – an Example of Transitions with Time-outs and Conditions

Page 31: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 31

State Diagrams – Example with Conditional Transitions - CourseSection class

requestToRegister (aStudent)/createRegistration

ClosedclassSize >= maximum

cancel

openRegistration

Planned

OpenEnoughStudents

OpenNotEnoughStudents

classSize >= minimum

requestToRegister (aStudent)/createRegistration

closeRegistration

closeRegistration

cancel

Cancelled

Page 32: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 32

State Diagram – An Example with Substates CourseSection Class Again

Open the previous page and this one in Umple

Page 33: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 33

Activity Diagrams – An Example –Course Registration

Page 34: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 34

Package Diagrams

Page 35: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 35

Example of Multi-Layer Systems

Page 36: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 36

Component Diagrams

Page 37: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 37

An Example of a Distributed System

Page 38: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 38

Example of a Broker System

Page 39: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 39

Example of a Pipe-and-Filter System -Sound Processing

Page 40: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 40

Example of the MVC Architecture for a User Interface

Page 41: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 41

Example of the Service-Oriented Architecture

Page 42: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 42

Abstraction-Occurrence

Page 43: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 43

Abstraction-Occurrence

Square variant

Page 44: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 44

General Hierarchy

Page 45: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 45

Player-Role

Page 46: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 46

Singleton

Page 47: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 47

Observer

Page 48: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 48

Delegation

Page 49: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 49

Façade

Page 50: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 50

Proxy

Page 51: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.

SEG4110 - Topic A- Review of UML 51

Deployment Diagrams