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