1. Identifying Classes and Objects
Object Oriented Analysis
TSRK Prasad
Department of CSE
BITS, Pilani - KK Birla Goa Campus
Object Oriented Programming
2. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
2 / 25
3. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
3 / 25
4. Identifying Classes and Objects
Classical Approaches
Derive classes based on ideas of classification.
Classical Approaches 4 / 25
5. Identifying Classes and Objects
Classical Approaches
Derive classes based on ideas of classification.
Shaler and Mellor:
Tangible things, Roles, Events, Interactions
Classical Approaches 4 / 25
6. Identifying Classes and Objects
Classical Approaches
Derive classes based on ideas of classification.
Shaler and Mellor:
Tangible things, Roles, Events, Interactions
Ross:
People, Places, Things, Organizations, Concepts, Events
Classical Approaches 4 / 25
7. Identifying Classes and Objects
Classical Approaches
Derive classes based on ideas of classification.
Shaler and Mellor:
Tangible things, Roles, Events, Interactions
Ross:
People, Places, Things, Organizations, Concepts, Events
Coad and Yourdon:
Structure, Other Systems, Devices, Events Remembered,
Roles Played, Locations, Organizational Units
Classical Approaches 4 / 25
8. Identifying Classes and Objects
Example
Identify classes for a tourist operator (ex: Paulo Travels) using
classical approaches.
Tangible Things – office, bus, location, garage, seat, waiting
hall, route, trip, . . .
Classical Approaches 5 / 25
9. Identifying Classes and Objects
Example
Identify classes for a tourist operator (ex: Paulo Travels) using
classical approaches.
Tangible Things – office, bus, location, garage, seat, waiting
hall, route, trip, . . .
Roles – employee, driver, passenger, agent, godown, . . .
Classical Approaches 5 / 25
10. Identifying Classes and Objects
Example
Identify classes for a tourist operator (ex: Paulo Travels) using
classical approaches.
Tangible Things – office, bus, location, garage, seat, waiting
hall, route, trip, . . .
Roles – employee, driver, passenger, agent, godown, . . .
Events – repair, halt, breakdown, trip start, . . .
Classical Approaches 5 / 25
11. Identifying Classes and Objects
Example
Identify classes for a tourist operator (ex: Paulo Travels) using
classical approaches.
Tangible Things – office, bus, location, garage, seat, waiting
hall, route, trip, . . .
Roles – employee, driver, passenger, agent, godown, . . .
Events – repair, halt, breakdown, trip start, . . .
Interactions – book ticket, drop passenger, board passenger,
book luggage, . . .
Classical Approaches 5 / 25
12. Identifying Classes and Objects
Example
Identify classes for a tourist operator (ex: Paulo Travels) using
classical approaches.
Tangible Things – office, bus, location, garage, seat, waiting
hall, route, trip, . . .
Roles – employee, driver, passenger, agent, godown, . . .
Events – repair, halt, breakdown, trip start, . . .
Interactions – book ticket, drop passenger, board passenger,
book luggage, . . .
Organizations – operations unit, franchise, web division, garage,
. . .
Classical Approaches 5 / 25
13. Identifying Classes and Objects
Example
Identify classes for a tourist operator (ex: Paulo Travels) using
classical approaches.
Tangible Things – office, bus, location, garage, seat, waiting
hall, route, trip, . . .
Roles – employee, driver, passenger, agent, godown, . . .
Events – repair, halt, breakdown, trip start, . . .
Interactions – book ticket, drop passenger, board passenger,
book luggage, . . .
Organizations – operations unit, franchise, web division, garage,
. . .
Locations – city, town, village, bypass, . . .
Classical Approaches 5 / 25
14. Identifying Classes and Objects
Example
Identify classes for a tourist operator (ex: Paulo Travels) using
classical approaches.
Tangible Things – office, bus, location, garage, seat, waiting
hall, route, trip, . . .
Roles – employee, driver, passenger, agent, godown, . . .
Events – repair, halt, breakdown, trip start, . . .
Interactions – book ticket, drop passenger, board passenger,
book luggage, . . .
Organizations – operations unit, franchise, web division, garage,
. . .
Locations – city, town, village, bypass, . . .
Other Systems – toll gates, revenue department, bus dealers,
. . .
Classical Approaches 5 / 25
15. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
Structured Analysis 6 / 25
16. Identifying Classes and Objects
Structured Analysis
Idea: Use structural analysis as front-end to Object-oriented
design
Structured Analysis 7 / 25
17. Identifying Classes and Objects
Structured Analysis
Idea: Use structural analysis as front-end to Object-oriented
design
Obtain candidate objects from:
External entities, data stores, control stores, control
transformations
Structured Analysis 7 / 25
18. Identifying Classes and Objects
Structured Analysis
Idea: Use structural analysis as front-end to Object-oriented
design
Obtain candidate objects from:
External entities, data stores, control stores, control
transformations
Obtain candidate classes from:
data flows, control flows
Structured Analysis 7 / 25
19. Identifying Classes and Objects
Structured Analysis
Idea: Use structural analysis as front-end to Object-oriented
design
Obtain candidate objects from:
External entities, data stores, control stores, control
transformations
Obtain candidate classes from:
data flows, control flows
Not recommended approach
Structured Analysis 7 / 25
20. Identifying Classes and Objects
Data Flow and Control Flow Diagrams
Data Flow Diagram:
Structured Analysis 8 / 25
21. Identifying Classes and Objects
Data Flow and Control Flow Diagrams
Data Flow Diagram:
Control Flow Diagram:
Structured Analysis 8 / 25
22. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
Informal English Description 9 / 25
23. Identifying Classes and Objects
Informal English Description
nouns ÝÑ objects
Informal English Description 10 / 25
24. Identifying Classes and Objects
Informal English Description
nouns ÝÑ objects
verbs ÝÑ operations
Informal English Description 10 / 25
25. Identifying Classes and Objects
Informal English Description
nouns ÝÑ objects
verbs ÝÑ operations
Problem? Nouns can be verbed, verbs can be nouned.
Informal English Description 10 / 25
26. Identifying Classes and Objects
Example on Informal English Description
... If a customer enters a store with the intention of buying a toy
for a child, then advice must be available within a reasonable
time concerning the suitability of the toy for the child. This will
depend on the age range of the child and the attributes of the
toy. If the toy is a dangerous item, then it is unsuitable. ...
Informal English Description 11 / 25
27. Identifying Classes and Objects
Example on Informal English Description
... If a customer enters a store with the intention of buying a toy
for a child, then advice must be available within a reasonable
time concerning the suitability of the toy for the child. This will
depend on the age range of the child and the attributes of the
toy. If the toy is a dangerous item, then it is unsuitable. ...
Ans:
... If a customer enters a store with the intention of buying a toy
for a child, then advice must be available within a reasonable
time concerning the suitability of the toy for the child. This will
depend on the age range of the child and the attributes of the
toy. If the toy is a dangerous item, then it is unsuitable. ...
Notation: class operation attributes/associations
Informal English Description 11 / 25
29. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
Domain Analysis 13 / 25
30. Identifying Classes and Objects
Domain Analysis
Idea: Identify classes and objects that are common to all
applications with in a given domain.
Domain Analysis 14 / 25
31. Identifying Classes and Objects
Domain Analysis
Idea: Identify classes and objects that are common to all
applications with in a given domain.
Moore and Bailin Approach:
1 Construct strawman model of domain
Domain Analysis 14 / 25
32. Identifying Classes and Objects
Domain Analysis
Idea: Identify classes and objects that are common to all
applications with in a given domain.
Moore and Bailin Approach:
1 Construct strawman model of domain
2 Construct/collect models of existing softwares serving the
domain
Domain Analysis 14 / 25
33. Identifying Classes and Objects
Domain Analysis
Idea: Identify classes and objects that are common to all
applications with in a given domain.
Moore and Bailin Approach:
1 Construct strawman model of domain
2 Construct/collect models of existing softwares serving the
domain
3 Reconcile the differences
Domain Analysis 14 / 25
34. Identifying Classes and Objects
Domain Analysis
Idea: Identify classes and objects that are common to all
applications with in a given domain.
Moore and Bailin Approach:
1 Construct strawman model of domain
2 Construct/collect models of existing softwares serving the
domain
3 Reconcile the differences
4 Refine strawman model to accommodate existing models
Domain Analysis 14 / 25
35. Identifying Classes and Objects
Example on Domain Analysis
Hospital Domain
Domain Analysis 15 / 25
36. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
Object Behavioral Analysis 16 / 25
37. Identifying Classes and Objects
Object Behavioral Analysis (OBA)
Idea: Form classes based on groups of objects that exhibit
similar behavior.
Object Behavioral Analysis 17 / 25
38. Identifying Classes and Objects
Object Behavioral Analysis (OBA)
Idea: Form classes based on groups of objects that exhibit
similar behavior.
Two suggestions:
1 Responsibility identification
Responsibility - service provided by object(s) for all
contracts it supports.
Object Behavioral Analysis 17 / 25
39. Identifying Classes and Objects
Object Behavioral Analysis (OBA)
Idea: Form classes based on groups of objects that exhibit
similar behavior.
Two suggestions:
1 Responsibility identification
Responsibility - service provided by object(s) for all
contracts it supports.
2 Behavior allocation
1 Assign system behavior to parts of the system.
2 Initiators of / participants in behaviors are objects
Object Behavioral Analysis 17 / 25
40. Identifying Classes and Objects
Object Behavior Analysis (OBA) Exercise
Identify objects and behaviors in a regular OOP lab of this
course.
Object Behavioral Analysis 18 / 25
41. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
CRC Cards 19 / 25
42. Identifying Classes and Objects
CRC Cards
CRC stands for Class/Responsibilities/Collaborators
CRC Card Format
CRC Cards 20 / 25
43. Identifying Classes and Objects
CRC Cards
CRC stands for Class/Responsibilities/Collaborators
CRC Card Format
CRC Card for Student Class
CRC Cards 20 / 25
44. Identifying Classes and Objects
CRC Card Layout
cards can be arranged as class/object hierarchy
CRC Cards 21 / 25
45. Identifying Classes and Objects
Lecture Outline
1 Classical Approaches
2 Structured Analysis
3 Informal English Description
4 Domain Analysis
5 Object Behavioral Analysis
6 CRC Cards
7 Use Case Analysis
Use Case Analysis 22 / 25
46. Identifying Classes and Objects
Use Case Analysis
A behaviourally related sequence of transactions
performed by an actor in a dialogue with the system to
provide some measurable value to the actor.
–Jacobson et. al.
Use Case Analysis 23 / 25
47. Identifying Classes and Objects
Use Case Analysis
A behaviourally related sequence of transactions
performed by an actor in a dialogue with the system to
provide some measurable value to the actor.
–Jacobson et. al.
Approach: In each use case,
1 Identify the participating objects (Classes)
Use Case Analysis 23 / 25
48. Identifying Classes and Objects
Use Case Analysis
A behaviourally related sequence of transactions
performed by an actor in a dialogue with the system to
provide some measurable value to the actor.
–Jacobson et. al.
Approach: In each use case,
1 Identify the participating objects (Classes)
2 Identify the responsibilities of each object (Responsibilities)
Use Case Analysis 23 / 25
49. Identifying Classes and Objects
Use Case Analysis
A behaviourally related sequence of transactions
performed by an actor in a dialogue with the system to
provide some measurable value to the actor.
–Jacobson et. al.
Approach: In each use case,
1 Identify the participating objects (Classes)
2 Identify the responsibilities of each object (Responsibilities)
3 Identify the collaborations / relations between objects
(Collaborators)
Use Case Analysis 23 / 25
50. Identifying Classes and Objects
Use Case Analysis
A behaviourally related sequence of transactions
performed by an actor in a dialogue with the system to
provide some measurable value to the actor.
–Jacobson et. al.
Approach: In each use case,
1 Identify the participating objects (Classes)
2 Identify the responsibilities of each object (Responsibilities)
3 Identify the collaborations / relations between objects
(Collaborators)
Use case analysis serves as basis of system tests.
Use Case Analysis 23 / 25