Improving the Design - Multimedia University
Download
Report
Transcript Improving the Design - Multimedia University
Object-Oriented Analysis
and Design Methods
“How to create and define objects?”
TCS2411 Software Engineering
1
Lecture Objectives
To understand the process of identifying
and creating objects for a system
To describe a method for developing
objects for an object-oriented system
To describe the representations that can be
used for objects and their relationships
To discuss the dynamic aspects of objectoriented systems and how to model them
TCS2411 Software Engineering
2
Too Many
Methodologies!
Booch Object-Oriented Design
Rumbaugh Object Modeling Technique
Shlaer and Mellor Analysis and Design
Jacobson Objectory
Wirfs-Brock Responsibility Driven Design
Martin and Odell Object-Oriented Analysis
and Design
Others…..
TCS2411 Software Engineering
3
Object-Oriented
Analysis
Identify the objects and classes
Identify the object attributes
Identify operations on objects and classes
Define object and class relationships
Model dynamic concepts
TCS2411 Software Engineering
4
Identify the objects and
classes
Grammatical Analysis
Nouns are objects and attributes
Verbs are operations or services
Tangible entities (things), roles, events,
interactions, etc. in application domain
Use behavioural approach
Participants in behaviours as objects
Scenario-based analysis
TCS2411 Software Engineering
5
Identify the object
attributes
Specify attributes (instance variables) of
objects in problem domain
These are to be recorded, displayed,
stored, and/or manipulated in functions of
the domain
TCS2411 Software Engineering
6
Identify operations on
objects and classes
Operations that are used to interact with
the objects and classes
Each class has a protocol that captures
the messages or operations that could be
handled by the class or its instances
Users or “clients” of classes and objects
deal primarily with the external operations
of the class
TCS2411 Software Engineering
7
Example Scenario
“The Office Information Retrieval System
(OIRS) can file documents under some name
in one or more indexes, retrieve documents,
display and maintain document indexes,
archive documents and destroy documents.
The system is activated by a request from the
user and always returns a message to the user
indicating the success or failure of the request.”
TCS2411 Software Engineering
8
Objects Identified
Document
Index
Name
Name
User
Retrieval
System
User command
File
Retrieve
Archive
Destroy
Display
Delete entry
Add entry
TCS2411 Software Engineering
Get command
Put message
9
Define object and class
relationships
Capture relationship between classes.
Typical relationships:
Inheritance
Organisation of classes or entity types in
problem domain
One-to-One, One-to-Many, Many-to-Many
relationships that exist between objects that
reference each other
TCS2411 Software Engineering
10
Example of Inheritance
Person
Employee
SalesPerson
Student
MarketingPerson
SalesManager
TCS2411 Software Engineering
11
Example of Other
Relationships
Country
Has-capital
City
One-to-One
Company
Works-for
Person
One-to-Many
File
Accessible-by
User
Many-to-Many
TCS2411 Software Engineering
12
Model dynamic
concepts
State transition diagrams
Specify states of the objects
Specify events that trigger transitions
Specify actions taken due to transitions
Data flow diagrams
Describe flow of objects and information
Timing diagrams
Illustrate object interactions over time
TCS2411 Software Engineering
13
State transition diagram
White’s
turn
Start
Black
moves
stalemate
White
moves
Black’s
turn
TCS2411 Software Engineering
checkmate
Black
wins
Draw
stalemate
checkmate
White
wins
14
Data flow diagram
password
Verify
Password
ok
Customer
amount
cash
Update
TCS2411 Software Engineering
Coded
password
old
balance
Account
new
balance
15
Timing diagrams
Caller
Caller lifts receiver
Phone line
Callee
Dial tone begins
Dials number
Ringing tone
Phone rings
Answers phone
Tone stops
Phones connected
Ringing stops
Phones connected
Callee hangs up
Connection broken
TCS2411 Software Engineering
Connection broken
16
Unified Modeling Language
Approach OOA
User view model – system represented
from the user’s perspective by developing
use-case model
Structural view model – data and function
is view from inside the system, static
structure (classes, objects, relationships)
is modeled
TCS2411 Software Engineering
17
Use Case
Scenario based technique for requirement
elicitation
Use case should achieve the following
objectives :
Define functional and operational
requirements of the system
Provide clear description of how end user
and the system will interact with one another
Basis for validation testing
TCS2411 Software Engineering
18
Use Case Diagram Elements
Actor : Entities that interact with
the system
Person, machine, another
system etc
Represent roles that a user
play in the system
Use case
Sequence of transaction
performed by the system
Initiated by an actor to
invoke certain function in the
system
TCS2411 Software Engineering
Custom er
Credit System
Sensor
Borrow book
Input password
19
Use Case Diagram For The
Library
Reserve book
Borrow copy
of book
Browse
BookBorrower
Return copy
of book
Browser
Extend loan
Update catalog
Return copy
of book
Extend loan
JournalBorrower
TCS2411 Software Engineering
Librarian
20
Identify Objects and Classes
Object
Thing that can interact with
Reacts when send
messages
concept, abstraction or
thing that has sharp
boundaries and meaning for
an application
Object has
State : value of property at
a given time
Behavior : objects action
and reaction
Identity : distinguishes from
other objects
TCS2411 Software Engineering
Class
A sets of objects with an
equivalent roles in the
system
Every object belongs to a
class
Example :
Tangible : book, copy,
course
Roles : library member,
student
Events : arrival, leaving,
request
Interaction : meeting,
intersection
21
Identify Class Attributes &
Operations
Class Name
Attributes
Characteristic of a
class
Simple noun or
noun phrases
Book
ISBNNo : String
Title : String
Author : String
Status : String
select()
isAvailable()
updateStatus()
What the class can
do / What the class
should do
Operations are
used to interact
with objects and
classes
Operation
signature
Optional
argument list
Operations
Return class
Must be unique
within class
Value that the
property may hold
in objects of that
class
TCS2411 Software Engineering
22
Relationship
Why do we need Relationship
All system encompass many classes and
objects
Objects contribute to the behavior of a
system by collaborating with one another
Collaboration is accomplish through relationships
Two important type of relationship during
analysis
Association
Aggregation
TCS2411 Software Engineering
23
Association
Represent relationship between objects of
classes
Multiplicity Association
Number of instance of one class related to one
instance of the other class
Multiplicity indicator
Many
- *
Exactly one - 1
Zero or more - 0 .. *
One or more - 1 .. *
Zero or one - 0 .. 1
Specified range
- m .. n Eg :- 2 .. 4
TCS2411 Software Engineering
24
Inheritance
Hierarchy abstraction where subclass
inherits from one or more superclass
Subclass inherits attributes, operations
and relationships
Subclass may have additional attributes,
operations or relationship
How to find inheritance?
Look for common behavior and attributes in
classes
TCS2411 Software Engineering
25
Aggregation
Known as part-of relationship
A whole class related to its parts
Association or Aggregation ?
If two object tightly bound by a whole part
relationship : Aggregation
If two object considered independent even
though they are often linked : Association
TCS2411 Software Engineering
26
Example of Aggregation
Country
States
1
1
Country and States are tightly coupled.
States cannot function on its own if it taken away from country.
ATM Panel
Card Reader
1
1
ATM Card
1
0 ..1
Card reader is part of ATM panel.
TCS2411 Software Engineering
27
Object Interactions
To show dynamic behavior of the system
Also known as Sequence Diagram
Interaction between objects is modeled
using interaction diagram.
Show how messages passed between objects
Realize use cases
TCS2411 Software Engineering
28
Object
Interactions(Continued)
aMember:BookBorrower
theLibraryMember:
LibraryMember
theCopy:Copy
theBook:Book
borrow(theCopy)
1: okToBorrow
2: borrow
2.1: borrowed
TCS2411 Software Engineering
29
Changes In System : State
Diagram
State of book object may change when
a copy of book is successfully book
borrowable
There is a copy
available in the library
not borrowable
All copies are out on
loan or reserved
returned()
State diagram for class Book
returned()
not borrowable
borrowable
borrowed()
[last copy]
TCS2411 Software Engineering
borrowed()
[not last copy]
30
Deliverables from Unified Modeling
Language Approach OOA
Use Case Diagram
Sequence Diagram
Class Diagram
State Transition Diagram
TCS2411 Software Engineering
31
Object-Oriented Design
Detailed specifications of the following:
Subsystems or class categories
Partitioning the system, providing interfaces,
interactions, and mapping to targeted system
Class definitions
structure or representation
behaviour or operations
implementation algorithms
additional support classes for implementation
TCS2411 Software Engineering
32
Object-Oriented Design
(Continued)
Class relationships
Containment
Referencing
Aggregation
Inheritance
Object diagrams and object relationships
Descriptions of how objects interact
Class interaction - what classes are used by
another class
TCS2411 Software Engineering
33
Object-Oriented Design
(Continued)
State transition
Extends state transition diagrams in analysis
Timing diagrams
Extends timing diagrams in analysis
Designing algorithms
implementation algorithms and logic
Physical compilation units
Compilation modules, interface specifications
TCS2411 Software Engineering
34
UML Approach to OOD
Object Oriented Design
System Design
Software
Architecture
TCS2411 Software Engineering
Object Design
Object
Description
Object
Interaction
35
System Design
Partition the Analysis Model
Refine analysis objects using inheritance, pattern and
encapsulation
Package into subsystem or modules
Can be characterized by responsibility
Design artifact may include
Refined class diagram
Interaction, activity component & deployment diagram
State models
Composed classes into packages. Composition can be done
base on
Use cases
Unit of physical realization
Processing
TCS2411 Software Engineering
36
System Design
(continued)
Concurrency and Subsystem Allocation
Assign concurrency if classes are active at the same
time
Implement on the same processor hardware
Concurrent is defined by examining the state
diagram
Establish thread for active object
Thread control continues when it sends message to another
object and wait for responses
Isolate these thread controls
Consider performance, cost and overhead by
processor when allocates the object to the processor 37
TCS2411 Software Engineering
System Design
(Continued)
Task Management Component
How the task initiated
Common
Event driven
• Interrupt from outside source (Processor, sensor etc)
Clock driven
• Interrupt from system clock
Determine the task priority and criticality
High priority task must have immediate access to the
resources
High critical task must operate continually even if
resources availability is reduced or system operates in
degrade state.
TCS2411 Software Engineering
38
System Design
(continued)
User Interface Component
Define system menu and sub functions available for
the menu
Data Management Component
Data management for critical application
Layered design
Creation of infrastructure for storage and retrieval
Use database, files, shared memory
Design the attribute and operation to manage data
Resource Management Component
Subsystem may compete to use the same resources
at the same time
TCS2411 Software Engineering
39
System Design
(continued)
User Interface Component
Define system menu and sub functions available for
the menu
Data Management Component
Data management for critical application
Layered design
Creation of infrastructure for storage and retrieval
Use database, files, shared memory
Design the attribute and operation to manage data
Resource Management Component
Subsystem may compete to use the same resources
at the same time
TCS2411 Software Engineering
40
Activity Diagram
Activity diagram
Activities coordination
To show how an operation can be
implemented
Useful when an operation has to achieve a
number of different things
Record dependencies between activities
Which thing can happen in parallel
What must finished first before something
else can start
TCS2411 Software Engineering
41
Activity Diagram
member
librarian
[borrower]
Find book
on shelf
[returner]
Wait in queue
[returning]
[borrowing]
Record return
Put book back
on shelf
Record
borrowing
Prepare for
next member
TCS2411 Software Engineering
42
Object Design
Object Description
Establish object interface
Define message the object can receive
Operation the object can perform when it receives the
message
Implementation details
Objects private parts
Internal details about data structure
Details about the operation
Algorithms and Data Structure
Algorithm created to implements operation
specification
TCS2411 Software Engineering
43
Component Model
Component
Standard building unit that is used to develop an
application
Types of component
Source code (e.g: file containing code of the class)
Has to be available when compiled
Binary object code (e.g: class library)
Depends on any object code
Must be linked to form an executable program
Executable application (e.g: the client/server,
database manager)
May depend on other executable programs to interact at
runtime
TCS2411 Software Engineering
44
A component diagram showing compile time dependencies
component
streams.o
<<library>>
<<link>>
MyIO
dependency
<<compile>>
MyApp
<<executable>>
TCS2411 Software Engineering
45
Deployment Model
Deployment diagram shows
Physical communication links between hardware items
Machines, printers and other resources
Relationship between physical machines and processes
What runs where
association
shillay:Workstation
craro:PC
<<LAN>>
OXO:GameEngine
Node
P2:PlayerInterface
P1:PlayerInterface
TCS2411 Software Engineering
•Processor, capable of
running the software
component
•Device that provides
service
46
Deliverables from UML
Approach to OOD
Class Diagram (Refined)
State Transition Diagram (Refined)
Component Diagram
Deployment Diagram
TCS2411 Software Engineering
47
References
“Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S.
Pressman, Mc-Graw-Hill, 2001
“Object-Oriented Modeling and Design” by James Rumbaugh et al,
Prentice Hall, 1991
“Object Orientation” by Setrag Khoshafian & Razmik Abnous, John
Wiley & Sons, 1995
“Teach Your Self UML in 24 hours” by Joseph Schmuller, Sams
Publication, 2001
“Mastering UML with Rational Rose” by Wendy Boggs and Michael
Boggs, Sybex Inc, 2000
“Using UML Software Engineering With Objects and Components” by
Perdita Stevens, Rob Pooley, Addison Wesley, 2000
TCS2411 Software Engineering
48