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

Post on 01-Apr-2015

229 views 2 download

Tags:

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

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

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

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

SEG4110 - Topic C - Advanced UML and Umple 7

Selected patterns

class University {

singleton;

String name;

}

Open the above in UmpleOnline

SEG4110 - Topic A- Review of UML 8

Reminder about Labelling associations

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

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

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

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

SEG4110 - Topic A- Review of UML 12

Analyzing and validating associations

Avoid unnecessary one-to-one associations

Avoid this do this

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

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)

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

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

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!

SEG4110 - Topic A- Review of UML 18

Inheritance, Polymorphism and Variables

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

SEG4110 - Topic A- Review of UML 20

Avoiding having instances change class

• An instance should never need to change class

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

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

SEG4110 - Topic A- Review of UML 23

OCL – More to come in a later lecture

SEG4110 - Topic A- Review of UML 24

Use Case Diagrams

SEG4110 - Topic A- Review of UML 25

Example of generalization, extension and inclusion

SEG4110 - Topic A- Review of UML 26

Example Description of a Use Case

SEG4110 - Topic A- Review of UML 27

Sequence diagrams – an example

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

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

SEG4110 - Topic A- Review of UML 30

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

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

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

SEG4110 - Topic A- Review of UML 33

Activity Diagrams – An Example –Course Registration

SEG4110 - Topic A- Review of UML 34

Package Diagrams

SEG4110 - Topic A- Review of UML 35

Example of Multi-Layer Systems

SEG4110 - Topic A- Review of UML 36

Component Diagrams

SEG4110 - Topic A- Review of UML 37

An Example of a Distributed System

SEG4110 - Topic A- Review of UML 38

Example of a Broker System

SEG4110 - Topic A- Review of UML 39

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

SEG4110 - Topic A- Review of UML 40

Example of the MVC Architecture for a User Interface

SEG4110 - Topic A- Review of UML 41

Example of the Service-Oriented Architecture

SEG4110 - Topic A- Review of UML 42

Abstraction-Occurrence

SEG4110 - Topic A- Review of UML 43

Abstraction-Occurrence

Square variant

SEG4110 - Topic A- Review of UML 44

General Hierarchy

SEG4110 - Topic A- Review of UML 45

Player-Role

SEG4110 - Topic A- Review of UML 46

Singleton

SEG4110 - Topic A- Review of UML 47

Observer

SEG4110 - Topic A- Review of UML 48

Delegation

SEG4110 - Topic A- Review of UML 49

Façade

SEG4110 - Topic A- Review of UML 50

Proxy

SEG4110 - Topic A- Review of UML 51

Deployment Diagrams