0% found this document useful (0 votes)
79 views

10.object Oriented Design and UML Diagrams

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views

10.object Oriented Design and UML Diagrams

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 64

Object-Oriented Software Design

1
Object-oriented Concepts

• Basic Mechanisms:
– Objects:
• A real-world entity.
• A system is designed as a set of interacting objects.
• Consists of data (attributes) and functions (methods) that
operate on data
• Hides organization of internal information (Data abstraction)
• Examples: an employee, a book etc.

2
Object-oriented Concepts

m8 m7
mi are methods
of the object

m1 m6
Data
m2 m5

Object

m3 m4
Model of an object

3
Object-oriented Concepts

–Class:
• Instances are objects
• Template for object creation
• Examples: set of all employees, different types of book

4
Object-oriented Concepts

–Methods :
• Operations supported by an object
• Means for manipulating the data of other
objects
• Examples: calculate_salary, issue-book,
member_details, etc.

5
Object-oriented Concepts

–Inheritance:
• Allows to define a new class (derived class) by extending or
modifying existing class (base class)

6
Object-oriented Concepts

–Multiple Inheritance:
• Subclass can inherit attributes and methods from more than one base
class

• Multiple inheritance is represented by arrows drawn from the subclass


to each of the base classes

7
Object-oriented Concepts

LibraryMember Base Class LibraryMember Base Class

Derived
Faculty Students Staff Faculty Students Staff
Classes
Multiple
Inheritance

UnderGrad PostGrad Research UnderGrad PostGrad Research

8
Object-oriented Concepts

• Key Concepts:
– Abstraction:
• Consider aspects relevant for certain purpose
• Suppress non-relevant aspects

9
Object-oriented Concepts

–Advantages of abstraction:
• Reduces complexity of software
• Increases software productivity

– It is shown that software


productivity is inversely
proportional to software complexity

10
Object-oriented Concepts

–Encapsulation:
• Objects communicate outside world through messages
• Objects data encapsulated within its methods

11
Object-oriented Concepts

–Polymorphism:
• Denotes to poly (many) morphism (forms)
• Same message result in different actions by
different objects (static binding)

12
Advantages
of Object-oriented design

–Code and design reuse


–Increased productivity
–Ease of testing & maintenance
–Better understandability
–Its agreed that increased productivity is
chief advantage

13
Advantages
of Object-oriented design

–Well-established OO methodology and


environment can be managed with 20-
50% of traditional cost of development

14
Object
modelling using UML

–UML is a modelling language


–Not a system design or development
methodology
–Used to document object-oriented
analysis and design
–Independent of any specific design
methodology

15
Why UML is required?

–Model is required to capture only important


aspects
–UML a graphical modelling tool, easy to
understand and construct
–Helps in managing complexity

16
UML diagrams

–Nine diagrams to capture different views


of a system
–Provide different perspectives of the
software system
–Diagrams can be refined to get the actual
implementation of the system

17
UML diagrams

–Views of a system
• User’s view
• Structural view
• Behavioral view
• Implementation view
• Environmental view

18
UML diagrams

Behavioural View
Structural View - Sequence Diagram
- Class Diagram - Collaboration Diagram
- Object Diagram
- State-chart Diagram
- Activity Diagram
User’s View
-Use Case
Diagram

Implementation View Environmental View


- Component Diagram - Deployment Diagram

Diagrams and views in UML

19
Use Case model

– Consists of set of “use cases”


– An important analysis and design artifact
– Other models must confirm to this model
– Not really an object-oriented model
– Represents a functional or process model

20
Representation of
Use Cases

– Represented by use case diagram


– Use case is represented by ellipse
– System boundary is represented by rectangle
– Users are represented by stick person icon (actor)
– Communication relationship between actor and use
case by line

21
Example of
Use Cases

Play Move

Player Tic-tac-toe game

Use case model

22
Factoring
Use Cases

– Complex use cases need to be factored into simpler use cases


– Represent common behavior across different use cases
– Three ways of factoring
• Generalization
• Includes
• Extends

23
Factoring Using
Generalization

Pay membership fee

Pay through credit card Pay through library pay card

Use case generalization

24
Factoring Using
Includes

<<include>> Common
Base use case
use case

Use case inclusion

Base use case Base use case

<<include>>
<<include>>
<<include>> <<include>>

Base use case Base use case Base use case

Paralleling model 25
Factoring Using
Extends

Base <<extends>> Common


use case use case

Use case extension

26
Class diagram

– Describes static structure of a system


– Main constituents are classes and their relationships:
• Aggregation, Composition
• Association
• Various kinds of dependencies

27
Class diagram

– Entities with common features, i.e. attributes and operations


– Classes are represented as solid outline rectangle with
compartments
– Compartments for name, attributes & operations
– Attribute and operation compartment are optional for reuse
purpose

28
Example of
Class diagram

LibraryMember LibraryMember LibraryMember


Member Name Member Name
Membership Number Membership Number
Address Address
Phone Number Phone Number
E-Mail Address E-Mail Address
Membership Admission Date Membership Admission Date
Membership Expiry Date Membership Expiry Date
Books Issued Books Issued
issueBook( );
findPendingBooks( );
findOverdueBooks( );
returnBook( );
findMembershipDetails( );

Different representations of the LibraryMember class

29
Association Relationship

Library Member
1 borrowed by * Book

Association between two classes

30
Aggregation Relationship

– Represent a whole-part relationship


– Represented by diamond symbol at the composite end
– Cannot be reflexive(i.e. recursive)
– Not symmetric

31
Aggregation Relationship

1 * 1
Document Paragraph * Line

Representation of aggregation

32
Class Dependency

Dependent Class Independent Class

Representation of dependence between class

33
Object diagram

LibraryMember LibraryMember LibraryMember

Mritunjay Mritunjay
B10028 B10028
C-108, Laksmikant Hall C-108, Laksmikant Hall
1119 1119
Mrituj@cse Mrituj@cse
25-02-04 25-02-04
25-03-06 25-03-06
NIL NIL

IssueBook( );
findPendingBooks( );
findOverdueBooks( );
returnBook( );
findMembershipDetails( );

Different representations of the LibraryMember object

34
Interaction diagram

– Models how groups of objects collaborate to realize some


behaviour

– Typically each interaction diagram realizes behaviour of a single


use case

35
Interaction diagram

– Two kinds: Sequence & Collaboration

– Two diagrams are equivalent but portrays different perspective

– These diagram play a very important role in the design process

36
Sequence diagram

– Shows interaction among objects as two-dimensional


chart
– Objects are shown as boxes at top
– If object created during execution then shown at
appropriate place
– Objects existence are shown as dashed lines
(lifeline)
– Objects activeness, shown as rectangle on lifeline

37
Sequence diagram

–Messages are shown as arrows


– Message labelled with message name
– Message can be labelled with control

information

38
Example of
Sequence diagram
:Library
:Library
:Library Book :Library
Book :Book
Boundary Renewal Member
Register
Controller

renewBook find MemberBorrowing


displayBorrowing
selectBooks bookSelected
* find
[reserved]
[reserved] apology
update
apology

confirm

confirm
updateMemberBorrowing

Sequence Diagram for the renew book use case


39
Collaboration diagram

– Shows both structural and behavioural aspects


– Objects are collaborator, shown as boxes
– Messages between objects shown as a solid line
– Message is shown as a labelled arrow placed near the
link
– Messages are prefixed with sequence numbers to
show relative sequencing

40
Example of
Collaboration diagram

6: * find
:Library
Book :Book
[reserved] Register
9: update
8: apology 5: book 10: confirm
Selected
1: renewBook :Library [reserved]
:Library Book 7: apology
Boundary 3: display Renewal
Borrowing Controller

4: selectBooks
2: findMemberBorrowing

12: confirm
:Library
Member

updateMemberBorrowing

Collaboration Diagram for the renew book use case


41
Activity diagram

– New concept, possibly based on event diagram of Odell [1992]

– Represent processing activity

– Activity is a state with an internal action and one/many


outgoing transition

42
Activity diagram

– Can represent parallel activity and synchronization aspects

– Example: academic department vs. hostel

43
Activity diagram

– Normally employed in business process modelling

– Carried out during requirement analysis and specification

– Can be used to develop interaction diagrams

44
Example of
Activity diagram
Academic Section Accounts Section Hostel Office Hospital Department

check
student
records
receive
fees

allot create
hostel hospital
record
register
receive
in
fees
course
conduct
allot medical
room examination

issue
identity card
Activity diagram for student admission procedure at IIT
45
State Chart diagram

– Based on the work of David Harel [1990]

– Model how the state of an object changes in its lifetime

– Based on finite state machine (FSM) formalism

46
State Chart diagram

– Elements of state chart diagram


– Initial State: Filled circle
– Final State: Filled circle inside larger circle
– State: Rectangle with rounded corners
– Transitions: Arrow between states

47
Example of
State Chart diagram

order received
Unprocessed
Order
[reject] checked [accept] checked

Rejected Accepted
Order Order
[some items available]
[some items not processed / deliver
available] processed

[all items
Pending available] Fulfilled
Order newsupply Order

Example: State chart diagram for an order object


48
Example 1: Tic-Tac-Toe Computer Game
• A human player and the computer make alternate
moves on a 3 3 square.
• A move consists of marking a previously
unmarked square.
• The user inputs a number between 1 and 9 to
mark a square
• Whoever is first to place three consecutive marks
along a straight line (i.e., along a row, column, or
diagonal) on the square wins.

49
Example 1: Tic-Tac-Toe Computer Game
• As soon as either of the human player or the
computer wins,
– a message announcing the winner should be displayed.
• If neither player manages to get three consecutive
marks along a straight line,
– and all the squares on the board are filled up,
– then the game is drawn.
• The computer always tries to win a game.

50
Example 1: Use Case Model

Play Move

Player Tic-tac-toe game

51
Example 1: Sequence Diagram

:playMove :playMove
:board
Boundary Controller

acceptMove checkMoveValidity
move
[invalidMove] [invalidMove]
announceInvalidMove
announceInvalidMove
checkWinner
[game over]
[game over] announceResult
announceResult
playMove
checkWinner

[game over] [game over]


announceResult announceResult

displayBoardPositions getBoardPositions

[game not over]


promptNextMove

Sequence Diagram for the play move use case


52
Example 1: Class Diagram

Board PlayMoveBoundary

int position[9]

checkMove Validity announceInvalidMove


checkResult announceResult
playMove displayBoard

Controller

announceInvalidMove
announceResult

53
Example 2: Supermarket Prize Scheme
• Supermarket needs to develop software to encourage
regular customers.
• Customer needs to supply his residence address,
telephone number, and the driving licence number.
• Each customer who registers is assigned a unique
customer number (CN) by the computer.

54
Example 2: Supermarket Prize Scheme
• A customer can present his CN to the staff when he makes
any purchase.
• The value of his purchase is credited against his CN.
• At the end of each year, the supermarket awards surprise
gifts to ten customers who make highest purchase.

55
Example 2: Supermarket Prize Scheme
• Also, it awards a 22 carat gold coin to every customer
whose purchases exceed Rs. 10,000.
• The entries against the CN are reset on the last day of
every year after the prize winner’s lists are generated.

56
Example 2: Use Case Model

register
Customer customer Clerk

register
sales

Sales Clerk
select
winners

Supermarket
Prize scheme
Manager

57
Example 2: Sequence Diagram for the Select
Winners Use Case

:SelectWinner :SelectWinner :Sales :Sales :Customer :Customer


Boundary Controller History Record Register Record

Select
SelectWinners
Winners
SelectWinners
*computeSales

*browse

[for each winner]


find WinnerDetails [for each winner]
announces
browse

Sequence Diagram for the select winners use case


58
Example 2: Sequence Diagram for the
Register Customer Use Case

:SelectWinner :SelectWinner :Customer :Customer


Boundary Controller Register Record

register
register
checkDuplicate
*match

[duplicate]

showError
generateCIN

create
register :Customer
Record
displayCIN

Sequence Diagram for the register customer use case


59
Example 2: Sequence Diagram for the Register
Sales Use Case

:Register
:Sales
Sales
History
Boundary

registerSales
RegisterSales

create :Sales
Record

confirm

Refined Sequence Diagram for the register sales use case

60
Example 1: Class Diagram

SalesHistory CustomerRegister

selectWinners findWinnerDetails
registerSales register

1 1

* *
SalesRecords CustomerRecord

salesDetails name
address
computerSales browse
browse checkDuplicate
create create

61
Summary

• We discussed object-oriented concepts


– Basic mechanisms: Such as objects, class, methods,
inheritance etc.
– Key concepts: Such as abstraction, encapsulation,
polymorphism, composite objects etc.

62
Summary

• We discussed an important OO language UML


– Its origin, as a standard, as a model
– Use case representation, its factorisation such as
generalization, includes and extends
– Different diagrams for UML representation
– In class diagram we discussed some relationships
association, aggregation, composition and
inheritance

63
Summary

– Some more diagrams such as interaction diagrams


(sequence and collaboration), activity diagrams, state
chart diagram
• We discussed OO software development process and
patterns

64

You might also like