SlideShare une entreprise Scribd logo
1  sur  147
Unit-3
• Identifying use cases
• Object Analysis
• Classification
• Identifying Object relationships
• Attributes and Methods.
Agenda
• Identifying Use Cases
• Object Analysis: Classification
• Identifying object relationships, Attributes
and Methods.
1.Object oriented analysis
Process: Identifying Use cases
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.
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.
Analysis
• The main objective of the analysis is to
capture:
– a complete, unambiguous, and consistent
picture of the requirements of the system
and
– what the system must do to satisfy the
users' requirements and needs.
Where Should We Start?
• 1. Examination of existing system
documentation.
• 2. Interviews.
• 3. Questionnaire.
• 4. Observation.
Requirements Difficulties
Three most common sources of
requirements difficulties are:
1. Incomplete requirements.
2. Fuzzy descriptions (such as fast
response).
3. Unneeded features.
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?
The OOA Process (Con’t)
• 2. Develop a simple business process
model using UML activity diagram.
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.
The OOA Process (Con’t)
• 4. Prepare interaction diagrams:
– Determine the sequence.
– Develop collaboration diagrams.
The OOA Process (Con’t)
• 5. Classification—develop a static UML
class diagram:
– Identify classes.
– Identify relationships.
– Identify attributes.
– Identify methods.
The OOA Process (Con’t)
• 6. Iterate and refine: If needed, repeat
the preceding steps.
Refine
and
iterateIdentify Actors
Develop Use-
Cases, ADs
Develop
Interaction
Diagrams
Identify Classes,
Relationships,
Attributes &
Methods
O-O Analysis
prototyping
Developing Business Processes
• Developing an activity diagram of the
business processes can provide us with
an overall view of the system.
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
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
Use cases Test
Test1
Test2
Test3
Verified by
Implementation
Implemented by
Design
Design2
Design1
Design3
Design4
Realized by
Analysis
Specified by
Product development is Use case driven:
Use Case Model (Con’t)
• Use case defines what happens in the
system when a use case is performed.
• The use-case model tries to
systematically identify uses of the
system and therefore the system's
responsibilities.
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?
Use Case Key Concepts
• Use case. Use case is a special flow of
events through the system.
• Actors. An actor is a user playing a role
with respect to the system.
• In a system. This simply means that the
actors communicate with the system's
use case.
Use Case Key Concepts (Con’t)
• A measurable value. A use case must
help the actor to perform a task that has
some identifiable value.
• Transaction. A transaction is an atomic
set of activities that are performed either
fully or not at all.
Use Associations
• The use association occurs when you
are describing your use cases and
notice that some of them have common
subflows.
• The use association allows you to
extract the common subflow and make
it a use case of its own.
Extends Associations
• The extends association is used when
you have one use case that is similar to
another use case but does a bit more or
• Is more specialized; in essence, it is like
a subclass.
Library
Borrow books
Reading books
Newspaper
Member
Supplier
Purchasing Supplies
Inter library loan
extends
uses
uses
Performing research
Return Books
Circulation Clerk
Checking Library Card
Fully Developed
Use Case Description
Use Case Name: Checkout Movies
Scenario: Checkout movies at counter
Triggering Event: Customer brings movies to checkout counter
Brief Description: When customer brings movies to counter, clerk checks membership ID,
clerk scans in each movie identifier, takes payment, and notifies
customer of return due date and time.
Actors: Video clerk
Related Use
Cases:
Add new member
Stakeholders: Clerk, Store manager
Preconditions: Movie titles must exist
Movie copy must exist
Customer must exist (or Add new member must be invoked)
Postconditions: Video Rental and rental line items must be created
Payment transaction must be created
Status of movie copy must be updated
Video Rental must be connected to customer family member
Use Case Diagram Notation
Actor
Association
Use Case
Use case with Extension points
<<Uses>>
<<Extends>>
Types of Use Cases
• Use cases could be viewed as concrete
or abstract.
• An abstract use case is not complete
and has no initiation actors but is used
by a concrete use case, which does
interact with actors.
Identifying the Actors
• The term actor represents the role a
user plays with respect to the system.
• When dealing with actors, it is important
to think about roles rather than
people or job titles.
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?
Identifying the Actors (Con’t)
– Who affects the system? Or,
– Which user groups are needed by the
system to perform its functions? These
functions can be both main functions and
secondary functions, such as
administration.
– Which external hardware or other systems
(if any) use the system to perform tasks?
Identifying the Actors (Con’t)
– What problems does this application solve
(that is, for whom)?
– And, finally, how do users use the system
(use case)? What are they doing with the
system?
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.
Separate Actors From Users
• Each use case should have only one
main actor.
• Isolate users from actors.
• Isolate actors from other actors
(separate the responsibilities of each
actor).
• Isolate use cases that have different
initiating actors and slightly different
behavior.
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.
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%
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.
Familiar Vocabulary
• Use a vocabulary that your readers
understand and are comfortable with.
• The main objective here is to
communicate with readers and not
impress them with buzz words.
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.
Organize the Document
• Use the rules of good organization
(such as the organization's standards,
college handbooks, Strunk and White's
Elements of Style, or the University of
Chicago Manual of Style) within each
section.
Summary
• The main objective of the analysis is to
capture a complete, unambiguous, and
consistent picture of the requirements of
the system.
• Construct several models and views of
the system to describe what the system
does rather than how.
Summary (Con’t)
• Capturing use cases is one of the first
things to do in coming up with
requirements.
• Every use case is a potential requirement.
Summary (Con’t)
• The key in developing effective
documentation is to eliminate all
repetition; present summaries, reviews,
organization chapters in less than three
pages.
• Use the 80–20 rule: 80 percent of the
work can be done with 20 percent of the
documentation.
Object Analysis: Classification
Introduction
• OOA is a process by which we can identify
classes that play a role in achieving system
goals and requirements
• Various Approaches for identifying the classes
• 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
What is an Object
– An object Is an unique, identifiable, self-
contained entity that possesses operations
and contains attributes
– • Possesses all the know-how and information
it needs to perform the services for which it
was designed
– Is a "black box" which receives and sends
messages
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.
• Is a blue print used to create objects. As it
is a blue print, at runtime it will not occupy
any memory.
• Examples :
Animal, Human being, Automobiles
Classes VS. Objects
Class Object
Class is a type/ template
for similar objects
Object is an instance of
the class
Class is purely a static
concept, represented by
program text
Objects are run time /
dynamic entities that
occupy space in memory
... Intelligent classification is intellectually
hard work, and it best comes about
through an incremental and iterative
process
Booch
..There is no such thing as the perfect
class structure, nor the right set of
objects. As in any engineering
discipline, our design choice is
compromisingly shaped by many
competing factors.
Booch
Point To Remember
Two Issues
• A class is a specification of structure,
behavior, and the description of an
object.
• Classification is more
concerned with identifying
classes than identifying the
individual objects ina system.
The Challenge of Classification
• Intelligent classification is intellectually
hard work and may seem rather
arbitrary.
• Martin and Odell have observed in
object-oriented analysis and
design, that
“In fact, an object can be categorized in
more than one way.”
Employer Employee
Pet Owner Good Credit Risk
Approaches for Identifying
Classes
• The noun phrase approach.
• The common class patterns approach.
• The use-case driven approach.
• The class responsibilities collaboration
(CRC) approach.
Noun Phrase Approach
• Using this method, you have to read
through the Use cases, interviews, and
requirements specification carefully,
looking for noun phrases.
Noun Phrase Strategy (Con’t)
• Change all plurals to singular and make
a list, which can then be divided into
three categories.
Noun Phrase Strategy (Con’t)
• It is safe to scrap the Irrelevant Classes.
• You must be able to formulate a
statement of purpose for each
candidate class; if not, simply eliminate
it.
• You must then select candidate classes
from the other two categories.
Guidelines For Identifying
Classes
• The followings are guidelines for
selecting classes in your application:
• Look for nouns and noun phrases in
the problem statement.
• Some classes are implicit or taken from
general knowledge.
Guidelines For Identifying
Classes (Con’t)
• All classes must make sense in the
application domain.
• Avoid computer implementation classes,
defer it to the design stage.
• Carefully choose and define class names.
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.
Guidelines For Refining Classes
(Con’t)
Adjective Classes:
• Does the object represented by the noun
behave differently when the adjective is
applied to it?
Guidelines For Refining Classes
(Con’t)
• If the use of the adjective signals that the
behavior of the object is different, then
make a new class.
• For example, If Adult Membership and
Youth Membership behave differently,
than they should be classified as different
classes.
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.
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.
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 whittle down and modify to get an
initial class list for the system
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
This leaves:
• Book
• Journal
• Copy (of book)
• Library member
• Member of staff
Common Class Patterns Approach
• This approach is based on the knowledge-
base of the common classes that have
been proposed by various researchers.
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.
Candidate Classes - Organization
• The organizational units that people
belong to.
• For example, accounting department
might be considered as a potential
class.
Candidate Classes - People and
Person (Roles and Roles Played)
• The different roles users play in interacting
with the application.
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;
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.
Candidate Classes - Places
• These are physical locations, such as
buildings, stores, sites or offices that the
system must keep information about.
Candidate Classes - Tangible
Things and Devices
• Physical objects, or group of objects, that
are tangible, and devices with which the
application interacts.
• For example, cars, pressure
sensors.
Candidate Classes - Concepts
• Concepts are principles or
ideas not tangible but used to
organize or keep track of
business activities and/or
communications.
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.
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.
Sequence Diagram Notation
Actor
Class
Synchronous message
Asynchronous message
Return message
Focus of Control
lifeline
Termination
C lient A TM M achine
B ad P IN N um ber
B ad P IN N um ber
M essage
E ject A TM card
R equest take card
Take card
D isplay m ain screen
V erify P IN N um ber
R equest P IN num ber
R equest P IN
Insert A TM card
B ankC lient
Checking AccountBank Client ATM Machine Account
Withdraw Checking Account
Withdraw Successful
Request Kind
Enter Kind
Request Amount
Enter Amount
Process Transaction
Transaction succeed
Dispense Cash
Request Take Cash
Take Cash
Request Continuation
Terminate
Print Receipt
ATM Machine:Definition
Checking Account
Account Bank Client
5: Process Transaction
8: Transaction succeed
4: Enter Amount
13: Terminate
1: Request Kind
2: Enter Kind
3: Request Amount
9: Dispense Cash
10: Request Take Cash
11: Take Cash
12: Request Continuation
14: Print Receipt
7: Withdraw Successful 6: Withdraw Checking Account
COLLABORATION DIAGRAM
• A Collaboration is a name given to the
interaction among two or more
classesobjects.
• Collaboration Diagram show
– objects and their links to each other, as well
as
– how messages are sent between the linked
objects.
COLLABORATION DIAGRAM CONT.,
• Collaboration shows
– the implementation of an operation or
– the realization of a use case.
• The focus here is on Message.(Hence
numbered)
• 5o focus on message means that they
focus on object roles instead of time, and
therefore explicitly shown in the diagram.
COLLABORATION DIAGRAM
COLLABORATION DIAGRAM -
PURPOSE
• Collaboration Diagrams are useful when
we want to refer to a particular interaction.
• To illustrate the coordination of object
structure and flow of control.
COLLABORATION DIAGRAM VS
SEQUENCE DIAGRAM
Both show the interaction between the
objectsclasses.
• If time is the most important aspect to
emphasize, choose sequence diagrams.
• If the role is the most important aspect to
emphasize, choose collaboration diagram
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.
Process of the CRC Technique
Iterate
Identify
Classes
responsibility
Assign
responsibility
Identify
Collaboration
Collaborations
• An object can accomplish either a
certain responsibility itself, or it may
require the assistance of other objects.
• If it requires an assistance of other
objects, it must collaborate with
those objects to fulfill
its responsibility.
CRC Cards (Con’t)
• CRC cards are 4" x 6" index cards. All
the information for an object is written
on a card.
ClassName Collaborators
...
...Responsibilities
CRC Cards (Con’t)
• CRC starts with only one or two obvious
cards.
• If the situation calls for a responsibility not
already covered by one of the objects:
– Add, or
– Create a new object to address that
responsibility.
Guidelines for Naming Classes
• The class should describe a single
object, so it should be the singular form
of noun.
• Use names that the users are
comfortable with.
• The name of a class should reflect its
intrinsic nature.
Guidelines for Naming Classes
(Con’t)
• By the convention, the class name must
begin with an upper case letter.
• For compound words, capitalize the first
letter of each word - for example,
LoanWindow.
Summary
• Finding classes is not easy.
• The more practice you have, the better
you get at identifying classes.
• There is no such thing as the “right set
of classes.”
• Finding classes is an incremental
and iterative process.
Summary (Con’t)
• Unless you are starting with a lot of
domain knowledge, you are probably
missing more classes than you will
eliminate.
• Naming a class is also an important
activity.
• The class should describe a single
object, so it should be a singular noun
or an adjective and a noun.
Identifying Object
Relationships, Attributes, and
Methods
Goals
• Analyzing relationships among classes.
• Identifying association.
• Association patterns.
• Identifying super- and subclass
hierarchies.
Introduction
• Identifying aggregation or a-part-of
compositions.
• Class responsibilities.
• Identifying attributes and methods by
analyzing use cases and other UML
diagrams.
Objects contribute to the behavior of the
system by collaborating with one
another.
—Grady Booch
In OO environment, an application is
the interactions and relationships
among its domain objects.
All objects stand in relationship to
others, on whom they rely for services
and controls.
Objects Relationships
• Three types of relationships among
objects are:
– Association.
– Super-sub structure (also known as
generalization hierarchy).
– Aggregation and a-part-of structure.
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.
Associations (Con’t)
• Some associations are implicit or taken
from general knowledge.
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.
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.
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.
Common Association Patterns
(Con’t)
• Communication association—talk to, order
to.
• For example, a customer places an order
with an operator person.
Order
OperatorCustomer
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
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.
Eliminate Unnecessary
Associations (Con’t)
•Grandparent of Ken can be defined
in terms of the parent association.
John Ken
Grand Parent
of
John Brian
Parent
of
Ken
Parent
of
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.
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.
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.
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.
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.
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
aggregation. This meta
model reflects this
situation.
Multiple Inheritance
Single Inheritance Aggregation
A-Part-of Relationship -
Aggregation
• A-part-of relationship, also called
aggregation, represents the situation
where a class consists of several
component classes.
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
behave like a radio.
Engine Radio
Car
Carburetor
A-Part-of Relationship -
Aggregation (Con’t)
• Two major properties of a-part-of
relationship are:
– transitivity
– antisymmetry
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.
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.
Where responsibilities for
certain behavior must reside?
• Does the part class belong to problem
domain?
• Is the part class within the system's
responsibilities?
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?
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.
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.
A-Part-of Relationship Patterns
Collection-Member
• A soccer team is a collection of players.
Football Team
Player
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.
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.
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?
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.
Object Responsibility: Attributes
• Information that the system needs to
remember.
Guidelines For Identifying
Attributes Of Classes
• Attributes usually correspond to nouns
followed by possessive phrases such as
cost of the soup.
Guidelines For Identifying
Attributes Of Classes (Con’t)
• Keep the class simple; only state enough
attributes to define the object state.
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.
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.
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.
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.
Identifying Methods by
Analyzing UML Diagrams and
Use Cases
• Sequence diagrams can assist us in
defining the services the objects must
provide.
Identifying Methods (Con’t)
C h e ckin g A cco u n tB a n k C lie n t
A T M
M a ch in e
A cco u n t
W ith d ra w C h e ckin g A cco u n t
W ith d ra w S u cce ssfu l
R e q u e st K in d
E n te r K in d
R e q u e st A m o u n t
E n te r A m o u n t
P ro ce ss T ra n sa ctio n
T ra n sa ctio n su cce e d
D isp e n se Ca sh
R e q u e st T a ke C a sh
T a ke C a sh
R e q u e st C o n tin u a tio n
T e rm in a te
P rin t R e ce ip t
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.
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?
Identifying Methods (Con’t)
• Let's first take a look at its attributes
which are:
• name
• preparation,
• price,
• preparation time and
• oven temperature.
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.
Identifying Methods (Con’t)
• setName
• getName
• setPreparation
• get Preparation
• setCost
• getCost
• setOvenTemperature
• getOvenTemperature
• setPreparationTime
• getPreparationTime
Summary
• We learned how to identify three types
of object relationships:
• Association
• Super-sub Structure (Generalization
Hierarchy)
• A-part-of Structure
Summary (Con’t)
• The hierarchical relation allows the sharing
of properties or inheritance.
• A reference from one class to another is an
association.
• The A-Part-of Structure is a special form of
association.
Summary (Con’t)
• Every class is responsible for storing
certain information from domain
knowledge .
• Every class is responsible for performing
operations necessary upon that
information.

Contenu connexe

Tendances

Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)Xavier Amatriain
 
Recommender Systems - A Review and Recent Research Trends
Recommender Systems  -  A Review and Recent Research TrendsRecommender Systems  -  A Review and Recent Research Trends
Recommender Systems - A Review and Recent Research TrendsSujoy Bag
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introductionLiang Xiang
 
Survey of Recommendation Systems
Survey of Recommendation SystemsSurvey of Recommendation Systems
Survey of Recommendation Systemsyoualab
 
Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011idoguy
 
Using and learning phrases
Using and learning phrasesUsing and learning phrases
Using and learning phrasesCassandra Jacobs
 
HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...
HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...
HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...Alejandro Bellogin
 
Recommendation system using unsupervised machine learning algorithm & assoc
Recommendation system using unsupervised machine learning algorithm & assocRecommendation system using unsupervised machine learning algorithm & assoc
Recommendation system using unsupervised machine learning algorithm & associjerd
 
Information Retrieval Models for Recommender Systems - PhD slides
Information Retrieval Models for Recommender Systems - PhD slidesInformation Retrieval Models for Recommender Systems - PhD slides
Information Retrieval Models for Recommender Systems - PhD slidesDaniel Valcarce
 
Tropos project toward RE
Tropos project toward RETropos project toward RE
Tropos project toward RESehrish Asif
 
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...Joaquin Delgado PhD.
 
Recommender system a-introduction
Recommender system a-introductionRecommender system a-introduction
Recommender system a-introductionzh3f
 
Recommender systems
Recommender systemsRecommender systems
Recommender systemsTamer Rezk
 
[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systemsFalitokiniaina Rabearison
 
Tutorial on query auto completion
Tutorial on query auto completionTutorial on query auto completion
Tutorial on query auto completionYichen Feng
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender systemStanley Wang
 
DIY ERM (Do-It-Yourself Electronic Resources Management) for the Small Library
DIY ERM (Do-It-Yourself Electronic Resources Management) for the Small LibraryDIY ERM (Do-It-Yourself Electronic Resources Management) for the Small Library
DIY ERM (Do-It-Yourself Electronic Resources Management) for the Small LibraryNASIG
 
Best Practices in Recommender System Challenges
Best Practices in Recommender System ChallengesBest Practices in Recommender System Challenges
Best Practices in Recommender System ChallengesAlan Said
 

Tendances (20)

Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)Recommender Systems (Machine Learning Summer School 2014 @ CMU)
Recommender Systems (Machine Learning Summer School 2014 @ CMU)
 
RRC Requirements and Use Cases
RRC Requirements and Use CasesRRC Requirements and Use Cases
RRC Requirements and Use Cases
 
Recommender Systems - A Review and Recent Research Trends
Recommender Systems  -  A Review and Recent Research TrendsRecommender Systems  -  A Review and Recent Research Trends
Recommender Systems - A Review and Recent Research Trends
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introduction
 
Survey of Recommendation Systems
Survey of Recommendation SystemsSurvey of Recommendation Systems
Survey of Recommendation Systems
 
Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011Social Recommender Systems Tutorial - WWW 2011
Social Recommender Systems Tutorial - WWW 2011
 
Using and learning phrases
Using and learning phrasesUsing and learning phrases
Using and learning phrases
 
HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...
HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...
HT2014 Tutorial: Evaluating Recommender Systems - Ensuring Replicability of E...
 
Recommendation system using unsupervised machine learning algorithm & assoc
Recommendation system using unsupervised machine learning algorithm & assocRecommendation system using unsupervised machine learning algorithm & assoc
Recommendation system using unsupervised machine learning algorithm & assoc
 
Information Retrieval Models for Recommender Systems - PhD slides
Information Retrieval Models for Recommender Systems - PhD slidesInformation Retrieval Models for Recommender Systems - PhD slides
Information Retrieval Models for Recommender Systems - PhD slides
 
Tropos project toward RE
Tropos project toward RETropos project toward RE
Tropos project toward RE
 
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
 
Recommender system a-introduction
Recommender system a-introductionRecommender system a-introduction
Recommender system a-introduction
 
Recommender systems
Recommender systemsRecommender systems
Recommender systems
 
[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems
 
Tutorial on query auto completion
Tutorial on query auto completionTutorial on query auto completion
Tutorial on query auto completion
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender system
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
DIY ERM (Do-It-Yourself Electronic Resources Management) for the Small Library
DIY ERM (Do-It-Yourself Electronic Resources Management) for the Small LibraryDIY ERM (Do-It-Yourself Electronic Resources Management) for the Small Library
DIY ERM (Do-It-Yourself Electronic Resources Management) for the Small Library
 
Best Practices in Recommender System Challenges
Best Practices in Recommender System ChallengesBest Practices in Recommender System Challenges
Best Practices in Recommender System Challenges
 

Similaire à Ppt ooad ooad3unit

Requirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineeringRequirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineeringsnehalkulkarni74
 
Use case modeling & analysis v 1
Use case modeling & analysis v 1Use case modeling & analysis v 1
Use case modeling & analysis v 1JIGAR MAKHIJA
 
Use Case Modelling.pptx
Use Case Modelling.pptxUse Case Modelling.pptx
Use Case Modelling.pptxazida3
 
Chapter 4.pptx
Chapter 4.pptxChapter 4.pptx
Chapter 4.pptxzaaakditte
 
Lab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagramLab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagramFarah Ahmed
 
Lecture no 8 use case modeling and use case diagrams
Lecture no 8 use case modeling and use case diagramsLecture no 8 use case modeling and use case diagrams
Lecture no 8 use case modeling and use case diagramsnaveed428
 
Analysis modeling & scenario based modeling
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling Benazir Fathima
 
Software engineering
Software engineeringSoftware engineering
Software engineeringrenukarenuka9
 
Survey Research In Empirical Software Engineering
Survey Research In Empirical Software EngineeringSurvey Research In Empirical Software Engineering
Survey Research In Empirical Software Engineeringalessio_ferrari
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRupesh Vaishnav
 
use_case+use_case description.pptx
use_case+use_case description.pptxuse_case+use_case description.pptx
use_case+use_case description.pptxAqeelAbbas94
 
conversion-gate02.pptx
conversion-gate02.pptxconversion-gate02.pptx
conversion-gate02.pptxNouraBaccar1
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UMLAjit Nayak
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
 

Similaire à Ppt ooad ooad3unit (20)

Requirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineeringRequirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineering
 
Use case modeling & analysis v 1
Use case modeling & analysis v 1Use case modeling & analysis v 1
Use case modeling & analysis v 1
 
Analysis
AnalysisAnalysis
Analysis
 
Use Case Modelling.pptx
Use Case Modelling.pptxUse Case Modelling.pptx
Use Case Modelling.pptx
 
Use case diagrams
Use case diagramsUse case diagrams
Use case diagrams
 
Use case diagrams
Use case diagramsUse case diagrams
Use case diagrams
 
Chapter 4.pptx
Chapter 4.pptxChapter 4.pptx
Chapter 4.pptx
 
Lab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagramLab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagram
 
Lecture no 8 use case modeling and use case diagrams
Lecture no 8 use case modeling and use case diagramsLecture no 8 use case modeling and use case diagrams
Lecture no 8 use case modeling and use case diagrams
 
Analysis modeling & scenario based modeling
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Use Case approach
Use Case approachUse Case approach
Use Case approach
 
Use case modeling
Use case modelingUse case modeling
Use case modeling
 
Survey Research In Empirical Software Engineering
Survey Research In Empirical Software EngineeringSurvey Research In Empirical Software Engineering
Survey Research In Empirical Software Engineering
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
use_case+use_case description.pptx
use_case+use_case description.pptxuse_case+use_case description.pptx
use_case+use_case description.pptx
 
How to write use cases
How to write use casesHow to write use cases
How to write use cases
 
conversion-gate02.pptx
conversion-gate02.pptxconversion-gate02.pptx
conversion-gate02.pptx
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UML
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 

Dernier

Industrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsIndustrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsAlirezaBagherian3
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
Levelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodLevelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodManicka Mamallan Andavar
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Erbil Polytechnic University
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTSneha Padhiar
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfManish Kumar
 
OOP concepts -in-Python programming language
OOP concepts -in-Python programming languageOOP concepts -in-Python programming language
OOP concepts -in-Python programming languageSmritiSharma901052
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmDeepika Walanjkar
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solidnamansinghjarodiya
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 

Dernier (20)

Industrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsIndustrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal Compressors
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
Levelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodLevelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument method
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
 
OOP concepts -in-Python programming language
OOP concepts -in-Python programming languageOOP concepts -in-Python programming language
OOP concepts -in-Python programming language
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solid
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 

Ppt ooad ooad3unit

  • 1. Unit-3 • Identifying use cases • Object Analysis • Classification • Identifying Object relationships • Attributes and Methods.
  • 2. Agenda • Identifying Use Cases • Object Analysis: Classification • Identifying object relationships, Attributes and Methods.
  • 3. 1.Object oriented analysis Process: Identifying Use cases
  • 4. 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. 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.
  • 6. Analysis • The main objective of the analysis is to capture: – a complete, unambiguous, and consistent picture of the requirements of the system and – what the system must do to satisfy the users' requirements and needs.
  • 7. Where Should We Start? • 1. Examination of existing system documentation. • 2. Interviews. • 3. Questionnaire. • 4. Observation.
  • 8. Requirements Difficulties Three most common sources of requirements difficulties are: 1. Incomplete requirements. 2. Fuzzy descriptions (such as fast response). 3. Unneeded features.
  • 9. 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?
  • 10. The OOA Process (Con’t) • 2. Develop a simple business process model using UML activity diagram.
  • 11. 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.
  • 12. The OOA Process (Con’t) • 4. Prepare interaction diagrams: – Determine the sequence. – Develop collaboration diagrams.
  • 13. The OOA Process (Con’t) • 5. Classification—develop a static UML class diagram: – Identify classes. – Identify relationships. – Identify attributes. – Identify methods.
  • 14. The OOA Process (Con’t) • 6. Iterate and refine: If needed, repeat the preceding steps. Refine and iterateIdentify Actors Develop Use- Cases, ADs Develop Interaction Diagrams Identify Classes, Relationships, Attributes & Methods O-O Analysis prototyping
  • 15. Developing Business Processes • Developing an activity diagram of the business processes can provide us with an overall view of the system.
  • 16. 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
  • 17. 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 Use cases Test Test1 Test2 Test3 Verified by Implementation Implemented by Design Design2 Design1 Design3 Design4 Realized by Analysis Specified by Product development is Use case driven:
  • 18. Use Case Model (Con’t) • Use case defines what happens in the system when a use case is performed. • The use-case model tries to systematically identify uses of the system and therefore the system's responsibilities.
  • 19. 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?
  • 20. Use Case Key Concepts • Use case. Use case is a special flow of events through the system. • Actors. An actor is a user playing a role with respect to the system. • In a system. This simply means that the actors communicate with the system's use case.
  • 21. Use Case Key Concepts (Con’t) • A measurable value. A use case must help the actor to perform a task that has some identifiable value. • Transaction. A transaction is an atomic set of activities that are performed either fully or not at all.
  • 22. Use Associations • The use association occurs when you are describing your use cases and notice that some of them have common subflows. • The use association allows you to extract the common subflow and make it a use case of its own.
  • 23. Extends Associations • The extends association is used when you have one use case that is similar to another use case but does a bit more or • Is more specialized; in essence, it is like a subclass.
  • 24. Library Borrow books Reading books Newspaper Member Supplier Purchasing Supplies Inter library loan extends uses uses Performing research Return Books Circulation Clerk Checking Library Card
  • 25. Fully Developed Use Case Description Use Case Name: Checkout Movies Scenario: Checkout movies at counter Triggering Event: Customer brings movies to checkout counter Brief Description: When customer brings movies to counter, clerk checks membership ID, clerk scans in each movie identifier, takes payment, and notifies customer of return due date and time. Actors: Video clerk Related Use Cases: Add new member Stakeholders: Clerk, Store manager Preconditions: Movie titles must exist Movie copy must exist Customer must exist (or Add new member must be invoked) Postconditions: Video Rental and rental line items must be created Payment transaction must be created Status of movie copy must be updated Video Rental must be connected to customer family member
  • 26. Use Case Diagram Notation Actor Association Use Case Use case with Extension points <<Uses>> <<Extends>>
  • 27. Types of Use Cases • Use cases could be viewed as concrete or abstract. • An abstract use case is not complete and has no initiation actors but is used by a concrete use case, which does interact with actors.
  • 28. Identifying the Actors • The term actor represents the role a user plays with respect to the system. • When dealing with actors, it is important to think about roles rather than people or job titles.
  • 29. 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?
  • 30. Identifying the Actors (Con’t) – Who affects the system? Or, – Which user groups are needed by the system to perform its functions? These functions can be both main functions and secondary functions, such as administration. – Which external hardware or other systems (if any) use the system to perform tasks?
  • 31. Identifying the Actors (Con’t) – What problems does this application solve (that is, for whom)? – And, finally, how do users use the system (use case)? What are they doing with the system?
  • 32. 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.
  • 33. Separate Actors From Users • Each use case should have only one main actor. • Isolate users from actors. • Isolate actors from other actors (separate the responsibilities of each actor). • Isolate use cases that have different initiating actors and slightly different behavior.
  • 34. 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.
  • 35. 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.
  • 36. 80%-20% 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.
  • 37. Familiar Vocabulary • Use a vocabulary that your readers understand and are comfortable with. • The main objective here is to communicate with readers and not impress them with buzz words.
  • 38. 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.
  • 39. Organize the Document • Use the rules of good organization (such as the organization's standards, college handbooks, Strunk and White's Elements of Style, or the University of Chicago Manual of Style) within each section.
  • 40. Summary • The main objective of the analysis is to capture a complete, unambiguous, and consistent picture of the requirements of the system. • Construct several models and views of the system to describe what the system does rather than how.
  • 41. Summary (Con’t) • Capturing use cases is one of the first things to do in coming up with requirements. • Every use case is a potential requirement.
  • 42. Summary (Con’t) • The key in developing effective documentation is to eliminate all repetition; present summaries, reviews, organization chapters in less than three pages. • Use the 80–20 rule: 80 percent of the work can be done with 20 percent of the documentation.
  • 44. Introduction • OOA is a process by which we can identify classes that play a role in achieving system goals and requirements • Various Approaches for identifying the classes • 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
  • 45. What is an Object – An object Is an unique, identifiable, self- contained entity that possesses operations and contains attributes – • Possesses all the know-how and information it needs to perform the services for which it was designed – Is a "black box" which receives and sends messages
  • 46. 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. • Is a blue print used to create objects. As it is a blue print, at runtime it will not occupy any memory. • Examples : Animal, Human being, Automobiles
  • 47. Classes VS. Objects Class Object Class is a type/ template for similar objects Object is an instance of the class Class is purely a static concept, represented by program text Objects are run time / dynamic entities that occupy space in memory
  • 48. ... Intelligent classification is intellectually hard work, and it best comes about through an incremental and iterative process Booch
  • 49. ..There is no such thing as the perfect class structure, nor the right set of objects. As in any engineering discipline, our design choice is compromisingly shaped by many competing factors. Booch
  • 50. Point To Remember Two Issues • A class is a specification of structure, behavior, and the description of an object. • Classification is more concerned with identifying classes than identifying the individual objects ina system.
  • 51. The Challenge of Classification • Intelligent classification is intellectually hard work and may seem rather arbitrary. • Martin and Odell have observed in object-oriented analysis and design, that “In fact, an object can be categorized in more than one way.”
  • 52. Employer Employee Pet Owner Good Credit Risk
  • 53. Approaches for Identifying Classes • The noun phrase approach. • The common class patterns approach. • The use-case driven approach. • The class responsibilities collaboration (CRC) approach.
  • 54. Noun Phrase Approach • Using this method, you have to read through the Use cases, interviews, and requirements specification carefully, looking for noun phrases.
  • 55. Noun Phrase Strategy (Con’t) • Change all plurals to singular and make a list, which can then be divided into three categories.
  • 56. Noun Phrase Strategy (Con’t) • It is safe to scrap the Irrelevant Classes. • You must be able to formulate a statement of purpose for each candidate class; if not, simply eliminate it. • You must then select candidate classes from the other two categories.
  • 57. Guidelines For Identifying Classes • The followings are guidelines for selecting classes in your application: • Look for nouns and noun phrases in the problem statement. • Some classes are implicit or taken from general knowledge.
  • 58. Guidelines For Identifying Classes (Con’t) • All classes must make sense in the application domain. • Avoid computer implementation classes, defer it to the design stage. • Carefully choose and define class names.
  • 59. 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.
  • 60. Guidelines For Refining Classes (Con’t) Adjective Classes: • Does the object represented by the noun behave differently when the adjective is applied to it?
  • 61. Guidelines For Refining Classes (Con’t) • If the use of the adjective signals that the behavior of the object is different, then make a new class. • For example, If Adult Membership and Youth Membership behave differently, than they should be classified as different classes.
  • 62. 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.
  • 63. 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.
  • 64. 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 whittle down and modify to get an initial class list for the system
  • 65. 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
  • 66. This leaves: • Book • Journal • Copy (of book) • Library member • Member of staff
  • 67. Common Class Patterns Approach • This approach is based on the knowledge- base of the common classes that have been proposed by various researchers.
  • 68. 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.
  • 69. Candidate Classes - Organization • The organizational units that people belong to. • For example, accounting department might be considered as a potential class.
  • 70. Candidate Classes - People and Person (Roles and Roles Played) • The different roles users play in interacting with the application.
  • 71. 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;
  • 72. 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.
  • 73. Candidate Classes - Places • These are physical locations, such as buildings, stores, sites or offices that the system must keep information about.
  • 74. Candidate Classes - Tangible Things and Devices • Physical objects, or group of objects, that are tangible, and devices with which the application interacts. • For example, cars, pressure sensors.
  • 75. Candidate Classes - Concepts • Concepts are principles or ideas not tangible but used to organize or keep track of business activities and/or communications.
  • 76. 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.
  • 77. 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.
  • 78. Sequence Diagram Notation Actor Class Synchronous message Asynchronous message Return message Focus of Control lifeline Termination
  • 79. C lient A TM M achine B ad P IN N um ber B ad P IN N um ber M essage E ject A TM card R equest take card Take card D isplay m ain screen V erify P IN N um ber R equest P IN num ber R equest P IN Insert A TM card B ankC lient
  • 80. Checking AccountBank Client ATM Machine Account Withdraw Checking Account Withdraw Successful Request Kind Enter Kind Request Amount Enter Amount Process Transaction Transaction succeed Dispense Cash Request Take Cash Take Cash Request Continuation Terminate Print Receipt
  • 81. ATM Machine:Definition Checking Account Account Bank Client 5: Process Transaction 8: Transaction succeed 4: Enter Amount 13: Terminate 1: Request Kind 2: Enter Kind 3: Request Amount 9: Dispense Cash 10: Request Take Cash 11: Take Cash 12: Request Continuation 14: Print Receipt 7: Withdraw Successful 6: Withdraw Checking Account
  • 82. COLLABORATION DIAGRAM • A Collaboration is a name given to the interaction among two or more classesobjects. • Collaboration Diagram show – objects and their links to each other, as well as – how messages are sent between the linked objects.
  • 83. COLLABORATION DIAGRAM CONT., • Collaboration shows – the implementation of an operation or – the realization of a use case. • The focus here is on Message.(Hence numbered) • 5o focus on message means that they focus on object roles instead of time, and therefore explicitly shown in the diagram.
  • 85. COLLABORATION DIAGRAM - PURPOSE • Collaboration Diagrams are useful when we want to refer to a particular interaction. • To illustrate the coordination of object structure and flow of control.
  • 86. COLLABORATION DIAGRAM VS SEQUENCE DIAGRAM Both show the interaction between the objectsclasses. • If time is the most important aspect to emphasize, choose sequence diagrams. • If the role is the most important aspect to emphasize, choose collaboration diagram
  • 87. 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.
  • 88. Process of the CRC Technique Iterate Identify Classes responsibility Assign responsibility Identify Collaboration
  • 89. Collaborations • An object can accomplish either a certain responsibility itself, or it may require the assistance of other objects. • If it requires an assistance of other objects, it must collaborate with those objects to fulfill its responsibility.
  • 90. CRC Cards (Con’t) • CRC cards are 4" x 6" index cards. All the information for an object is written on a card. ClassName Collaborators ... ...Responsibilities
  • 91. CRC Cards (Con’t) • CRC starts with only one or two obvious cards. • If the situation calls for a responsibility not already covered by one of the objects: – Add, or – Create a new object to address that responsibility.
  • 92. Guidelines for Naming Classes • The class should describe a single object, so it should be the singular form of noun. • Use names that the users are comfortable with. • The name of a class should reflect its intrinsic nature.
  • 93. Guidelines for Naming Classes (Con’t) • By the convention, the class name must begin with an upper case letter. • For compound words, capitalize the first letter of each word - for example, LoanWindow.
  • 94. Summary • Finding classes is not easy. • The more practice you have, the better you get at identifying classes. • There is no such thing as the “right set of classes.” • Finding classes is an incremental and iterative process.
  • 95. Summary (Con’t) • Unless you are starting with a lot of domain knowledge, you are probably missing more classes than you will eliminate. • Naming a class is also an important activity. • The class should describe a single object, so it should be a singular noun or an adjective and a noun.
  • 97. Goals • Analyzing relationships among classes. • Identifying association. • Association patterns. • Identifying super- and subclass hierarchies.
  • 98. Introduction • Identifying aggregation or a-part-of compositions. • Class responsibilities. • Identifying attributes and methods by analyzing use cases and other UML diagrams.
  • 99. Objects contribute to the behavior of the system by collaborating with one another. —Grady Booch
  • 100. In OO environment, an application is the interactions and relationships among its domain objects. All objects stand in relationship to others, on whom they rely for services and controls.
  • 101. Objects Relationships • Three types of relationships among objects are: – Association. – Super-sub structure (also known as generalization hierarchy). – Aggregation and a-part-of structure.
  • 102. 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.
  • 103. Associations (Con’t) • Some associations are implicit or taken from general knowledge.
  • 104. 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.
  • 105. 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.
  • 106. 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.
  • 107. Common Association Patterns (Con’t) • Communication association—talk to, order to. • For example, a customer places an order with an operator person. Order OperatorCustomer
  • 108. 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
  • 109. 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.
  • 110. Eliminate Unnecessary Associations (Con’t) •Grandparent of Ken can be defined in terms of the parent association. John Ken Grand Parent of John Brian Parent of Ken Parent of
  • 111. 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.
  • 112. 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.
  • 113. 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.
  • 114. 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.
  • 115. 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.
  • 116. 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 aggregation. This meta model reflects this situation. Multiple Inheritance Single Inheritance Aggregation
  • 117. A-Part-of Relationship - Aggregation • A-part-of relationship, also called aggregation, represents the situation where a class consists of several component classes.
  • 118. 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 behave like a radio. Engine Radio Car Carburetor
  • 119. A-Part-of Relationship - Aggregation (Con’t) • Two major properties of a-part-of relationship are: – transitivity – antisymmetry
  • 120. 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.
  • 121. 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.
  • 122. Where responsibilities for certain behavior must reside? • Does the part class belong to problem domain? • Is the part class within the system's responsibilities?
  • 123. 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?
  • 124. 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.
  • 125. 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.
  • 126. A-Part-of Relationship Patterns Collection-Member • A soccer team is a collection of players. Football Team Player
  • 127. 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.
  • 128. 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.
  • 129. 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?
  • 130. 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.
  • 131. Object Responsibility: Attributes • Information that the system needs to remember.
  • 132. Guidelines For Identifying Attributes Of Classes • Attributes usually correspond to nouns followed by possessive phrases such as cost of the soup.
  • 133. Guidelines For Identifying Attributes Of Classes (Con’t) • Keep the class simple; only state enough attributes to define the object state.
  • 134. 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.
  • 135. 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.
  • 136. 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.
  • 137. 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.
  • 138. Identifying Methods by Analyzing UML Diagrams and Use Cases • Sequence diagrams can assist us in defining the services the objects must provide.
  • 139. Identifying Methods (Con’t) C h e ckin g A cco u n tB a n k C lie n t A T M M a ch in e A cco u n t W ith d ra w C h e ckin g A cco u n t W ith d ra w S u cce ssfu l R e q u e st K in d E n te r K in d R e q u e st A m o u n t E n te r A m o u n t P ro ce ss T ra n sa ctio n T ra n sa ctio n su cce e d D isp e n se Ca sh R e q u e st T a ke C a sh T a ke C a sh R e q u e st C o n tin u a tio n T e rm in a te P rin t R e ce ip t
  • 140. 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.
  • 141. 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?
  • 142. Identifying Methods (Con’t) • Let's first take a look at its attributes which are: • name • preparation, • price, • preparation time and • oven temperature.
  • 143. 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.
  • 144. Identifying Methods (Con’t) • setName • getName • setPreparation • get Preparation • setCost • getCost • setOvenTemperature • getOvenTemperature • setPreparationTime • getPreparationTime
  • 145. Summary • We learned how to identify three types of object relationships: • Association • Super-sub Structure (Generalization Hierarchy) • A-part-of Structure
  • 146. Summary (Con’t) • The hierarchical relation allows the sharing of properties or inheritance. • A reference from one class to another is an association. • The A-Part-of Structure is a special form of association.
  • 147. Summary (Con’t) • Every class is responsible for storing certain information from domain knowledge . • Every class is responsible for performing operations necessary upon that information.

Notes de l'éditeur

  1. Business process modeling can be very time consuming, so the main idea should be to get a basic model without spending too much time on the process. The advantage of developing a business process model is that it makes you more familiar the system and therefore the user requirements and also aids in developing use cases.
  2. Remember, when dealing with actors, it is important to think about roles rather than just people and their job titles.
  3. A use-case description can be difficult to understand if it contains too many alternatives or exceptional flows of events that are performed only if certain conditions are met as the use-case instance is carried out. A way to simplify the description is to take advantage of extends and uses associations. The extends and uses associations often are sources of confusion, so let us take look at these relationships.
  4. The similarity between extends and uses associations is that both can be viewed as a kind of inheritance. When you want to share common sequences in several use cases utilize the uses association by extracting common sequences into a new, shared use case. The extends association is found when you add a bit more specialized, new use case that extends some of use cases that you have.
  5. A user may play more than one role. For instance, a member of a public library also may play the role of volunteer at the help desk in the library.
  6. The same object, Betty, can be classified in many ways.
  7. The third method to identify classes in a system is use-case driven approach .
  8. The sequence diagram for the Invalid PIN use case.
  9. Sequence diagram for the withdraw Checking use case.
  10. The collaboration diagram for the withdraw checking use-case.
  11. The common association patterns are based on some of the common associations defined by researchers and practitioners: Rumbaugh et al., Coad and Yourdon, and others.
  12. In Chapter 5, we saw that the UML uses hollow or filled diamonds to represent aggregations. A filled diamond signifies the strong form of aggregation, which is composition. For example, one might represent aggregation such as container and collection as hollow diamonds and use solid diamond to represent composition, which is a strong form of aggregation as in this example.
  13. Ask students to imagine themselves as objects in an object-oriented environment, what kind of questions would they like to ask?
  14. For example, by studying the sequence diagram for Withdraw Checking, it is clear that the Account class (which is the superclass of CheckingAccount and SavingsAccount) must provide a service such as withdrawal.