Download as pdf or txt
Download as pdf or txt
You are on page 1of 107

UNIT-III

Identifying use cases : Business object analysis –The unified approach-


Business process modeling – Use case model– Developing effective
documentation - Object Analysis Classification : Classifications theory –
Approaches foridentifying classes – Noun phrase approach – Common
class patterns approach – Use case driven approach –Classes,
responsibilities and collaborators – Naming classes - Identifying Object
relationships, Attributes and Methods:Associations – Super sub class
relationship – A part of relationships (aggregation) – Class responsibility
– Object responsibility.

5/4/2022
Object-Oriented
Analysis Principles
using UML

5/4/2022 2
• Identifying Use Cases
• Object Analysis: Classification
• Identifying object relationships, Attributes
and Methods.

5/4/2022 3
1.Object oriented analysis
Process: Identifying Use cases
What Is Analysis?
• Analysis is the process of transforming
a problem definition from a fuzzy set of
facts and myths into a coherent
statement of a system’s requirements.

5/4/2022 5
Analysis
• The main objective of the analysis is to
capture:
– a complete, unambiguous, and consistent
picture of the requirements of the system
and
– system must do to satisfy the users'
requirements and needs.

5/4/2022 6
class FactorialExample{
public static void main(String args[]){
int i,fact=1;
int number=5;//It is the number to calculate factorial

for(i=1;i<=number;i++){
fact=fact*i;
}
System.out.println("Factorial of "+number+" is: "+fact);

}
}

5/4/2022
The Object-Oriented Analysis
(OOA) Process
• The process consists of the following
steps:
• 1. Identify the actors:
– Who is using the system?
– Or, in the case of a new system, who will be
using system?

5/4/2022 8
The OOA Process (Con’t)
• 2. Develop a simple business process
model using UML activity diagram.

5/4/2022 9
The OOA Process (Con’t)
• 3. Develop the use case:
– What the users are doing with the system?
– Or, in the case of a new system, what
users will be doing with the system?

Use cases provide us with comprehensive


documentation of the system under study.

5/4/2022 10
The OOA Process (Con’t)
• 4. Prepare interaction diagrams:
– Determine the sequence.
– Develop collaboration diagrams.

5/4/2022 11
The OOA Process (Con’t)
• 5. Classification—develop a static UML
class diagram:
– Identify classes.
– Identify relationships.
– Identify attributes.
– Identify methods.

5/4/2022 12
The OOA Process (Con’t)
• 6. Iterate and refine: If needed, repeat
the preceding steps.

Develop Use- Develop Identify Classes,


Cases, ADs Refine
Interaction Relationships, and
Diagrams Attributes & iterate
Identify Actors prototyping Methods

O-O Analysis
5/4/2022 13
Use Case Model
• Use cases are scenarios for understanding
system requirements.
• The use-case model describes the uses of
the system and shows the courses of events
that can be performed.
• Some Definitions
– User – Human Users + Other Systems
– Use Case – A piece of functionality
– Use-Case Model – All the use cases
– Use-Case Driven – Development
process follows a flow
5/4/2022 14
Use case Driven
Product development is Use case driven:
• Capture the user’s needs (requirements - in users context)
- Helps in Project Scheduling
• Analyse to specify the needs
• Design to realize the needs
• Implement to implement the needs
• Test to verify the needs Verified by
Test1 Test3

Implemented by Test2

Realized by
Use cases Test
Specified by Design1

Design2

Design4

Design3
Implementation
5/4/2022 15
Design
Analysis
Use Cases Under the
Microscope
• "A Use Case is a sequence of
transactions in a system whose task is
to yield results of measurable value to
an individual actor of the system."
What is a
Use Case
again?

5/4/2022 16
Library

Borrow books uses

Checking Library Card


extends
uses
Inter library loan
Circulation Clerk
Member Return Books
Performing research

Reading books Supplier


Newspaper
Purchasing Supplies
5/4/2022 17
Identifying the use cases: Goals
• The use-case approach to object-oriented
analysis and the object-oriented analysis
process.
• Identifying actors.
• Identifying use cases.
• Documentation.

5/4/2022 18
Identifying the Actors
• The term actor represents the role a
user plays with respect to the system.

5/4/2022 19
Identifying the Actors (Con’t)
• Candidates for actors can be found
through the answers to the following
questions:
– Who is using the system? Or,
– Who is affected by the system? Or,
– Which groups need help from the system
to perform a task?

5/4/2022 20
Guidelines for Finding Use
Cases
• For each actor, find the tasks and
functions that the actor should be able
to perform or that the system needs the
actor to perform.
• Name the use cases.
• Describe the use cases briefly by
applying terms with which the user is
familiar.

5/4/2022 21
Documentation
• An effective document can serve as a
communication vehicle among the
project's team members,

• or it can serve as initial understanding


of the requirements.

5/4/2022 22
Effective Documentation:
Common Cover
• All documents should share a common
cover sheet that identifies the
document, the current version, and the
individual responsible for the content.
80–20 Rule
• 80 percent of the work can be done with 20
percent of the documentation.
• The trick is to make sure that the 20 percent
is easily accessible and the rest (80 percent)
is available to those (few) who need to
know.

80%-20%
Familiar Vocabulary
• Use a vocabulary that your readers
understand and are comfortable with.

5/4/2022 25
Make the Document as Short as
Possible
• Eliminate all repetition;
• Present summaries, reviews,
organization chapters in less than three
pages;
• Make chapter headings task
oriented so that the table of
contents also could serve as
an index.
5/4/2022 26
Organize the Document
Object Analysis:
• Classification
Use the rules of good organization
(such as the organization's standards,
college handbooks)

5/4/2022 27
Introduction
• Classification: is the process of checking to see
if an object belongs to a category or a class, is
regarded as a basic attribute of human nature.
Example: Classifying the car

5/4/2022 28
class Employee{
float salary=40000;
}
class Programmer extends Employee{
int bonus=10000;
public static void main(String args[]){
Programmer p=new Programmer();
System.out.println("Programmer salary is:"+p.salary);
System.out.println("Bonus of Programmer is:"+p.bonus);
}
}

5/4/2022 29
What is a Class ?
• A Class is a software template that defines
the methods and variables to be included
in a particular kind of Object.
• Examples :
Animal, Human being, Automobiles

5/4/2022 30
Approaches for Identifying
Classes
• The noun phrase approach.
• The common class patterns approach.
• The use-case driven approach.
• The class responsibilities collaboration
(CRC) approach.

5/4/2022 31
Noun Phrase Approach
• Using this method, you have to read
through the Use cases, interviews, and
requirements specification carefully,
looking for noun phrases.

5/4/2022 32
Noun Phrase Strategy (Con’t)

5/4/2022 33
Guidelines For Refining Classes
Redundant Classes:
• Do not keep two classes that express
the same information.
• If more than one word is being
used to describe the same idea,
select the one that is the most
meaningful in the context of the
system.
5/4/2022 34
Guidelines For Refining Classes
(Con’t)
Adjective Classes:
• Does the object represented by the noun
behave differently when the adjective is
applied to it?

5/4/2022 35
Guidelines For Refining Classes
(Con’t)
Attribute Classes:
• Tentative objects which are used only
as values should be defined or restated
as attributes and not as a class.
• For example the demographics of
Membership are not classes but
attributes of the Membership class.

5/4/2022 36
Guidelines For Refining Classes
(Con’t)
Irrelevant Classes:
• Each class must have a purpose and
every class should be clearly defined
and necessary.
• If you cannot come up with a statement
of purpose, simply eliminate the
candidate class.

5/4/2022 37
Identifying a list of candidate classes

• Take a coherent, concise statement of the


requirement of the system
• Underline its noun and noun phrases, that is,
identify the words and phases the denote things
• This gives a list of candidate classes, which we
can then modify to get an initial class list for the
system
5/4/2022 38
In this particular case we discard
• Library, because it is outside the scope of our system
• Short term loan, because a loan is really an event,
which so far as we know is not a useful object in this
system
• Member of the library, which is redundant
• Week, because it is a measure, not a thing
• Item, because it is vague (we need to clarify it)
• Time, because it is outside the scope of the system
• System, because it is part of the meta-language of
requirements description, not a part of domain
• Rule, for the same reason

5/4/2022 39
This leaves:
• Book
• Journal
• Copy (of book)
• Library member
• Member of staff

5/4/2022 40
Common Class Patterns Approach
• This approach is based on the knowledge-
base of the common classes that have
been proposed by various researchers.

5/4/2022 41
Candidate Classes - Events
• These are points in time that must be
recorded and remembered.
• Things happen, usually to something
else, at a given date and time, or as a
step in an ordered sequence.
• For example order which is an
event that must be remembered.

5/4/2022 42
Candidate Classes - Organization
• The organizational units that people
belong to.
• For example, accounting department
might be considered as a potential
class.

5/4/2022 43
Candidate Classes - People and
Person (Roles and Roles Played)
• The different roles users play in interacting
with the application.

5/4/2022 44
Candidate Classes - People (Con’t)
• It can be divided into two types (Coad &
Yourdon):
• Those representing users of the system,
such as an operator, or a clerk;

5/4/2022 45
Candidate Classes - People (Con’t)
• Those people who do not use the
system but about whom information is
kept.
– Some examples are Client, Employee,
Teacher, Manager.

5/4/2022 46
Candidate Classes - Places
• These are physical locations, such as
buildings, stores, sites or offices that the
system must keep information about.

5/4/2022 47
Candidate Classes - Concepts
• Concepts are principles or
ideas not tangible but used to
organize or keep track of
business activities and/or
communications.

5/4/2022 48
Use-case Driven Approach

• Once the system has been described in


terms of its scenarios, we can examine
the textual description or steps of each
scenario to determine what objects are
needed for the scenario to occur.

5/4/2022 49
Use-case Driven Approach
• To identify objects of a system and
their behaviors, the lowest level of
executable use cases is further
analyzed with a sequence and
collaboration diagram pair.
• By walking through the steps, you can
determine what objects are necessary
for the steps to take place.

5/4/2022 50
C lie n t A T M M a c h in e B a n k C lie n t

In s e rt A T M c a rd

R e q u e s t P IN

R e q u e s t P IN n u m b e r

V e rify P IN N u m b e r

B a d P IN N u m b e r

B a d P IN N u m b e r
M essage

E je c t A T M c a rd

R e q u e s t ta k e c a rd

T a k e c a rd
D is p la y m a in s c re e n

5/4/2022 51
Bank Client ATM Machine Account Checking Account

Request Kind

Enter Kind

Request Amount
Enter Amount

Process Transaction
Withdraw Checking Account
Transaction succeed Withdraw Successful

Dispense Cash

Request Take Cash


Take Cash
Request Continuation
Terminate
Print Receipt

5/4/2022 52
2: Enter Kind
5: Process Transaction
4: Enter Amount
13: Terminate
Account ATM Machine:Definition Bank Client

8: Transaction succeed
1: Request Kind
3: Request Amount
9: Dispense Cash
10: Request Take Cash
7: Withdraw Successful 6: Withdraw Checking Account
11: Take Cash
12: Request Continuation
Checking Account 14: Print Receipt

5/4/2022 53
COLLABORATION DIAGRAM
• A Collaboration is a name given to the
interaction among two or more
classes\objects.
• Collaboration Diagram show
– objects and their links to each other, as well
as
– how messages are sent between the linked
objects.
5/4/2022 54
CRC Cards
• CRC stands for Class, Responsibilities
and Collaborators developed by
Cunningham, Wilkerson and Beck.
• CRC can be used for identifying classes
and their responsibilities.

5/4/2022 55
Process of the CRC Technique

Identify
Classes
responsibility

Iterate

Identify Assign
Collaboration responsibility

5/4/2022 56
class Student{
int rollno;
String name;
void insertRecord(int r, String n){
rollno=r;
name=n;
}
void displayInformation(){System.out.println(rollno+" "+name
);}
}
class TestStudent4{
public static void main(String args[]){
Student s1=new Student();
Student s2=new Student();
s1.insertRecord(111,"Karan");
s2.insertRecord(222,"Aryan");
s1.displayInformation();
s2.displayInformation(); } }
Identifying Object
Relationships, Attributes
and Methods

5/4/2022 58
Goals

• Analyzing relationships among classes.


• Identifying association.
• Association patterns.
• Identifying super- and subclass
hierarchies.

5/4/2022 59
Introduction
• Identifying aggregation or a-part-of
compositions.
• Class responsibilities.
• Identifying attributes and methods by
analyzing use cases and other UML
diagrams.

5/4/2022 60
Objects Relationships
• Three types of relationships among
objects are:
– Association.
– Super-sub structure (also known as
generalization hierarchy).
– Aggregation and a-part-of structure.

5/4/2022 61
Associations
• A reference from one class to another is an
association.
• Basically a dependency between two or
more classes is an association.
• For example, Jackie
works for John.

5/4/2022 62
Associations (Con’t)

• Some associations are implicit or taken


from general knowledge.

5/4/2022 63
Guidelines For Identifying
Associations
• Association often appears as a verb in a
problem statement and represents
relationships between classes.
• For example a pilot can fly planes.

5/4/2022 64
Guidelines For Identifying
Associations (Con’t)
• Association often corresponds to verb
or prepositional phrases such as part of,
next to, works for, contained in,
etc.

5/4/2022 65
Common Association Patterns

• Common association patterns include:


• Location Association: next To, part of,
contained in, ingredient of etc. :
• For example cheddar cheese is an
ingredient of the French soup.

5/4/2022 66
Common Association Patterns
(Con’t)
• Communication association—talk to, order
to.
• For example, a customer places an order
with an operator person.

Customer Operator

Order

5/4/2022 67
Eliminate Unnecessary
Associations
• Implementation association. Defer
implementation-specific associations to the
design phase.
• Ternary associations. Ternary or n-ary
association is an association among more
than two classes

5/4/2022 68
Eliminate Unnecessary
Associations (Con’t)
• Directed actions (derived) associations
can be defined in terms of other
associations.
• Since they are redundant you should avoid
these types of association.

5/4/2022 69
Eliminate Unnecessary
Associations (Con’t)
• Grandparent of Ken can be defined
in terms of the parent association.
Grand Parent
John of Ken

Parent Parent
of Brian of
John Ken
5/4/2022 70
Superclass-Subclass
Relationships
• Recall that at the top of the class hierarchy
is the most general class, and from it
descend all other, more specialized
classes.
• Sub-classes are more specialized versions
of their super-classes.

5/4/2022 71
class Employee{
float salary=40000;
}
class Programmer extends Employee{
int bonus=10000;
public static void main(String args[]){
Programmer p=new Programmer();
System.out.println("Programmer salary is:"+p.salary);
System.out.println("Bonus of Programmer is:"+p.bonus);

}
}

72
Guidelines For Identifying
Super-sub Relationships: Top-
down
• Look for noun phrases composed of
various adjectives on class name.
• Example, Military Aircraft and Civilian
Aircraft.
• Only specialize when the sub
classes have significant behavior.

5/4/2022 73
Guidelines For Identifying
Super-sub Relationships:
Bottom-up
• Look for classes with similar attributes or
methods.
• Group them by moving the common
attributes and methods to super class.
• Do not force classes to fit a preconceived
generalization structure.

5/4/2022 74
Guidelines For Identifying
Super-sub Relationships:
Reusability
• Move attributes and methods as high as
possible in the hierarchy.
• At the same time do not create very
specialized classes at the top of hierarchy.
• This balancing act can be
achieved through several
iterations.

5/4/2022 75
class Employee{
float salary=40000;
}
class Programmer extends Employee{
int bonus=10000;
public static void main(String args[]){
Programmer p=new Programmer();
System.out.println("Programmer salary is:"+p.salary);
System.out.println("Bonus of Programmer is:"+p.bonus);

}
}

76
Guidelines For Identifying
Super-sub Relationships:
Multiple inheritance
• Avoid excessive use of multiple
inheritance.
• It is also more difficult to understand
programs written in multiple
inheritance system.

5/4/2022 77
Multiple inheritance (Con’t)
• One way to achieve the benefits of multiple
inheritance is to inherit from the most
appropriate class and add an object of other
class as an attribute.
• In essence, a multiple inheritance can be
represented as an aggregation
of a single inheritance and
Multiple Inheritance
aggregation. This meta
model reflects this
situation.

Single Inheritance Aggregation


5/4/2022 78
class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void bark(){System.out.println("barking...");}
}
class BabyDog extends Dog{
void weep(){System.out.println("weeping...");}
}
class TestInheritance2{
public static void main(String args[]){
BabyDog d=new BabyDog();
d.weep();
d.bark();
d.eat();
}
79
}
A-Part-of Relationship -
Aggregation

• A-part-of relationship, also called


aggregation, represents the situation
where a class consists of several
component classes.

5/4/2022 80
A-Part-of Relationship -
Aggregation (Con’t)
• This does not mean that the class
behaves like its parts.
• For example, a car consists of many other
classes, one of them is a radio,
but a car does not Car

behave like a radio.


Engine Radio

5/4/2022 Carburetor 81
A-Part-of Relationship -
Aggregation (Con’t)
• Two major properties of a-part-of
relationship are:
– transitivity
– antisymmetry

5/4/2022 82
Transitivity
• If A is part of B and B is part of C, then A
is part of C.
• For example, a carburetor is part of an
engine and an engine is part of a car;
therefore, a carburetor is part of a car.

5/4/2022 83
Antisymmetry
• If A is part of B, then B is not part of A.
• For example, an engine is part of a car,
but a car is not part of an engine.

5/4/2022 84
Where responsibilities for
certain behavior must reside?
• Does the part class belong to problem
domain?
• Is the part class within the system's
responsibilities?

5/4/2022 85
where responsibilities ...(Con’t)
• Does the part class capture more than a
single value?
• If it captures only a single value, then
simply include it as an attribute with the
whole class.
• Does it provide a useful abstraction in
dealing with the problem domain?

5/4/2022 86
A-Part-of Relationship Patterns
Assembly
• An assembly-Part situation physically
exists.
• For example, a French soup consists of
onion, butter, flour, wine, French bread,
cheddar cheese, etc.

5/4/2022 87
A-Part-of Relationship
Patterns
Container

• A case such as course-teacher situation,


where a course is considered as a
container. Teachers are assigned to
specific courses.

5/4/2022 88
A-Part-of Relationship Patterns
Collection-Member
• A soccer team is a collection of players.

Football Team

Player

5/4/2022 89
Class Responsibility:
Identifying Attributes and
Methods
• Identifying attributes and methods, like
finding classes, is a difficult activity.
• The use cases and other UML diagrams
will be our guide for identifying attributes,
methods, and relationships among
classes.

5/4/2022 90
Identifying Class Responsibility
by Analyzing Use Cases and
Other UML Diagrams
• Attributes can be identified by
analyzing the use cases,
sequence/collaboration, activity, and
state diagrams.

5/4/2022 91
Responsibility
• How am I going to be used?
• How am I going to collaborate with other
classes?
• How am I described in the context of
this system's responsibility?
• What do I need to know?
• What state information do I need to
remember over time?
• What states can I be in?
5/4/2022 92
Assign Each Responsibility To
A Class
• Assign each responsibility to the class
that it logically belongs to.
• This also aids us in determining the
purpose and the role that each class
plays in the application.

5/4/2022 93
Object Responsibility: Attributes
• Information that the system needs to
remember.

5/4/2022 94
Guidelines For Identifying
Attributes Of Classes
• Attributes usually correspond to nouns
followed by possessive phrases such as
cost of the soup.

5/4/2022 95
Guidelines For Identifying
Attributes Of Classes (Con’t)
• Keep the class simple; only state enough
attributes to define the object state.

5/4/2022 96
Guidelines For Identifying
Attributes Of Classes (Con’t)
• Attributes are less likely to be fully
described in the problem statement.
• You must draw on your
knowledge of the application
domain and the real
world to find them.

5/4/2022 97
Guidelines For Identifying
Attributes Of Classes (Con’t)
• Omit derived attributes.
• For example, don't use age as an attribute
since it can be derived from date of birth.
• Drive attributes should be expressed as a
method.

5/4/2022 98
Guidelines For Identifying
Attributes Of Classes (Con’t)
• Do not carry discovery of attributes to
excess.
• You can always add more attributes in the
subsequent iterations.

5/4/2022 99
Object Responsibility: Methods
& Messages
• Methods and messages are the work
horses of object-oriented systems.
• In O-O environment, every
piece of data, or object,
is surrounded by a rich set
of routines called methods.

5/4/2022 100
Identifying Methods by
Analyzing UML Diagrams and
Use Cases
• Sequence diagrams can assist us in
defining the services the objects must
provide.

5/4/2022 101
Identifying Methods (Con’t)
ATM Account
B a n k C lie n t C h e c k in g A c c o u n t
M a c h in e

R e q u e s t K in d

E n te r K in d

R e q u e st Am o u n t
E n te r A m o u n t

P r o c e s s T r a n s a c tio n
W ith d r a w C h e c k in g A c c o u n t
T r a n s a c tio n s u c c e e d W ith d r a w S u c c e s s fu l

D is p e n s e C a s h

R e q u e st Ta ke C a sh
Take C ash
R e q u e s t C o n tin u a tio n
T e r m in a te
P r in t R e c e ip t

5/4/2022 102
Identifying Methods (Con’t)
• Methods usually correspond to queries
about attributes (and sometimes
association) of the objects.
• Methods are responsible for managing
the value of attributes such as query,
updating, reading and writing.

5/4/2022 103
Identifying Methods (Con’t)
• For example, we need to ask the
following questions about soup class:
• What services must a soup class
provide? And
• What information (from domain
knowledge) is soup class responsible
for storing?

5/4/2022 104
Identifying Methods (Con’t)
• Let's first take a look at its attributes
which are:
• name
• preparation,
• price,
• preparation time and
• oven temperature.

5/4/2022 105
Identifying Methods (Con’t)
• Now we need to add methods that can
maintain these attributes.
• For example, we need a method to
change a price of a soup and another
operation to query about the price.

5/4/2022 106
Identifying Methods (Con’t)
• setName
• getName
• setPreparation
• get Preparation
• setCost
• getCost
• setOvenTemperature
• getOvenTemperature
• setPreparationTime
• getPreparationTime

5/4/2022 107

You might also like