SlideShare a Scribd company logo
1 of 139
Unit I -OOAD
Dr.S.Gunasundari
ASSOCIATE PROF
VELAMMAL ENGINEERING COLLEGE
Analysis
• Analysis emphasizes an investigation of the
problem and requirements, rather than a
solution.
• In software development, we are primarily
concerned with two forms of analysis.
– Requirements Analysis is discovering the
requirements that a system must meet in order to
be successful.
– Object-Oriented Analysis is investigating the
objects in a domain to discover information
important to meet the requirements.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 2
Use Cases
• Writing Use Cases is not a specifically OO
artifact – they are simply written stories.
• However, they are a best practice for
elaborating and understanding
requirements.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 3
Use Case 1
Use Case 1 Do laundry
Actor Housekeeper
Basic Flow
On Wednesdays, the housekeeper reports to the
laundry room. She sorts the laundry that is
there. Then she washes each load. She dries
each load. She folds the items that need
folding. She irons and hangs the items that are
wrinkled. She throws away any laundry item that
is irrevocably shrunken, soiled or scorched.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 4
Use Case Name: Place Order
Actors:
• Shopper
• Fulfillment System
• Billing System
Use Case Description: After the user has selected items
to purchase and then order the items. The user will
provide payment and shipping information. The system
will respond with confirmation of the order and a tracking
number that the user can use to check on order status in
the future. The system will also provide the user with an
estimated delivery date for the order, which will include
all selected items. The user may already have an
account with the company with billing and shipping
information
3/9/2022 Dr.S.Gunasundari/CSE/VEC 5
Design
• Design emphasizes a conceptual solution
that fulfills the requirements, rather than its
implementation.
– Design ideas often exclude low-level or
obvious details – obvious to the intended
consumers.
– There are subsets of design, including
• architectural design,
• object design,
• database design.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 6
Object-Oriented Analysis and
Design (OOAD)
• During OOA, the emphasis is on finding and
describing the objects (or concepts) in the problem
domain, i.e., domain objects.
• During OOD (or simply object design), the emphasis
is on defining software objects and how they
collaborate to fulfill the requirements.
• During OOP (OO Programming) or Implementation,
design objects are implemented in a programming
language.
– Implementation is also known as Coding or
Construction.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 7
Plane
tailNumber
public class Plane
{
private String tailNumber;
public List getFlightHistory() {...}
}
domain concept
visualization of
domain concept
representation in an
object-oriented
programming language
Fig. 1.2 Object-orientation emphasizes representation of objects
3/9/2022 Dr.S.Gunasundari/CSE/VEC 8
A Short Example
Problem Statement: a "dice game" in which
software simulates a player rolling two dice. If
the total is seven, they win; otherwise, they lose.
OOAD steps of a small “Dice Game”:
– Define Use Cases
– Define a Domain Model
– Define Interaction Diagrams
– Define Design Class Diagrams
3/9/2022 Dr.S.Gunasundari/CSE/VEC 9
Use Case: Play a Dice Game
• Requirements analysis may include stories
or scenarios of how people use the
application; these can be written as use
cases
• Use cases are not an object-oriented
• UseCase:
– Player requests to roll the 2 dice. System
presents results. If the dice face value totals
seven, player wins; otherwise, player loses.
Define Use Cases
3/9/2022 Dr.S.Gunasundari/CSE/VEC 10
Partial Domain Model
• Object-oriented analysis is concerned with
creating a description of the domain from
the perspective of objects.
• There is an identification of the concepts,
attributes, and associations that are
considered noteworthy.
• The result can be expressed in a domain
model that shows the noteworthy domain
concepts or objects.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 11
Player
name
DiceGame
Die
faceValue
Rolls
Plays
Includes
2
2
1
1
1
1
Fig. 1.3 Partial domain model (conceptual object model) of the dice game
Define a Domain Model
Domain model shows the noteworthy domain concepts as objects, their
attributes, and associations.
Domain model is not a description of software objects; it is a visualization of the
concepts
Thus, it has also been called a conceptual object model.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 12
• Object-oriented design is concerned with
defining software objects their responsibilities
and collaborations.
• A common notation to illustrate these
collaborations is the sequence diagram (a kind of
UML interaction diagram).
• It shows the flow of messages between software
objects, and thus the invocation of methods
• sending messages to instances of the DiceGame
and Die classes
• UML Sketching on whiteboard
Interaction Diagrams
3/9/2022 Dr.S.Gunasundari/CSE/VEC 13
:DiceGame
play()
die1 : Die
fv1 := getFaceValue()
die2 : Die
roll()
roll()
fv2 := getFaceValue()
Fig. 1.4 Sequence diagram illustrating messages between software objects
A sequence diagram (a kind of UML interaction diagram) shows the flow of messages
between software objects and thus the invocation of objects.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 14
2
Die
faceValue : int
getFaceValue() : int
roll()
DiceGame
die1 : Die
die2 : Die
play()
1
Fig. 1.5 Partial design class diagram (software classes)
Define Design Class Diagrams
A static view of the class (including its attributes and methods) definitions is usefully
shown with a UML class diagram.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 15
Unified Modeling Language
(UML)
• UML is the de facto standard diagramming
notation for drawing or presenting pictures
related to OO software.
• UML is a visual language for specifying,
constructing and documenting the artifacts
of OO systems.
– Knowing UML helps you communicate with
others in creating software.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 16
Three ways people apply UML are
...
• UML as sketch
• Informal and incomplete diagrams (often hand sketched on whiteboards) created to explore
difficult parts of the problem or solution space
• UML as blueprint
– relatively detailed design diagrams
– used either for reverse engineering to visualize and better understand
existing code,
• If reverse engineering, a UML tool reads the source or binaries and generates (typically)
UML package, class, and sequence diagrams
– or for forward engineering to guide for code generation, either manually
or automatically with a tool.
• UML as a programming language
– Complete executable specification of a software system in UML.
– Executable code will be automatically generated, but is not normally
seen or modified by developer
3/9/2022 Dr.S.Gunasundari/CSE/VEC 17
Three perspectives to apply UML
are ...
• Conceptual perspective – the diagrams are
interpreted as describing things in a situation of
the real world or domain of interest.
• Specification (software) perspective – the
diagrams describe sw abstractions or components
with specifications and interfaces, but no
commitment to a particular language
implementation.
• Implementation perspective – the diagrams
describe sw implementations in a particular
technology.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 18
The meaning of “class” in different
perspectives
• Conceptual class – real-world concept or thing. A
conceptual or essential perspective.
– The UP Domain Model contains conceptual classes.
• Software class – a class representing a
specification or implementation perspective of a
sw development, regardless of the process or
method.
• Implementation class – a class implemented in a
specific OO language such as Java.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 19
Conceptual Perspective
(domain model)
Raw UML class diagram
notation used to visualize
real-world concepts.
Specification or
Implementation
Perspective
(design class diagram)
Raw UML class diagram
notation used to visualize
software elements.
2
Die
faceValue : int
getFaceValue() : int
roll()
DiceGame
die1 : Die
die2 : Die
play()
DiceGame Die
faceValue
Includes 2
1
Fig. 1.6 Different perspectives with UML
In practice, most software-oriented UML diagramming assumes an implementation
perspective and the specification perspective is seldom used for design.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 20
Iterative development and UP
• Iterative development is a skillful approach to
software development
• The Unified Process is an example
iterative process for projects using OOAD
• software development process describes
an approach to building,deploying, and
possibly maintaining software.
• The Unified Process has emerged as a
popular software development process for
building object-oriented systems.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 21
Iterative Development
• In this approach, development is organized into a series
of short, fixed-length (for example, four week) mini-
projects called iterations;
• The outcome of each is a tested, integrated, and
executable system.
• Each iteration includes its own requirements analysis,
design, implementation, and testing activities.
• The iterative lifecycle is based on the successive
enlargement and refinement of a system through
multiple iterations, with cyclic feedback and adaptation
as core drivers to converge upon a suitable system.
• The system grows incrementally over time, iteration by
iteration, and thus this approach is also known as
iterative and incremental development
3/9/2022 Dr.S.Gunasundari/CSE/VEC 22
Requirements
Design
Implementation&
Test&Integration
&More Design
Final Integration
& System Test
3weeks
(for example)
The system
grows
incrementally
.
Time
Fig. 2.1 Iterative and Evolutionary Development (also known as iterative and inceremental
development; spiral development and evolutionary development)
Requirements
Design
Implementation&
Test&Integration
&More Design
Final Integration
& System Test
Each iteration is an executable
but incomplete system;
A subset of the final system
(but not a throw-away prototype!)
Iterations are fixed in
length or timeboxed.
Feedback from iteration N
Leads to refinement and
adaptation of
The requirements and
design in
İteration N+1
3/9/2022 Dr.S.Gunasundari/CSE/VEC 23
Example
As an example, in a two-week iteration half-way through a project, perhaps Monday
is spent primarily on distributing and clarifying the tasks and requirements of the
iteration.
Tuesday is spent at whiteboards doing pair design work drawing rough UML
diagrams captured on digital cameras, and writing some pseudocode and design
notes.
The remaining eight days are spent on implementation, testing (unit, acceptance,
usability, ...), further design, integration, daily builds, system testing, and
stabilization of the partial system.
Other activities include demonstrations and evaluations with stakeholders, and
planning for the next iteration.
• The result of each iteration is an executable but incomplete system;
• it is not ready to deliver into production.
• The system may not be eligible for production deployment until after many
iterations;
• for example, 10 or 15 iterations.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 24
Feedback and Adaptation
• Each iteration involves choosing a small subset of the
requirements, and quickly designing, implementing, and testing.
• In early iterations the choice of requirements and design may
not be exactly what is ultimately desired.
• But the act of swiftly taking a small step, before all requirements
are finalized, or the entire design is speculatively defined, leads
to rapid feedback—feedback from the users, developers, and
tests (such as load and usability tests).
• This early feedback is worth its weight in gold
• Feedback provides an opportunity to modify or adapt
understanding of the requirements or design
3/9/2022 Dr.S.Gunasundari/CSE/VEC 25
Build-Feedback-Adapt Cycles
In complex changing systems, feedback and
adaptation are key ingredients for success:
– Feedback from early development, programmers
• to refine the requirements.
– Feedback from tests and developers
• to refine the design and models.
– Feedback from the progress of the team tackling
early features
• to refine the schedule and estimates.
– Feedback from the client and marketplace to re-
prioritize the features
• to tackle in the next iteration.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 26
• End-users have a chance to quickly see a
partial system and say, "Yes, that's what I
asked for, but now that I try it, what I really
want is something slightly different."
• This "yes...but" process is not a sign of
failure; rather, early and frequent structured
cycles of "yes...buts" are a skillful way to
make progress and discover what is of real
value to the stakeholders.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 27
Fig. 2.2 Iterative feedback and evolution leads towards the desired system. The
requirements and design instability lowers over time.
Early iterations are farther from the "true
path" of the system. Via feedback and
adaptation, the system converges towards
the most appropriate requirements and
design.
In late iterations, a significant change in
requirements is rare, but can occur. Such
late changes may give an organization a
competitive business advantage.
one iteration of design,
implement, integrate, and test
3/9/2022 Dr.S.Gunasundari/CSE/VEC 28
Benefits of Iterative Development
• early rather than late mitigation of high risks (technical,
requirements, objectives, usability, and so forth)
• early visible progress
• early feedback, user engagement, and adaptation,
leading to a refined system that more closely meets the
real needs of the stakeholders
• managed complexity; the team is not overwhelmed by
"analysis paralysis" or very long and complex steps
• the learning within an iteration can be methodically
used to improve the development process itself, iteration
by iteration
3/9/2022 Dr.S.Gunasundari/CSE/VEC 29
Timeboxing
• A key idea is that iterations are timeboxed,
or fixed in length.
– Most iterative methods recommend in
iteration length bw 2 – 6 weeks.
– If it seems that it will be difficult to meet the
deadline, the recommended response is to
de-scope
• De-scoping: removing tasks or requirements from the iteration, and
including them in a future iteration, rather than slipping the
completion date.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 30
Fig. 2.4 Evolutionary analysis and design – the majority in early iterations.
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5
20 %
2%
requirements
software
30 %
5%
requirements
software
50 %
8%
90 % 90 %
20 %
10 %
requirements workshops
Imagine this will
ultimately be a 20 -
iteration project .
In evolutionary iterative
development , the
requirements evolve
over a set of the early
iterations , through a
series of requirements
workshops (for
example ). Perhaps
after four iterations and
workshops , 90 % of the
requirements are
defined and refined .
Nevertheless , only
10 % of the software is
built .
1 2 3 4 5 ... 20
week 1
M
T W Th F
week 2
M T W Th F
week 3
M T W Th F
kickoff meeting
clarifying iteration
goals with the team
.
1 hour
team agile
modeling&
design
,
UML
whiteboard
sketching
.
5 hours
start
coding&
testing
a 3-week iteration
de-scope
iteration
goals if
too much
work
final check
-in
and code
-
freeze for the
iteration
baseline
demo and
2-day
requirements
workshop
next
iteration
planning
meeting
;
2 hours
Most OOA/D and
applying UML during
this period
Use-case modeling
during the workshop
3/9/2022 Dr.S.Gunasundari/CSE/VEC 31
The Unified Process (UP)
• A software development process describes
an approach to building, deploying, and
possibly maintaining software.
• UP has emerged as a popular and effective
iterative software development process for
building OO systems.
– In particular, the Rational Unified Process, as
modified at Rational Software, is widely practiced
and adopted by industry.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 32
Unified Process
• Unified Process is based on the
enlargement and refinement of a system
through multiple iterations, with cyclic
feedback and adaptation.
• The system is developed incrementally
over time, iteration by iteration, and thus
this approach is also known as iterative
and incremental software development.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 33
• A UP project organizes the work and
iterations across four major phases:
– Inception approximate vision, business case,
scope, vague estimates.
– Elaboration refined vision, iterative
implementation of the core architecture, resolution
of high risks, identification of most requirements
and scope, more realistic estimates.
– Construction iterative implementation of the
remaining lower risk and easier elements, and
preparation for deployment.
– Transition beta tests, deployment.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 34
• This is not the old "waterfall" or sequential lifecycle
of first defining all the requirements, and then
doing all or most of the design.
• Inception is not a requirements phase; rather, it is
a kind of feasibility phase, where just enough
investigation is done to support a decision to
continue or stop.
• Similarly, elaboration is not the requirements or
design phase; rather, it is a phase where the core
architecture is iteratively implemented, and high
risk issues are mitigated.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 35
Fig. 2.6 Schedule-oriented terms in the UP
inc. elaboration construction transition
iteration phase
development cycle
release
A stable executable
subset of the final
product. The end of
each iteration is a
minor release.
increment
The difference
(delta) between the
releases of 2
subsequent
iterations.
final production
release
At this point, the
system is released
for production use.
milestone
An iteration end-
point when some
significant decision
or evaluation
occurs.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 36
UP Phases
1 Inception
 Inception is not a requirements phase; rather a feasibility phase, where
just enough investigation is done to support a decision to continue or
stop.
 The life-cycle objectives of the project are stated, so that the needs of
every stakeholder are considered. Scope and boundary conditions,
acceptance criteria and some requirements are established.
 Approximate vision, business case, scope, vague estimates.
2 Elaboration
 An analysis is done to determine the risks, stability of vision of what the
product is to become, stability of architecture and expenditure of
resources.
 Refined vision, iterative implementation of core architecture, resolution
of high risks, identification of most requirements and scope, more
realistic estimates.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 37
UP Phases (2)
3 Construction
– The Construction phase is a manufacturing process. It emphasizes
managing resources and controlling operations to optimize costs,
schedules and quality. This phase is broken into several iterations.
– Iterative implementation of the remaining lower risk and easier
elements, and preparation for deployment.
4 Transition
– The transition phase is the phase where the product is put in the hands
of its end users. It involves issues of marketing, packaging, installing,
configuring, supporting the user-community, making corrections, etc.
– Beta tests, deployment.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 38
Inception
The Inception Phase includes such activities as:
• Defining the business case
• Creating a vision document with core requirements, features, and
constraints
• Creating an initial risk assessment
• Creating early use cases (10-20% complete, mostly use-case models)
• Creating a initial project plan
• And the creation of one or more prototypes (especially architectural
prototypes)
The milestones that how completion of the Inception phase are:
• Stakeholder agreement on business case, scope, and project cost and
schedule estimates
• Agreement that the content of the primary use cases is an accurate
representation of what the software will deliver (at a high level)
• That the final prototypes are sufficient indications of the correct future
development goals
3/9/2022 Dr.S.Gunasundari/CSE/VEC 39
Elaboration Phase
The specific activities of this phase include:
• The identification of all actors and use cases, with most use cases having been defined to at least
80% completion (use-case descriptions rather than models)
• Supplementary requirements detailing the non-functional requirements and any requirements not
related to a use case are completed
• A Software Architecture Description has been completed
• The business case and risk lists have been updated with higher-confidence information
• The project and development plans have been defined to at least a level that shows all iterations
and the evaluation criteria for each iteration
• An executable architecture prototype has been created and approved for use (this may involve
creating more than one)
• A preliminary user manual has been created (optional)
The milestones that show completion of the Elaboration phase are:
• The product vision is stable and approved
• The product architecture is stable and approved
• The executable architecture prototype shows that the major risk elements have been identified
and credibly resolved
• The project and development plans sufficiently detailed, accurate, and credible
• All stakeholders agree that the vision can be achieved is the project and development plans are
executed with the architecture specified
3/9/2022 Dr.S.Gunasundari/CSE/VEC 40
Construction Phase
The specific activities of this phase include:
• The software is built, integrated, and tested
• The user manuals have been created (or updated)
• The details of the software developed are documented
and ready to be provided to end users or support staff
(including changes, etc.)
The milestones that show completion of the Construction
phase are:
• The software product is stable and mature enough to
be deployed to end users
• All stakeholders are ready to transition to the new /
updated software
• Actual versus planned expenditures are still acceptable
enough to move forward with the project
3/9/2022 Dr.S.Gunasundari/CSE/VEC 41
Transition Phase
The specific activities of this phase include:
• beta testing or user acceptance testing by end users
to validate the new software against user expectations
• Parallel operation with legacy systems (if in existence)
that will be replaced
• Operational databases are converted (if necessary)
• Users and maintainers of the software are fully trained
• The software is fully rolled-out
The milestones that show completion of the Transition
phase are:
• Users are satisfied with the software
• Actual versus planned expenditures are still
acceptable enough to move forward with the project
3/9/2022 Dr.S.Gunasundari/CSE/VEC 42
UP Disciplines (Workflows)
• In the UP, an artifact is the general term for any work product: code,
Web graphics, database schema, text documents, diagrams, models, and
so on.
• There are several disciplines in the UP;
Business Modeling
 When developing a single application, this includes domain object
modeling.
 When engaged in large-scale business analysis this includes dynamic
modeling of the business processes across the entire enterprise.
• Activities include the development of:
– A context model showing how the system fits into its overall
environment
– A high-level business requirements model eg. use case model
– A domain model e.g. class diagram or data diagram depicting
major business classes or entities
– A business process model
3/9/2022 Dr.S.Gunasundari/CSE/VEC 43
Requirements
The main deliverable of this discipline is the Software
Requirements Specification (SRS), also referred to as
the Requirements Model, which encompasses the
captured requirements
Design
All aspects of design, including the overall architecture,
objects,databases, networking, etc
Implementation means programming and building the
system, not deployment.
Test—involves testing activities such as test planning,
development of test scenarios, alpha and beta
testing, regression testing, acceptance testing, and
Deployment—the deployment activities of developed
system
3/9/2022 Dr.S.Gunasundari/CSE/VEC 44
The Environment discipline refers to establishing the tools and
customizing the process for the project—that is, setting up the tool
and process environment.
During one iteration work goes on in most or all disciplines.
However, the relative effort across these disciplines changes over
time.
Early iterations naturally tend to apply greater relative emphasis to
requirements and design, and later ones less so, as the
requirements and core design stabilize through a process of
feedback and adaptation
3/9/2022 Dr.S.Gunasundari/CSE/VEC 45
Fig. 2.7 UP disciplines
Iterations
Sample
UP Disciplines
Business Modeling
Requirements
Design
Implementation
Test
Deployment
Configuration & Change
Management
Project Management
Environment
Focus
of this
book
Note that
although an
iteration includes
work in most
disciplines, the
relative effort and
emphasis change
over time.
This example is
suggestive, not
literal.
A four-week iteration (for example).
A mini-project that includes work in most
disciplines, ending in a stable executable.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 46
changing relative effort with respect to the phases
During construction, the emphasis is heavier on
implementation and lighter on requirements analysis
3/9/2022 Dr.S.Gunasundari/CSE/VEC 47
s-start, r-revise
Development Case
short document
describing the
artifacts for the
"NextGen
Project" case
study
3/9/2022 Dr.S.Gunasundari/CSE/VEC 48
CASE STUDY: THE NEXTGEN POS SYSTEM /NextGen point-of-sale (POS) system
 A POS system is a computerized application used (in part) to record sales and
handle payments; it is typically used in a retail store.
 It includes hardware components such as a computer and bar code scanner,
and software to run the system.
 It interfaces to various service applications, such as a third-party tax calculator
and inventory control.
 These systems must be relatively fault-tolerant;
 that is, even if remote services are temporarily unavailable (such as the
inventory system), they must still be capable of capturing sales and
handling at least cash payments (so that the business is not crippled).
 A POS system increasingly must support multiple and varied client-side
terminals and interfaces.
 These include a thin-client Web browser terminal, a regular
 personal computer with something like a Java Swing graphical user interface,
 touch screen input, wireless PDAs, and so forth.
 Furthermore, we are creating a commercial POS system that we will sell to
different clients with disparate needs in terms of business rule processing.
 Each client will desire a unique set of logic to execute at certain
predictable points in scenarios of using the system, such as when a new
sale is initiated or when a new line item is added.
 Therefore, we will need a mechanism to provide this flexibility and
customization.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 49
subsystems
User Interface—graphical interface; windows.
Application Logic and Domain Objects—software
objects representing
• domain concepts (for example, a software class
named Sale) that fulfill application requirements.
Technical Services—general purpose objects and
subsystems that provide
• supporting technical services, such as interfacing
with a database or error
• logging. These services are usually application-
independent and reusable across several systems.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 50
• The NextGen case study primarily
emphasizes the problem domain objects,
allocating responsibilities to them to fulfill
the requirements of the application.
• Object-oriented design is also applied to
create a technical service subsystem for
interfacing with a database
• UI layer has very little responsibility; it is
said to be thin.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 51
SAMPLE LAYERS
3/9/2022 Dr.S.Gunasundari/CSE/VEC 52
• OOAD is applied to the NextGen POS
system in multiple iterations
• The first iteration is for some core
functions.
• Later iterations expand the functionality
of the system
• In conjunction with iterative
development, the presentation of
analysis and design topics, UML
notation, and patterns are introduced
iteratively and incrementally.
• In the first iteration, a core set of analysis
and design topics and notation is
presented.
• The second iteration expands into new
ideas, UML notation, and patterns.
• And likewise in the third iteration
3/9/2022 Dr.S.Gunasundari/CSE/VEC 53
Inception
• Most projects require a short initial step
– What is the vision and business case for this project?
– Feasible?
– Buy and/or build?
– Rough estimate of cost: Is it $10K-100K or in the
millions?
– Should we proceed or stop?
• Inception in one sentence:
– Envision the product scope, vision, and business case.
• Do the stakeholders have basic agreement on the
vision of the project, and is it worth investing in
serious investigation?
3/9/2022 Dr.S.Gunasundari/CSE/VEC 54
Purpose of Inception
• Establish vision, scope and business case
– Vision: What do we want?
– Scope: What do we include and not include?
– Business case: Who wants it and why?
• Determine primary scenarios as Use Cases
– Completeness not necessary, maybe just 10%
• Estimate feasibility and risks
• Start defining terms in a glossary. Why?
• Creation of a development environment
How long does it take?
Can be as short as a day or two, as long as a few
weeks
3/9/2022 Dr.S.Gunasundari/CSE/VEC 55
What it isn’t
• Defining precise requirements
• Getting good estimates
• Purpose of the inception step is not to
define all the requirements, or generate a
believable estimate or project plan
3/9/2022 Dr.S.Gunasundari/CSE/VEC 56
What gets defined?
• Business case
• Some of the use cases
• Other (usually non-functional) requirements
• Key domain terminology
• List of risks (business, resource, technical,
schedule) and risk management plan
• Prototypes
• Iteration plan
• Phase plan
• Development case
3/9/2022 Dr.S.Gunasundari/CSE/VEC 57
Analogy from oil business
1. Decide if there is evidence (business case) to
justify exploratory drilling
2. If so, do measurements and exploratory
drilling
3. Provide estimates …
• Inception is like step 1: a feasibility study to
decide if it is even worth investing in
exploratory drilling
Another analogy: consulting with a doctor to
do exploratory surgery
In the oil business, when a new field is being considered,
some of the steps include:
3/9/2022 Dr.S.Gunasundari/CSE/VEC 58
Example vision & business case
Introduction
We envision a next generation fault-tolerant point-of-sale
(POS) application, NextGen POS, with the flexibility to
support varying customer business rules, multiple terminal
and user interface mechanisms, and integration with multiple
third-party supporting systems.
Business Case
Existing POS products are not adaptable to the customer's
business, in terms of varying business rules and varying
network designs (for example, thin client or not; 2, 3, or 4-tier
architectures). In addition, they do not scale well as terminals
and business increase. None can work in either on-line or
off-line mode, dynamically adapting depending on failures.
None easily integrate with many third-party systems. None
allow for new terminal technologies such as mobile PDAs.
There is marketplace dissatisfaction with this inflexible state
of affairs, and demand for a POS that rectifies this.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 59
Brief format Use Case
• A story of an actor using a system to meet a goal
Process Sale: A customer arrives at a checkout
with items to purchase. The cashier uses the POS
system to record each purchased item.
The system presents a running total and
line-item details. The customer enters payment
information, which the system validates and
records. The system updates inventory.
The customer receives a receipt from the system
and then leaves with the items.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 60
Glossary
Term Definition Format Aliases
item A product or service for sale
Payment
authorization
Validation by an external
payment authorization service
that they will make or guarantee
the payment to the seller.
UPC Numeric code that identifies a
product. Usually symbolized
with a bar code placed on
products.
12-digit
code of
several
subparts
Universal
Product Code
3/9/2022 Dr.S.Gunasundari/CSE/VEC 61
Sample inception
artifacts
These artifacts are only partially completed
in this phase. They will be iteratively
refined in subsequent iterations
3/9/2022 Dr.S.Gunasundari/CSE/VEC 62
Requirements
• Capabilities and conditions to which the
system must conform
• A systematic approach to finding,
documenting, organizing the changing
requirements of a system.
• prime challenge of requirements work is to
find, communicate, and remember (that
usually means record) what is really needed,
in a form that clearly speaks to the client and
development team members.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 63
Factors on challenged projects
• one study of factors on challenged
projects revealed that 37% of factors
related to problems with requirements,
making requirements issues the largest
single contributor to problems
• Incomplete requirements
• Changing requirements
3/9/2022 Dr.S.Gunasundari/CSE/VEC 64
• 25% of the requirements change on a
project
• Attempting to define all requirements was
the main problem in 82% of projects
• When attempting to specify all features in
advance, 45% of such features were never
used
3/9/2022 Dr.S.Gunasundari/CSE/VEC 65
FURPS+ model
(Grady 1992)
FURPS is a checklist for requirements:
• Functional (features, capabilities, security)
• Usability (human factors, help, documentation)
• Reliability (frequency of failure, recoverability,
predictability)
• Performance (response time, throughput,
accuracy, availability, resource usage)
• Supportability (adaptability, maintainability,
internationalization, configurability)
3/9/2022 Dr.S.Gunasundari/CSE/VEC 66
• "+" in FURPS+ indicates ancillary and sub-
factors, such as:
• Implementation—resource limitations,
languages and tools, hardware, ...
• Interface—constraints imposed by
interfacing with external systems.
• Operations—system management in its
operational setting.
• Packaging
• Legal—licensing and so forth.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 67
quality attributes,
quality requirements
• Usability
• Reliability
• Performance
• supportability
3/9/2022 Dr.S.Gunasundari/CSE/VEC 68
functional (behavioral)
non-functional (everything else)
Types of requirements
Functional and non-functional
• Functional requirements describe system behaviors
– Priority: rank order the features wanted in importance
– Criticality: how essential is each requirement to the
overall system?
– Risks: when might a requirement not be satisfied?
What can be done to reduce this risk?
• Non-functional requirements describe other desired
attributes of overall system
– Product cost (how do measure cost?)
– Performance (efficiency, response time? startup time?)
– Portability (target platforms?), binary or byte-code
compatibility?
– Availability (how much down time is acceptable?)
– Security (can it prevent intrusion?)
– Safety (can it avoid damage to people or environment?)
– Maintainability (in OO context: extensibility, reusability)
3/9/2022 Dr.S.Gunasundari/CSE/VEC 69
• Functional requirements are explored and recorded in the
Use-Case Model
• Other requirements can be recorded in the use cases they
relate to, or in the Supplementary Specifications artifact.
• The Vision artifact summarizes high-level requirements that
are elaborated in these other documents.
• The Glossary records and clarifies terms used in the
requirements. The Glossary in the UP also encompasses the
concept of the data dictionary, which records requirements
related to data, such as validation rules, acceptable values,
and so forth.
• Prototypes are a mechanism to clarify what is wanted or
possible.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 70
Requirements Organization in the
UP
• Use-case model
• Supplementary specification
• Glossary
• Vision
• Business rules. Policies that apply to all
software projects. E.g. Tax laws, data
security, etc.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 71
Use Case
• Use cases are text stories (not diagrams!) used to discover and
record requirements
• Excellent technique to understand and describe requirements.
• Use cases are functional requirements that indicate what the
system will do
• The UP defines the Use-Case Model within the Requirements
discipline
– set of all use cases; it is a model of the system's functionality and
environment
• Use cases are text documents, not diagrams, and use-case
modeling is primarily an act of writing text, not drawing.
• However, the UML defines a use case diagram to illustrate the
names of use cases and actors, and their relationships
72
Dr.S.Gunasundari/CSE/VEC
• Use case plays a significant role in the distinct
phases of the Software Development Life Cycle.
• Use Case depends on ‘User Actions’ and ‘Response
of System’ to the User Actions
• It is the documentation of the ‘Actions’ performed by
the Actor/User and the corresponding ‘Behaviour’ of
the System to the User ‘Actions’
Uses of the Documents:
• Developers use the documents for implementing the
code and designing it.
• Testers use them for creating the test cases.
• Business stakeholders use the document for
understanding the software requirements.
Dr.S.Gunasundari/CSE/VEC 73
Definitions/ Elements in Use Cases
• Brief description
– A brief description explaining the case.
• Actor
– something with a behavior, such as a person, an input
device, etc.
– Users that are involved in Use Cases Actions
– eg cashier
• Scenario – Specific sequence of actions and interactions
between actors. (also called a use-case instance)
– Successfully purchasing items with cash
– scenario of failing to purchase items because of a credit card
transaction denial
• Use Case is a collection of related success and failure
scenarios that describe an actor using a system to support
a goal
74
Dr.S.Gunasundari/CSE/VEC
Dr.S.Gunasundari/CSE/VEC 75
Primary Actor
• The person (or sometimes object) that
calls upon system services to fulfill a goal
• Supporting actors : provide services to the system under
design.
stakeholders
• The stakeholders are people who have a
reason to want this system. The Interests
are their reasons for wanting it and what
they expect from it.
Dr.S.Gunasundari/CSE/VEC 76
Preconditions:
• Conditions to be Satisfied before the case
begins
• Cashier is identified and authenticated.
Success Guarantee (Postconditions):
The conditions that need to be checked after
the case is completed.
• Sale is saved. Tax is correctly calculated.
• Accounting and Inventory are updated.
Commissions recorded. Receipt is generated.
• Payment authorization approvals are
recorded.
.
Dr.S.Gunasundari/CSE/VEC 77
Example 1
Use Case Name Login
Use case Description A user login to System to access the
functionality of the system.
Actors Parents, Students, Teacher, Admin
Pre-Condition System must be connected to the
network.
Post -Condition After a successful login a notification mail
is sent to the User mail id
Dr.S.Gunasundari/CSE/VEC 78
Basic Flow:
• ‘Basic Flow’ or ‘Main Scenario’ is the normal
workflow in the system. It is the flow of
transactions done by the Actors on accomplishing
their goals.
• When the actors interact with the system, as it’s
the normal workflow, there won’t be any error and
the Actors will get the expected output.
Alternate flow:
• Apart from the normal workflow, a system can
also have an ‘Alternate workflow’.
• This is the less common interaction done by a
user with the system.
Dr.S.Gunasundari/CSE/VEC 79
Main Scenarios Serial No Steps
Actors/Users 1 Enter username
Enter Password
2 Validate Username and Password
3 Allow access to System
Extensions 1a Invalid Username
System shows an error message
2b Invalid Password
System shows an error message
3c Invalid Password for 4 times
Application closed
Dr.S.Gunasundari/CSE/VEC 80
Three Formats
• Brief – Concise, one-paragraph summary, usually the
main success scenario. Create during early
requirements phase.
• Casual – Informal paragraph format. Can cover various
scenarios in multiple paragraphs.
• Fully-dressed – All steps and variations written in detail.
Has supporting sections, success guarantees, main
scenario, alternate scenarios, etc.
Dr.S.Gunasundari/CSE/VEC 81
brief format use case
Process Sale: A customer arrives at a checkout with items to
purchase. The cashier uses the POS system to record each
purchased item. The system presents a running total and
line-item details. The customer enters payment information,
which the system validates and records. The system updates
inventory. The customer receives a receipt from the system
and leaves with the items.
(OR)
Use case: Buy Items •
Actors: Customer, Cashier •
Primary •
Description: A customer arrives at checkout with items
to purchase. The Cashier records the purchase items and
collects payment, On completion, the Customer leaves with
the items.
82
Dr.S.Gunasundari/CSE/VEC
Use Case Example
Handlereturn
Main Success Scenario: A customer arrives at a checkout
with items to return. The cashier uses the POS system to
record each returned item ...
Alternate Scenarios:
• If the credit authorization is reject, inform the customer and
ask for an alternate payment method.
• If the item identifier is not found in the system, notify the
Cashier and suggest manual entry of the identifier code
(perhaps it is corrupted).
• If the system detects failure to communicate with the
external tax calculator system
83
Dr.S.Gunasundari/CSE/VEC
Write Black-Box Use Cases
• Don’t describe internal workings
• Describe responsibilities
• “The system records the sale” – Correct One
• “The System writes the sale record to a
database” –Wrong
• By defining system responsibilities with black-
box use cases, it is possible to specify what
the system must do (the functional
requirements) without deciding how it will do it
Dr.S.Gunasundari/CSE/VEC 84
CASE STUDY: THE NEXTGEN POS SYSTEM /NextGen point-of-sale (POS)
system
 A POS system is a computerized application used (in part) to record sales and
handle payments; it is typically used in a retail store.
 It includes hardware components such as a computer and bar code scanner, and
software to run the system.
 It interfaces to various service applications, such as a third-party tax calculator and
inventory control.
 These systems must be relatively fault-tolerant;
 that is, even if remote services are temporarily unavailable (such as the
inventory system), they must still be capable of capturing sales and handling at
least cash payments (so that the business is not crippled).
 A POS system increasingly must support multiple and varied client-side terminals
and interfaces.
 These include a thin-client Web browser terminal, a regular personal computer
with something like a Java Swing graphical user interface, touch screen input,
wireless PDAs, and so forth.
 creating a commercial POS system that we will sell to different clients with
disparate needs in terms of business rule processing.
 Each client will desire a unique set of logic to execute at certain predictable
points in scenarios of using the system, such as when a new sale is initiated or
when a new line item is added.
 Therefore, we will need a mechanism to provide this flexibility and
customization.
3/9/2022 Dr.S.Gunasundari/CSE/VEC 85
Fully Dressed Example: Process Sale
Use Case UC1: Process Sale
Primary Actor: Cashier
Stakeholders and Interests:
- Cashier: Wants accurate, fast entry, and no payment errors, as cash drawer short
ages are deducted from his/her salary.
- Salesperson: Wants sales commissions updated.
- Customer: Wants purchase and fast service with minimal effort. Wants proof of pur
chase to support returns.
- Company: Wants to accurately record transactions and satisfy customer interests.
Wants to ensure that Payment Authorization Service payment receivables are
recorded. Wants some fault tolerance to allow sales capture even if server compo
nents (e.g., remote credit validation) are unavailable. Wants automatic and fast
update of accounting and inventory.
- Government Tax Agencies: Want to collect tax from every sale. May be multiple agen
cies, such as national, state, and county.
- Payment Authorization Service: Wants to receive digital authorization requests in the
correct format and protocol. Wants to accurately account for their payables to the
store
Dr.S.Gunasundari/CSE/VEC 86
Main Success Scenario (or Basic
Flow):
1. Customer arrives at POS checkout with goods and/or services to purchase.
2. Cashier starts a new sale.
3. Cashier enters item identifier.
4. System records sale line item and presents item description, price, and
running total.
Price calculated from a set of price rules.
Cashier repeats steps 3-4 until indicates done
System presents total with taxes calculated.
6. Cashier tells Customer the total, and asks for payment.
7. Customer pays and System handles payment.
8. System logs completed sale and sends sale and payment information to the
external Accounting system (for accounting and commissions) and Inventory
system (to update inventory).
9. System presents receipt.
10.Customer leaves with receipt and goods (if any).
Dr.S.Gunasundari/CSE/VEC 87
Extensions (or Alternative Flows):
*a. At any time, System fails:
To support recovery and correct accounting,
ensure all transaction sensitive state and
events can be recovered from any step of the
scenario.
1. Cashier restarts System, logs in, and requests recovery
of prior state.
2. System reconstructs prior state.
2a. System detects anomalies preventing recovery:
1. System signals error to the Cashier, records
the error, and enters a clean state.
2. Cashier starts a new sale.
Dr.S.Gunasundari/CSE/VEC 88
3a. Invalid identifier:
1. System signals error and rejects entry.
3b. There are multiple of same item category and tracking unique item identity not
important (e.g., 5 packages of veggie-burgers):
1. Cashier can enter item category identifier and the quantity.
3-6a: Customer asks Cashier to remove an item from the purchase:
1. Cashier enters item identifier for removal from sale.
2. System displays updated running total.
3-6b. Customer tells Cashier to cancel sale:
1. Cashier cancels sale on System.
3-6c. Cashier suspends the sale:
1. System records sale so that it is available for retrieval on any POS
terminal.
4a.The system generated item price is not wanted (e.g., Customer complained
about something and is offered a lower price):
1. Cashier enters override price.
2. System presents new price
Dr.S.Gunasundari/CSE/VEC 89
5a. System detects failure to communicate with external tax calculation system
service:
1. System restarts the service on the POS node, and continues.
1a. System detects that the service does not restart.
1. System signals error.
2. Cashier may manually calculate and enter the tax, or cancel
the sale.
5b. Customer says they are eligible for a discount (e.g., employee, preferred
customer):
1. Cashier signals discount request.
2. Cashier enters Customer identification.
3. System presents discount total, based on discount rules.
5c. Customer says they have credit in their account, to apply to the sale:
1. Cashier signals credit request.
2. Cashier enters Customer identification.
3. Systems applies credit up to price=0, and reduces remaining credit.
Dr.S.Gunasundari/CSE/VEC 90
6a. Customer says they intended to pay by
cash but don’t have enough cash:
1a. Customer uses an alternate payment method.
1b. Customer tells Cashier to cancel sale. Cashier
cancels sale on system
7a. Paying by cash:
1. Cashier enters the cash amount tendered.
2. System presents the balance due, and releases the cash
drawer.
3. Cashier deposits cash tendered and returns balance in
cash to Customer.
4. System records the cash payment.
Dr.S.Gunasundari/CSE/VEC 91
7b. Paying by credit:
1. Customer enters their credit account information.
2. System sends payment authorization request to an external Payment
Authorization Service System, and requests payment approval.
2a. System detects failure to collaborate with external system:
1. System signals error to Cashier.
2. Cashier asks Customer for alternate payment.
3. System receives payment approval and signals approval to Cashier.
3a. System receives payment denial:
1. System signals denial to Cashier.
2. Cashier asks Customer for alternate payment.
4. System records the credit payment, which includes the payment
approval.
5. System presents credit payment signature input mechanism.
6. Cashier asks Customer for a credit payment signature. Customer
enters signature.
Dr.S.Gunasundari/CSE/VEC 92
7c. Paying by cheque...
7d. Paying by debit...
7e. Customer presents coupons:
1. Before handling payment, Cashier records each coupon and System
reduces price as appropriate. System records the used coupons for
accounting reasons.
1a. Coupon entered is not for any purchased item:
1. System signals error to Cashier.
9a.There are product rebates:
1. System presents the rebate forms and rebate receipts for each item
with a rebate.
9b. Customer requests gift receipt (no prices visible):
1.Cashier requests gift receipt and System presents it.
Dr.S.Gunasundari/CSE/VEC 93
Special Requirements
• If a non-functional requirement, quality attribute, or
constraint relates specifically to a use case, record it
with the use case.
• These include qualities such as performance,
reliability, and usability, and design constraints (often
in I/O devices)
Special Requirements
• Touch screen Ul on a large flat panel monitor. Text
must be visible from 1 meter.
• Credit authorization response within 30 seconds
• Robust recovery when access to remote services such
the inventory system is failing.
• Language internationalization on the text displayed.
• Pluggable business rules to be insertable at steps 3
and 7.
Dr.S.Gunasundari/CSE/VEC 94
Technology and Data Variations
List
• Technical constraint imposed by a stakeholder regarding input
or output technologies
• For example, a stakeholder might say, "The POS system must
support credit account input using a card reader and the
keyboard
Technology and Data Variations List
• Item identifier entered by bar code laser scanner (if bar code
is present) or keyboard.
• 3b. Item identifier may be any UPC (universal product code),
EAN (European Article Number), or SKU (stock keeping
unit)coding scheme.
• 7a. Credit account information entered by card reader or
keyboard.
• 7b. Credit payment signature captured on paper receipt. But
within two years, we predict many customers will want digital
signature capture.
Dr.S.Gunasundari/CSE/VEC 95
Frequency of Occurrence: Could be nearly
continuous.
Open Issues:
• What are the tax law variations?
• Explore the remote service recovery issue.
• What customization is needed for different
businesses?
• Must a cashier take their cash drawer when they
log out?
• Can the customer directly use the card reader, or
does the cashier have to do it?
Dr.S.Gunasundari/CSE/VEC 96
Two-Column Variation
Dr.S.Gunasundari/CSE/VEC 97
9. Logs the completed sale and sends
information to the external accounting
(for all accounting and commissions)
and inventory systems (to
update inventory). System presents
receipt.
Goals and Scope of a Use Case
• How should use cases be discovered?
• Tasks can be grouped at many levels of granularity,
from one or a few small steps, up to enterprise-level
activities.
• At what level and scope should use cases be
expressed?
• What is a valid use case?
• Relevant Question: What is a useful level to
express use cases for application requirements
analysis
• Elementary business processes and goals as a
framework for identifying the use cases for an
application.
Dr.S.Gunasundari/CSE/VEC 98
Guideline: The EBP Use Case
• For requirements analysis for a computer
application, focus on use cases at the level
of elementary business processes
(EBPs).
• EBP: A task performed by one person in
one place at one time, in response to a
business event, which adds measurable
business value and leaves the data in a
consistent state. e.g., Approve Credit
• A common use case mistake is defining
many use cases at too low a level
Dr.S.Gunasundari/CSE/VEC 99
Reasonable Violations of the
EBP Guideline
• Although the "base" use cases for an application
should satisfy the EBP guideline, it is frequently
useful to create separate "sub" use cases
representing sub-tasks or steps within a base use
case
• The guideline is only used to find the dominant
level of use cases in requirements analysis for an
application
• paying by credit" may be repeated in several base
use cases.
– It is desirable to separate this into its own use case
– link it to several base use cases, to avoid duplication
of the text.
Dr.S.Gunasundari/CSE/VEC 100
Finding Use Cases
1. Choose the system boundary
• For this case study, the POS system itself is the system under
design
• everything outside of it is outside the system boundary, including
the cashier, payment authorization service, and so on.
• If the definition of the boundary of the system under design is
not clear, it can be clarified by further definition of what is
outside the external primary and supporting actors.
• Once the external actors are identified, the boundary becomes
clearer
2. Identify the primary actors
3. Identify the goals for each primary actor
4. Define use cases that satisfy these goals
Dr.S.Gunasundari/CSE/VEC 101
Questions to Find Actors and Goals
• Who starts and stops the system?
• Who does user and security management?
• Who does system administration?
• Is “time” an actor because the system does
something in response to a time event?
• How are software updates handled?
• Who gets notified of problems?
Dr.S.Gunasundari/CSE/VEC 102
Actor-Goal List
Actor Goal
Cashier Process Sales
Process rentals
Handle returns
Cash in
Cash out
Manager Start up
Shut down
System administrator Add/Modify/Delete users
Manage security
Manage System tables
… …
Dr.S.Gunasundari/CSE/VEC 103
Primary Actor and User Goals
Depend on System Boundary
• Why is the cashier, and not the customer, the primary
actor in the use case Process Sale? Why doesn’t the
customer appear in the actor-goal list?
Solution
• The answer depends on the system boundary of the
system under design.
• If viewing the enterprise or checkout service as an
aggregate system, the customer is a primary actor,
with the goal of getting goods or services and leaving.
• However, from the viewpoint of just the POS system it
services the goal of the cashier (and the store) to
process the customer’s sale.
Dr.S.Gunasundari/CSE/VEC 104
Dr.S.Gunasundari/CSE/VEC 105
Actors and Goals via Event
Analysis
• Another approach to aid in finding actors, goals,
and use cases is to identify external events
• What are they, where from, and why?
• Often, a group of events belong to the same EBP-
level goal or use case.
Dr.S.Gunasundari/CSE/VEC 106
Define Use Cases
• Define one EBP-level use case for each user goal.
• Name the use case similar to the user goal.
• for example, Goal: process a sale; Use Case:
ProcessSale
• name use cases starting with a verb
• A common exception to one use case per goal is
to collapse CRUD (create,retrieve, update, delete)
separate goals into one CRUD use case,
idiomatically called Manage <X>.
– For example, the goals "edit user," "delete user," and
so forth are all satisfied by the Manage Users use
case.
Dr.S.Gunasundari/CSE/VEC 107
Write Use Cases in an Essential Ill-
Free Style
• the cashier may say one of his goals is to "log in."
– The cashier was probably thinking of a GUI, dialog box, user
ID,and password.
– If the goal is "identification and authentication"
• make it easy and fast, using a biometric reader on the
keyboard?
Essential Style Writing
• keep the user interface out; focus on actor intent
Dr.S.Gunasundari/CSE/VEC 108
Concrete Style.Avoid During
Early Requirements Work
concrete use case style
• user interface decisions are embedded in the use case text.
• The text may even show window screen shots, discuss
window navigation, GUI widget manipulation
Dr.S.Gunasundari/CSE/VEC 109
Actors
• An actor is anything with behavior, including the system under discussion
(SuD) itself when it calls upon the services of other systems.
• Primary and supporting actors will appear in the action steps of the use
case text.
• Actors are not only roles played by people, but organizations, software, and
machines.
• There are three kinds of external actors in relation to the SuD:
Primary actor
• has user goals fulfilled through using services of the SuD.
• For example, the cashier.
Supporting actor
• provides a service (for example, information) to the SuD.
• The automated payment authorization service is an example.
Offstage actor.
• has an interest in the behavior of the use case, but is not primary or
supporting
• for example, a government tax agency.
Dr.S.Gunasundari/CSE/VEC 110
Applying UML: Use Case Diagrams
• The UML provides use case diagram
notation to illustrate the names of use
cases and actors, and the relationships
between them
Dr.S.Gunasundari/CSE/VEC 111
Actor
• Actor in a use case diagram is any
entity that performs a role in one
given system
Dr.S.Gunasundari/CSE/VEC 112
Custom icons that convey the kind of
actor may also be used to denote an actor,
such as using a separate icon(s) for non-
human actors.
An actor may also be shown as
a class rectangle with the
keyword «actor», having usual notation for
class compartments, if needed.
Use Case
• A use case represents a function or an action within the
system. It’s drawn as an oval and named with the function.
Dr.S.Gunasundari/CSE/VEC 113
System
• The system is used to define the scope of
the use case and drawn as a rectangle.
• This an optional element but useful when
you’re visualizing large systems.
Dr.S.Gunasundari/CSE/VEC 114
How to Create a Use Case Diagram
• Identifying Actors
– It can be a person, another system or an
organization
– In a banking system, the most obvious actor is
the customer. Other actors can be bank
employee or cashier depending on the role
– external organization can be the tax authority or
the central bank
• Identifying Use Cases
– identify what the actors need from the system.
– In a banking system, a customer will need to
open accounts, deposit and withdraw funds,
request check books and similar functions.
Dr.S.Gunasundari/CSE/VEC 115
• Look for Common Functionality to use
Include
– If you find two or more use cases that share
common functionality you can extract the
common functions and add it to a separate use
case.
– Then you can connect it via the include
relationship to show that it’s always called when
the original use case is executed.
• Is it Possible to Generalize Actors and Use
Cases
• Optional Functions or Additional Functions
Dr.S.Gunasundari/CSE/VEC 116
RELATING USE CASES &
INCLUDE, EXTEND AND
GENERALIZATION
There can be 5 relationship types in a use
case diagram.
• Association between actor and use case
• Generalization of an actor
• Extend between two use cases
• Include between two use cases
• Generalization of a use case
Dr.S.Gunasundari/CSE/VEC 117
Association Between Actor and
Use Case
• An actor must be associated with at least one use case.
• An actor can be associated with multiple use cases.
• Multiple actors can be associated with a single use case.
Dr.S.Gunasundari/CSE/VEC 118
Generalization of an Actor
• Generalization of an actor means that one actor can inherit the role of an other
actor.
• The descendant inherits all the use cases of the ancestor.
• The descendant have one or more use cases that are specific to that role.
• Generalization between actors is rendered as a solid directed line with a large
arrowhead
Dr.S.Gunasundari/CSE/VEC 119
Dr.S.Gunasundari/CSE/VEC 120
Web Client actor is abstract superclass for
Administrator, Editor and Customer.
Generalization of a Use Case
• This is similar to the generalization of an actor.
• The behavior of the ancestor is inherited by the
descendant.
• This is used when there are common behavior
between two use cases and also specialized
behavior specific to each use case.
• For example in the previous banking example
there might be an use case called “Pay Bills”.
– This can be generalized to “Pay by Credit Card”,
“Pay by Bank Balance” etc.
• It is rendered as a solid directed line with a
large arrowhead, the same as
for generalization between classifiers
Dr.S.Gunasundari/CSE/VEC 121
Dr.S.Gunasundari/CSE/VEC 122
Dr.S.Gunasundari/CSE/VEC 123
Extend Relationship Between Two
Use Cases
• As the name implies it extends the base use case
and adds more functionality to the system
• The extending use case is dependent on the
extended (base) use case.
• “Calculate Bonus” use case doesn’t make much
sense without the “Deposit Funds” use case.
• The extending use case is usually optional and
can be triggered conditionally.
• Extending use case is triggered only for deposits
over 10,000 or when the age is over 55.
• The extended (base) use case must be
meaningful on its own.
– This means it should be independent and must not
rely on the behavior of the extending use case
Dr.S.Gunasundari/CSE/VEC 124
Dr.S.Gunasundari/CSE/VEC 125
Extend relationship between use cases is shown by a dashed arrow with
an open arrowhead from the extending use case to the extended
(base) use case. The arrow is labeled with the keyword «extend».
Dr.S.Gunasundari/CSE/VEC 126
Registration use case is complete and meaningful on its
own. It could be extended with optional Get Help On
Registration use case
Include Relationship Between Two
Use Cases
• Include relationship show that the behavior of the
included use case is part of the including (base)
use case.
• Reuse the common actions across multiple use
cases.
• Simplify complex behaviors.
• The base use case is incomplete without the
included use case.
• The included use case is mandatory and not
optional
• An include relationship between use cases is
shown by a dashed arrow with an open arrowhead
from the base use case to the included use case.
The arrow is labeled with the keyword «include».
Dr.S.Gunasundari/CSE/VEC 127
Dr.S.Gunasundari/CSE/VEC 128
Dr.S.Gunasundari/CSE/VEC 129
When two or more use cases have some common behavior, this
common part could be extracted into a separate use case to be included
back by the use cases with the UML include relationship
Use case C is extracted
from use cases A and B to
be reused by both use
cases using UML include
relationship
Dr.S.Gunasundari/CSE/VEC 130
Concrete, Abstract, Base, and
Addition Use
Cases
• A concrete use case
– It is initiated by an actor and performs the
entire behavior desired by the actor
– Process Sale
• An abstract use case
– It is never instantiated by itself; it is a subfunction use
case that is part of another use case.
– Handle Credit Payment is abstract; it doesn't stand on
its own, but is always part of another story, such as
Process Sale
Dr.S.Gunasundari/CSE/VEC 131
• base use case
– use case that includes another use case, or
that is extended or specialized by another use
case is called a base use case
– Process Sale is a base use case with respect
to the included Handle Credit Payment
subfunction use case.
• addition use case
– use case that is an inclusion, extension, or
specialization is called an addition use case.
– Handle Credit Payment is the addition use case in the
include relationship to Process Sale.
Dr.S.Gunasundari/CSE/VEC 132
Dr.S.Gunasundari/CSE/VEC 133
Generalization Extend Include
Base use case could
be abstract use
case (incomplete) or
concrete (complete).
Base use case is complete
(concrete) by itself, defined
independently.
Base use case is
incomplete (abstract use
case).
Specialized use case
is required, not
optional, if base use
case is abstract.
Extending use case is
optional, supplementary.
Included use case required,
not optional.
No explicit condition
to use specialization.
Could have optional
extension condition.
No explicit inclusion
condition.
Dr.S.Gunasundari/CSE/VEC 134
Registration use case with extension points
Registration Help and User Agreement
NEXTGEN POS
Dr.S.Gunasundari/CSE/VEC 135
Dr.S.Gunasundari/CSE/VEC 136
A simple diagram can add clarity
Dr.S.Gunasundari/CSE/VEC 137
Dr.S.Gunasundari/CSE/VEC 138
Dr.S.Gunasundari/CSE/VEC 139

More Related Content

What's hot

Chapter 12 Lecture: GUI Programming, Multithreading, and Animation
Chapter 12 Lecture: GUI Programming, Multithreading, and AnimationChapter 12 Lecture: GUI Programming, Multithreading, and Animation
Chapter 12 Lecture: GUI Programming, Multithreading, and AnimationNicole Ryan
 
CS8592 Object Oriented Analysis & Design - UNIT III
CS8592 Object Oriented Analysis & Design - UNIT III CS8592 Object Oriented Analysis & Design - UNIT III
CS8592 Object Oriented Analysis & Design - UNIT III pkaviya
 
CS8592 Object Oriented Analysis & Design - UNIT II
CS8592 Object Oriented Analysis & Design - UNIT IICS8592 Object Oriented Analysis & Design - UNIT II
CS8592 Object Oriented Analysis & Design - UNIT IIpkaviya
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTleela rani
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
CIS110 Computer Programming Design Chapter (10)
CIS110 Computer Programming Design Chapter  (10)CIS110 Computer Programming Design Chapter  (10)
CIS110 Computer Programming Design Chapter (10)Dr. Ahmed Al Zaidy
 
CIS110 Computer Programming Design Chapter (3)
CIS110 Computer Programming Design Chapter  (3)CIS110 Computer Programming Design Chapter  (3)
CIS110 Computer Programming Design Chapter (3)Dr. Ahmed Al Zaidy
 
Problem solving (C++ Programming)
Problem solving (C++ Programming)Problem solving (C++ Programming)
Problem solving (C++ Programming)Umair Younas
 
CIS110 Computer Programming Design Chapter (13)
CIS110 Computer Programming Design Chapter  (13)CIS110 Computer Programming Design Chapter  (13)
CIS110 Computer Programming Design Chapter (13)Dr. Ahmed Al Zaidy
 
Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1Haitham Raik
 
Object Oriented Analysis and Design with UML2 part2
Object Oriented Analysis and Design with UML2 part2Object Oriented Analysis and Design with UML2 part2
Object Oriented Analysis and Design with UML2 part2Haitham Raik
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV pkaviya
 
Chapter 11: Object Oriented Programming Part 2
Chapter 11: Object Oriented Programming Part 2Chapter 11: Object Oriented Programming Part 2
Chapter 11: Object Oriented Programming Part 2Nicole Ryan
 
UML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language IntroductionUML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language IntroductionRamakant Soni
 

What's hot (19)

Chapter 12 Lecture: GUI Programming, Multithreading, and Animation
Chapter 12 Lecture: GUI Programming, Multithreading, and AnimationChapter 12 Lecture: GUI Programming, Multithreading, and Animation
Chapter 12 Lecture: GUI Programming, Multithreading, and Animation
 
CS8592 Object Oriented Analysis & Design - UNIT III
CS8592 Object Oriented Analysis & Design - UNIT III CS8592 Object Oriented Analysis & Design - UNIT III
CS8592 Object Oriented Analysis & Design - UNIT III
 
CS8592 Object Oriented Analysis & Design - UNIT II
CS8592 Object Oriented Analysis & Design - UNIT IICS8592 Object Oriented Analysis & Design - UNIT II
CS8592 Object Oriented Analysis & Design - UNIT II
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
CIS110 Computer Programming Design Chapter (10)
CIS110 Computer Programming Design Chapter  (10)CIS110 Computer Programming Design Chapter  (10)
CIS110 Computer Programming Design Chapter (10)
 
Jeet ooad unit-2
Jeet ooad unit-2Jeet ooad unit-2
Jeet ooad unit-2
 
CIS110 Computer Programming Design Chapter (3)
CIS110 Computer Programming Design Chapter  (3)CIS110 Computer Programming Design Chapter  (3)
CIS110 Computer Programming Design Chapter (3)
 
Problem solving (C++ Programming)
Problem solving (C++ Programming)Problem solving (C++ Programming)
Problem solving (C++ Programming)
 
CIS110 Computer Programming Design Chapter (13)
CIS110 Computer Programming Design Chapter  (13)CIS110 Computer Programming Design Chapter  (13)
CIS110 Computer Programming Design Chapter (13)
 
Ooad unit 1
Ooad unit 1Ooad unit 1
Ooad unit 1
 
Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1
 
Object Oriented Analysis and Design with UML2 part2
Object Oriented Analysis and Design with UML2 part2Object Oriented Analysis and Design with UML2 part2
Object Oriented Analysis and Design with UML2 part2
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV
 
Chapter 11: Object Oriented Programming Part 2
Chapter 11: Object Oriented Programming Part 2Chapter 11: Object Oriented Programming Part 2
Chapter 11: Object Oriented Programming Part 2
 
UML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language IntroductionUML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language Introduction
 
Ooad
OoadOoad
Ooad
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
 
Chapter1
Chapter1Chapter1
Chapter1
 

Similar to OOAD Analysis and Design Fundamentals

Unit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxUnit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxRavindranath67
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerGobinath Subramaniam
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignRadu_Negulescu
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and DesignRiazAhmad786
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overviewrmk_rrj
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overviewrmk_rrj
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and designnaveed428
 
How to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureHow to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureBrad Beiermann
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software EngineeringNandhini S
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxBereketMuniye
 
Module3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdfModule3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdfGerard Alba
 
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSIdiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSAndrea Saltarello
 
Object Oriented Database
Object Oriented DatabaseObject Oriented Database
Object Oriented DatabaseMegan Espinoza
 
OOAD-Unit1.ppt
OOAD-Unit1.pptOOAD-Unit1.ppt
OOAD-Unit1.pptrituah
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)IT Industry
 

Similar to OOAD Analysis and Design Fundamentals (20)

Unit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxUnit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptx
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and Design
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overview
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overview
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and design
 
How to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureHow to Speak the Language of Application Architecture
How to Speak the Language of Application Architecture
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software Engineering
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptx
 
UNIT 01 SMD.pptx
UNIT 01 SMD.pptxUNIT 01 SMD.pptx
UNIT 01 SMD.pptx
 
Module3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdfModule3 - Object Oriented Analysis & Functional Model.pdf
Module3 - Object Oriented Analysis & Functional Model.pdf
 
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSIdiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRS
 
Object Oriented Database
Object Oriented DatabaseObject Oriented Database
Object Oriented Database
 
OOAD-Unit1.ppt
OOAD-Unit1.pptOOAD-Unit1.ppt
OOAD-Unit1.ppt
 
5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)
 
Uml
UmlUml
Uml
 

More from GunasundariSelvaraj (6)

Unit 3
Unit 3Unit 3
Unit 3
 
Unit i
Unit iUnit i
Unit i
 
Unit 5
Unit 5Unit 5
Unit 5
 
Unit 4
Unit 4Unit 4
Unit 4
 
Unit 3
Unit 3Unit 3
Unit 3
 
Unit 2
Unit 2Unit 2
Unit 2
 

Recently uploaded

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 

Recently uploaded (20)

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 

OOAD Analysis and Design Fundamentals

  • 1. Unit I -OOAD Dr.S.Gunasundari ASSOCIATE PROF VELAMMAL ENGINEERING COLLEGE
  • 2. Analysis • Analysis emphasizes an investigation of the problem and requirements, rather than a solution. • In software development, we are primarily concerned with two forms of analysis. – Requirements Analysis is discovering the requirements that a system must meet in order to be successful. – Object-Oriented Analysis is investigating the objects in a domain to discover information important to meet the requirements. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 2
  • 3. Use Cases • Writing Use Cases is not a specifically OO artifact – they are simply written stories. • However, they are a best practice for elaborating and understanding requirements. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 3
  • 4. Use Case 1 Use Case 1 Do laundry Actor Housekeeper Basic Flow On Wednesdays, the housekeeper reports to the laundry room. She sorts the laundry that is there. Then she washes each load. She dries each load. She folds the items that need folding. She irons and hangs the items that are wrinkled. She throws away any laundry item that is irrevocably shrunken, soiled or scorched. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 4
  • 5. Use Case Name: Place Order Actors: • Shopper • Fulfillment System • Billing System Use Case Description: After the user has selected items to purchase and then order the items. The user will provide payment and shipping information. The system will respond with confirmation of the order and a tracking number that the user can use to check on order status in the future. The system will also provide the user with an estimated delivery date for the order, which will include all selected items. The user may already have an account with the company with billing and shipping information 3/9/2022 Dr.S.Gunasundari/CSE/VEC 5
  • 6. Design • Design emphasizes a conceptual solution that fulfills the requirements, rather than its implementation. – Design ideas often exclude low-level or obvious details – obvious to the intended consumers. – There are subsets of design, including • architectural design, • object design, • database design. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 6
  • 7. Object-Oriented Analysis and Design (OOAD) • During OOA, the emphasis is on finding and describing the objects (or concepts) in the problem domain, i.e., domain objects. • During OOD (or simply object design), the emphasis is on defining software objects and how they collaborate to fulfill the requirements. • During OOP (OO Programming) or Implementation, design objects are implemented in a programming language. – Implementation is also known as Coding or Construction. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 7
  • 8. Plane tailNumber public class Plane { private String tailNumber; public List getFlightHistory() {...} } domain concept visualization of domain concept representation in an object-oriented programming language Fig. 1.2 Object-orientation emphasizes representation of objects 3/9/2022 Dr.S.Gunasundari/CSE/VEC 8
  • 9. A Short Example Problem Statement: a "dice game" in which software simulates a player rolling two dice. If the total is seven, they win; otherwise, they lose. OOAD steps of a small “Dice Game”: – Define Use Cases – Define a Domain Model – Define Interaction Diagrams – Define Design Class Diagrams 3/9/2022 Dr.S.Gunasundari/CSE/VEC 9
  • 10. Use Case: Play a Dice Game • Requirements analysis may include stories or scenarios of how people use the application; these can be written as use cases • Use cases are not an object-oriented • UseCase: – Player requests to roll the 2 dice. System presents results. If the dice face value totals seven, player wins; otherwise, player loses. Define Use Cases 3/9/2022 Dr.S.Gunasundari/CSE/VEC 10
  • 11. Partial Domain Model • Object-oriented analysis is concerned with creating a description of the domain from the perspective of objects. • There is an identification of the concepts, attributes, and associations that are considered noteworthy. • The result can be expressed in a domain model that shows the noteworthy domain concepts or objects. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 11
  • 12. Player name DiceGame Die faceValue Rolls Plays Includes 2 2 1 1 1 1 Fig. 1.3 Partial domain model (conceptual object model) of the dice game Define a Domain Model Domain model shows the noteworthy domain concepts as objects, their attributes, and associations. Domain model is not a description of software objects; it is a visualization of the concepts Thus, it has also been called a conceptual object model. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 12
  • 13. • Object-oriented design is concerned with defining software objects their responsibilities and collaborations. • A common notation to illustrate these collaborations is the sequence diagram (a kind of UML interaction diagram). • It shows the flow of messages between software objects, and thus the invocation of methods • sending messages to instances of the DiceGame and Die classes • UML Sketching on whiteboard Interaction Diagrams 3/9/2022 Dr.S.Gunasundari/CSE/VEC 13
  • 14. :DiceGame play() die1 : Die fv1 := getFaceValue() die2 : Die roll() roll() fv2 := getFaceValue() Fig. 1.4 Sequence diagram illustrating messages between software objects A sequence diagram (a kind of UML interaction diagram) shows the flow of messages between software objects and thus the invocation of objects. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 14
  • 15. 2 Die faceValue : int getFaceValue() : int roll() DiceGame die1 : Die die2 : Die play() 1 Fig. 1.5 Partial design class diagram (software classes) Define Design Class Diagrams A static view of the class (including its attributes and methods) definitions is usefully shown with a UML class diagram. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 15
  • 16. Unified Modeling Language (UML) • UML is the de facto standard diagramming notation for drawing or presenting pictures related to OO software. • UML is a visual language for specifying, constructing and documenting the artifacts of OO systems. – Knowing UML helps you communicate with others in creating software. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 16
  • 17. Three ways people apply UML are ... • UML as sketch • Informal and incomplete diagrams (often hand sketched on whiteboards) created to explore difficult parts of the problem or solution space • UML as blueprint – relatively detailed design diagrams – used either for reverse engineering to visualize and better understand existing code, • If reverse engineering, a UML tool reads the source or binaries and generates (typically) UML package, class, and sequence diagrams – or for forward engineering to guide for code generation, either manually or automatically with a tool. • UML as a programming language – Complete executable specification of a software system in UML. – Executable code will be automatically generated, but is not normally seen or modified by developer 3/9/2022 Dr.S.Gunasundari/CSE/VEC 17
  • 18. Three perspectives to apply UML are ... • Conceptual perspective – the diagrams are interpreted as describing things in a situation of the real world or domain of interest. • Specification (software) perspective – the diagrams describe sw abstractions or components with specifications and interfaces, but no commitment to a particular language implementation. • Implementation perspective – the diagrams describe sw implementations in a particular technology. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 18
  • 19. The meaning of “class” in different perspectives • Conceptual class – real-world concept or thing. A conceptual or essential perspective. – The UP Domain Model contains conceptual classes. • Software class – a class representing a specification or implementation perspective of a sw development, regardless of the process or method. • Implementation class – a class implemented in a specific OO language such as Java. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 19
  • 20. Conceptual Perspective (domain model) Raw UML class diagram notation used to visualize real-world concepts. Specification or Implementation Perspective (design class diagram) Raw UML class diagram notation used to visualize software elements. 2 Die faceValue : int getFaceValue() : int roll() DiceGame die1 : Die die2 : Die play() DiceGame Die faceValue Includes 2 1 Fig. 1.6 Different perspectives with UML In practice, most software-oriented UML diagramming assumes an implementation perspective and the specification perspective is seldom used for design. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 20
  • 21. Iterative development and UP • Iterative development is a skillful approach to software development • The Unified Process is an example iterative process for projects using OOAD • software development process describes an approach to building,deploying, and possibly maintaining software. • The Unified Process has emerged as a popular software development process for building object-oriented systems. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 21
  • 22. Iterative Development • In this approach, development is organized into a series of short, fixed-length (for example, four week) mini- projects called iterations; • The outcome of each is a tested, integrated, and executable system. • Each iteration includes its own requirements analysis, design, implementation, and testing activities. • The iterative lifecycle is based on the successive enlargement and refinement of a system through multiple iterations, with cyclic feedback and adaptation as core drivers to converge upon a suitable system. • The system grows incrementally over time, iteration by iteration, and thus this approach is also known as iterative and incremental development 3/9/2022 Dr.S.Gunasundari/CSE/VEC 22
  • 23. Requirements Design Implementation& Test&Integration &More Design Final Integration & System Test 3weeks (for example) The system grows incrementally . Time Fig. 2.1 Iterative and Evolutionary Development (also known as iterative and inceremental development; spiral development and evolutionary development) Requirements Design Implementation& Test&Integration &More Design Final Integration & System Test Each iteration is an executable but incomplete system; A subset of the final system (but not a throw-away prototype!) Iterations are fixed in length or timeboxed. Feedback from iteration N Leads to refinement and adaptation of The requirements and design in İteration N+1 3/9/2022 Dr.S.Gunasundari/CSE/VEC 23
  • 24. Example As an example, in a two-week iteration half-way through a project, perhaps Monday is spent primarily on distributing and clarifying the tasks and requirements of the iteration. Tuesday is spent at whiteboards doing pair design work drawing rough UML diagrams captured on digital cameras, and writing some pseudocode and design notes. The remaining eight days are spent on implementation, testing (unit, acceptance, usability, ...), further design, integration, daily builds, system testing, and stabilization of the partial system. Other activities include demonstrations and evaluations with stakeholders, and planning for the next iteration. • The result of each iteration is an executable but incomplete system; • it is not ready to deliver into production. • The system may not be eligible for production deployment until after many iterations; • for example, 10 or 15 iterations. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 24
  • 25. Feedback and Adaptation • Each iteration involves choosing a small subset of the requirements, and quickly designing, implementing, and testing. • In early iterations the choice of requirements and design may not be exactly what is ultimately desired. • But the act of swiftly taking a small step, before all requirements are finalized, or the entire design is speculatively defined, leads to rapid feedback—feedback from the users, developers, and tests (such as load and usability tests). • This early feedback is worth its weight in gold • Feedback provides an opportunity to modify or adapt understanding of the requirements or design 3/9/2022 Dr.S.Gunasundari/CSE/VEC 25
  • 26. Build-Feedback-Adapt Cycles In complex changing systems, feedback and adaptation are key ingredients for success: – Feedback from early development, programmers • to refine the requirements. – Feedback from tests and developers • to refine the design and models. – Feedback from the progress of the team tackling early features • to refine the schedule and estimates. – Feedback from the client and marketplace to re- prioritize the features • to tackle in the next iteration. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 26
  • 27. • End-users have a chance to quickly see a partial system and say, "Yes, that's what I asked for, but now that I try it, what I really want is something slightly different." • This "yes...but" process is not a sign of failure; rather, early and frequent structured cycles of "yes...buts" are a skillful way to make progress and discover what is of real value to the stakeholders. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 27
  • 28. Fig. 2.2 Iterative feedback and evolution leads towards the desired system. The requirements and design instability lowers over time. Early iterations are farther from the "true path" of the system. Via feedback and adaptation, the system converges towards the most appropriate requirements and design. In late iterations, a significant change in requirements is rare, but can occur. Such late changes may give an organization a competitive business advantage. one iteration of design, implement, integrate, and test 3/9/2022 Dr.S.Gunasundari/CSE/VEC 28
  • 29. Benefits of Iterative Development • early rather than late mitigation of high risks (technical, requirements, objectives, usability, and so forth) • early visible progress • early feedback, user engagement, and adaptation, leading to a refined system that more closely meets the real needs of the stakeholders • managed complexity; the team is not overwhelmed by "analysis paralysis" or very long and complex steps • the learning within an iteration can be methodically used to improve the development process itself, iteration by iteration 3/9/2022 Dr.S.Gunasundari/CSE/VEC 29
  • 30. Timeboxing • A key idea is that iterations are timeboxed, or fixed in length. – Most iterative methods recommend in iteration length bw 2 – 6 weeks. – If it seems that it will be difficult to meet the deadline, the recommended response is to de-scope • De-scoping: removing tasks or requirements from the iteration, and including them in a future iteration, rather than slipping the completion date. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 30
  • 31. Fig. 2.4 Evolutionary analysis and design – the majority in early iterations. Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 20 % 2% requirements software 30 % 5% requirements software 50 % 8% 90 % 90 % 20 % 10 % requirements workshops Imagine this will ultimately be a 20 - iteration project . In evolutionary iterative development , the requirements evolve over a set of the early iterations , through a series of requirements workshops (for example ). Perhaps after four iterations and workshops , 90 % of the requirements are defined and refined . Nevertheless , only 10 % of the software is built . 1 2 3 4 5 ... 20 week 1 M T W Th F week 2 M T W Th F week 3 M T W Th F kickoff meeting clarifying iteration goals with the team . 1 hour team agile modeling& design , UML whiteboard sketching . 5 hours start coding& testing a 3-week iteration de-scope iteration goals if too much work final check -in and code - freeze for the iteration baseline demo and 2-day requirements workshop next iteration planning meeting ; 2 hours Most OOA/D and applying UML during this period Use-case modeling during the workshop 3/9/2022 Dr.S.Gunasundari/CSE/VEC 31
  • 32. The Unified Process (UP) • A software development process describes an approach to building, deploying, and possibly maintaining software. • UP has emerged as a popular and effective iterative software development process for building OO systems. – In particular, the Rational Unified Process, as modified at Rational Software, is widely practiced and adopted by industry. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 32
  • 33. Unified Process • Unified Process is based on the enlargement and refinement of a system through multiple iterations, with cyclic feedback and adaptation. • The system is developed incrementally over time, iteration by iteration, and thus this approach is also known as iterative and incremental software development. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 33
  • 34. • A UP project organizes the work and iterations across four major phases: – Inception approximate vision, business case, scope, vague estimates. – Elaboration refined vision, iterative implementation of the core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates. – Construction iterative implementation of the remaining lower risk and easier elements, and preparation for deployment. – Transition beta tests, deployment. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 34
  • 35. • This is not the old "waterfall" or sequential lifecycle of first defining all the requirements, and then doing all or most of the design. • Inception is not a requirements phase; rather, it is a kind of feasibility phase, where just enough investigation is done to support a decision to continue or stop. • Similarly, elaboration is not the requirements or design phase; rather, it is a phase where the core architecture is iteratively implemented, and high risk issues are mitigated. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 35
  • 36. Fig. 2.6 Schedule-oriented terms in the UP inc. elaboration construction transition iteration phase development cycle release A stable executable subset of the final product. The end of each iteration is a minor release. increment The difference (delta) between the releases of 2 subsequent iterations. final production release At this point, the system is released for production use. milestone An iteration end- point when some significant decision or evaluation occurs. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 36
  • 37. UP Phases 1 Inception  Inception is not a requirements phase; rather a feasibility phase, where just enough investigation is done to support a decision to continue or stop.  The life-cycle objectives of the project are stated, so that the needs of every stakeholder are considered. Scope and boundary conditions, acceptance criteria and some requirements are established.  Approximate vision, business case, scope, vague estimates. 2 Elaboration  An analysis is done to determine the risks, stability of vision of what the product is to become, stability of architecture and expenditure of resources.  Refined vision, iterative implementation of core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 37
  • 38. UP Phases (2) 3 Construction – The Construction phase is a manufacturing process. It emphasizes managing resources and controlling operations to optimize costs, schedules and quality. This phase is broken into several iterations. – Iterative implementation of the remaining lower risk and easier elements, and preparation for deployment. 4 Transition – The transition phase is the phase where the product is put in the hands of its end users. It involves issues of marketing, packaging, installing, configuring, supporting the user-community, making corrections, etc. – Beta tests, deployment. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 38
  • 39. Inception The Inception Phase includes such activities as: • Defining the business case • Creating a vision document with core requirements, features, and constraints • Creating an initial risk assessment • Creating early use cases (10-20% complete, mostly use-case models) • Creating a initial project plan • And the creation of one or more prototypes (especially architectural prototypes) The milestones that how completion of the Inception phase are: • Stakeholder agreement on business case, scope, and project cost and schedule estimates • Agreement that the content of the primary use cases is an accurate representation of what the software will deliver (at a high level) • That the final prototypes are sufficient indications of the correct future development goals 3/9/2022 Dr.S.Gunasundari/CSE/VEC 39
  • 40. Elaboration Phase The specific activities of this phase include: • The identification of all actors and use cases, with most use cases having been defined to at least 80% completion (use-case descriptions rather than models) • Supplementary requirements detailing the non-functional requirements and any requirements not related to a use case are completed • A Software Architecture Description has been completed • The business case and risk lists have been updated with higher-confidence information • The project and development plans have been defined to at least a level that shows all iterations and the evaluation criteria for each iteration • An executable architecture prototype has been created and approved for use (this may involve creating more than one) • A preliminary user manual has been created (optional) The milestones that show completion of the Elaboration phase are: • The product vision is stable and approved • The product architecture is stable and approved • The executable architecture prototype shows that the major risk elements have been identified and credibly resolved • The project and development plans sufficiently detailed, accurate, and credible • All stakeholders agree that the vision can be achieved is the project and development plans are executed with the architecture specified 3/9/2022 Dr.S.Gunasundari/CSE/VEC 40
  • 41. Construction Phase The specific activities of this phase include: • The software is built, integrated, and tested • The user manuals have been created (or updated) • The details of the software developed are documented and ready to be provided to end users or support staff (including changes, etc.) The milestones that show completion of the Construction phase are: • The software product is stable and mature enough to be deployed to end users • All stakeholders are ready to transition to the new / updated software • Actual versus planned expenditures are still acceptable enough to move forward with the project 3/9/2022 Dr.S.Gunasundari/CSE/VEC 41
  • 42. Transition Phase The specific activities of this phase include: • beta testing or user acceptance testing by end users to validate the new software against user expectations • Parallel operation with legacy systems (if in existence) that will be replaced • Operational databases are converted (if necessary) • Users and maintainers of the software are fully trained • The software is fully rolled-out The milestones that show completion of the Transition phase are: • Users are satisfied with the software • Actual versus planned expenditures are still acceptable enough to move forward with the project 3/9/2022 Dr.S.Gunasundari/CSE/VEC 42
  • 43. UP Disciplines (Workflows) • In the UP, an artifact is the general term for any work product: code, Web graphics, database schema, text documents, diagrams, models, and so on. • There are several disciplines in the UP; Business Modeling  When developing a single application, this includes domain object modeling.  When engaged in large-scale business analysis this includes dynamic modeling of the business processes across the entire enterprise. • Activities include the development of: – A context model showing how the system fits into its overall environment – A high-level business requirements model eg. use case model – A domain model e.g. class diagram or data diagram depicting major business classes or entities – A business process model 3/9/2022 Dr.S.Gunasundari/CSE/VEC 43
  • 44. Requirements The main deliverable of this discipline is the Software Requirements Specification (SRS), also referred to as the Requirements Model, which encompasses the captured requirements Design All aspects of design, including the overall architecture, objects,databases, networking, etc Implementation means programming and building the system, not deployment. Test—involves testing activities such as test planning, development of test scenarios, alpha and beta testing, regression testing, acceptance testing, and Deployment—the deployment activities of developed system 3/9/2022 Dr.S.Gunasundari/CSE/VEC 44
  • 45. The Environment discipline refers to establishing the tools and customizing the process for the project—that is, setting up the tool and process environment. During one iteration work goes on in most or all disciplines. However, the relative effort across these disciplines changes over time. Early iterations naturally tend to apply greater relative emphasis to requirements and design, and later ones less so, as the requirements and core design stabilize through a process of feedback and adaptation 3/9/2022 Dr.S.Gunasundari/CSE/VEC 45
  • 46. Fig. 2.7 UP disciplines Iterations Sample UP Disciplines Business Modeling Requirements Design Implementation Test Deployment Configuration & Change Management Project Management Environment Focus of this book Note that although an iteration includes work in most disciplines, the relative effort and emphasis change over time. This example is suggestive, not literal. A four-week iteration (for example). A mini-project that includes work in most disciplines, ending in a stable executable. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 46
  • 47. changing relative effort with respect to the phases During construction, the emphasis is heavier on implementation and lighter on requirements analysis 3/9/2022 Dr.S.Gunasundari/CSE/VEC 47
  • 48. s-start, r-revise Development Case short document describing the artifacts for the "NextGen Project" case study 3/9/2022 Dr.S.Gunasundari/CSE/VEC 48
  • 49. CASE STUDY: THE NEXTGEN POS SYSTEM /NextGen point-of-sale (POS) system  A POS system is a computerized application used (in part) to record sales and handle payments; it is typically used in a retail store.  It includes hardware components such as a computer and bar code scanner, and software to run the system.  It interfaces to various service applications, such as a third-party tax calculator and inventory control.  These systems must be relatively fault-tolerant;  that is, even if remote services are temporarily unavailable (such as the inventory system), they must still be capable of capturing sales and handling at least cash payments (so that the business is not crippled).  A POS system increasingly must support multiple and varied client-side terminals and interfaces.  These include a thin-client Web browser terminal, a regular  personal computer with something like a Java Swing graphical user interface,  touch screen input, wireless PDAs, and so forth.  Furthermore, we are creating a commercial POS system that we will sell to different clients with disparate needs in terms of business rule processing.  Each client will desire a unique set of logic to execute at certain predictable points in scenarios of using the system, such as when a new sale is initiated or when a new line item is added.  Therefore, we will need a mechanism to provide this flexibility and customization. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 49
  • 50. subsystems User Interface—graphical interface; windows. Application Logic and Domain Objects—software objects representing • domain concepts (for example, a software class named Sale) that fulfill application requirements. Technical Services—general purpose objects and subsystems that provide • supporting technical services, such as interfacing with a database or error • logging. These services are usually application- independent and reusable across several systems. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 50
  • 51. • The NextGen case study primarily emphasizes the problem domain objects, allocating responsibilities to them to fulfill the requirements of the application. • Object-oriented design is also applied to create a technical service subsystem for interfacing with a database • UI layer has very little responsibility; it is said to be thin. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 51
  • 53. • OOAD is applied to the NextGen POS system in multiple iterations • The first iteration is for some core functions. • Later iterations expand the functionality of the system • In conjunction with iterative development, the presentation of analysis and design topics, UML notation, and patterns are introduced iteratively and incrementally. • In the first iteration, a core set of analysis and design topics and notation is presented. • The second iteration expands into new ideas, UML notation, and patterns. • And likewise in the third iteration 3/9/2022 Dr.S.Gunasundari/CSE/VEC 53
  • 54. Inception • Most projects require a short initial step – What is the vision and business case for this project? – Feasible? – Buy and/or build? – Rough estimate of cost: Is it $10K-100K or in the millions? – Should we proceed or stop? • Inception in one sentence: – Envision the product scope, vision, and business case. • Do the stakeholders have basic agreement on the vision of the project, and is it worth investing in serious investigation? 3/9/2022 Dr.S.Gunasundari/CSE/VEC 54
  • 55. Purpose of Inception • Establish vision, scope and business case – Vision: What do we want? – Scope: What do we include and not include? – Business case: Who wants it and why? • Determine primary scenarios as Use Cases – Completeness not necessary, maybe just 10% • Estimate feasibility and risks • Start defining terms in a glossary. Why? • Creation of a development environment How long does it take? Can be as short as a day or two, as long as a few weeks 3/9/2022 Dr.S.Gunasundari/CSE/VEC 55
  • 56. What it isn’t • Defining precise requirements • Getting good estimates • Purpose of the inception step is not to define all the requirements, or generate a believable estimate or project plan 3/9/2022 Dr.S.Gunasundari/CSE/VEC 56
  • 57. What gets defined? • Business case • Some of the use cases • Other (usually non-functional) requirements • Key domain terminology • List of risks (business, resource, technical, schedule) and risk management plan • Prototypes • Iteration plan • Phase plan • Development case 3/9/2022 Dr.S.Gunasundari/CSE/VEC 57
  • 58. Analogy from oil business 1. Decide if there is evidence (business case) to justify exploratory drilling 2. If so, do measurements and exploratory drilling 3. Provide estimates … • Inception is like step 1: a feasibility study to decide if it is even worth investing in exploratory drilling Another analogy: consulting with a doctor to do exploratory surgery In the oil business, when a new field is being considered, some of the steps include: 3/9/2022 Dr.S.Gunasundari/CSE/VEC 58
  • 59. Example vision & business case Introduction We envision a next generation fault-tolerant point-of-sale (POS) application, NextGen POS, with the flexibility to support varying customer business rules, multiple terminal and user interface mechanisms, and integration with multiple third-party supporting systems. Business Case Existing POS products are not adaptable to the customer's business, in terms of varying business rules and varying network designs (for example, thin client or not; 2, 3, or 4-tier architectures). In addition, they do not scale well as terminals and business increase. None can work in either on-line or off-line mode, dynamically adapting depending on failures. None easily integrate with many third-party systems. None allow for new terminal technologies such as mobile PDAs. There is marketplace dissatisfaction with this inflexible state of affairs, and demand for a POS that rectifies this. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 59
  • 60. Brief format Use Case • A story of an actor using a system to meet a goal Process Sale: A customer arrives at a checkout with items to purchase. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a receipt from the system and then leaves with the items. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 60
  • 61. Glossary Term Definition Format Aliases item A product or service for sale Payment authorization Validation by an external payment authorization service that they will make or guarantee the payment to the seller. UPC Numeric code that identifies a product. Usually symbolized with a bar code placed on products. 12-digit code of several subparts Universal Product Code 3/9/2022 Dr.S.Gunasundari/CSE/VEC 61
  • 62. Sample inception artifacts These artifacts are only partially completed in this phase. They will be iteratively refined in subsequent iterations 3/9/2022 Dr.S.Gunasundari/CSE/VEC 62
  • 63. Requirements • Capabilities and conditions to which the system must conform • A systematic approach to finding, documenting, organizing the changing requirements of a system. • prime challenge of requirements work is to find, communicate, and remember (that usually means record) what is really needed, in a form that clearly speaks to the client and development team members. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 63
  • 64. Factors on challenged projects • one study of factors on challenged projects revealed that 37% of factors related to problems with requirements, making requirements issues the largest single contributor to problems • Incomplete requirements • Changing requirements 3/9/2022 Dr.S.Gunasundari/CSE/VEC 64
  • 65. • 25% of the requirements change on a project • Attempting to define all requirements was the main problem in 82% of projects • When attempting to specify all features in advance, 45% of such features were never used 3/9/2022 Dr.S.Gunasundari/CSE/VEC 65
  • 66. FURPS+ model (Grady 1992) FURPS is a checklist for requirements: • Functional (features, capabilities, security) • Usability (human factors, help, documentation) • Reliability (frequency of failure, recoverability, predictability) • Performance (response time, throughput, accuracy, availability, resource usage) • Supportability (adaptability, maintainability, internationalization, configurability) 3/9/2022 Dr.S.Gunasundari/CSE/VEC 66
  • 67. • "+" in FURPS+ indicates ancillary and sub- factors, such as: • Implementation—resource limitations, languages and tools, hardware, ... • Interface—constraints imposed by interfacing with external systems. • Operations—system management in its operational setting. • Packaging • Legal—licensing and so forth. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 67
  • 68. quality attributes, quality requirements • Usability • Reliability • Performance • supportability 3/9/2022 Dr.S.Gunasundari/CSE/VEC 68 functional (behavioral) non-functional (everything else) Types of requirements
  • 69. Functional and non-functional • Functional requirements describe system behaviors – Priority: rank order the features wanted in importance – Criticality: how essential is each requirement to the overall system? – Risks: when might a requirement not be satisfied? What can be done to reduce this risk? • Non-functional requirements describe other desired attributes of overall system – Product cost (how do measure cost?) – Performance (efficiency, response time? startup time?) – Portability (target platforms?), binary or byte-code compatibility? – Availability (how much down time is acceptable?) – Security (can it prevent intrusion?) – Safety (can it avoid damage to people or environment?) – Maintainability (in OO context: extensibility, reusability) 3/9/2022 Dr.S.Gunasundari/CSE/VEC 69
  • 70. • Functional requirements are explored and recorded in the Use-Case Model • Other requirements can be recorded in the use cases they relate to, or in the Supplementary Specifications artifact. • The Vision artifact summarizes high-level requirements that are elaborated in these other documents. • The Glossary records and clarifies terms used in the requirements. The Glossary in the UP also encompasses the concept of the data dictionary, which records requirements related to data, such as validation rules, acceptable values, and so forth. • Prototypes are a mechanism to clarify what is wanted or possible. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 70
  • 71. Requirements Organization in the UP • Use-case model • Supplementary specification • Glossary • Vision • Business rules. Policies that apply to all software projects. E.g. Tax laws, data security, etc. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 71
  • 72. Use Case • Use cases are text stories (not diagrams!) used to discover and record requirements • Excellent technique to understand and describe requirements. • Use cases are functional requirements that indicate what the system will do • The UP defines the Use-Case Model within the Requirements discipline – set of all use cases; it is a model of the system's functionality and environment • Use cases are text documents, not diagrams, and use-case modeling is primarily an act of writing text, not drawing. • However, the UML defines a use case diagram to illustrate the names of use cases and actors, and their relationships 72 Dr.S.Gunasundari/CSE/VEC
  • 73. • Use case plays a significant role in the distinct phases of the Software Development Life Cycle. • Use Case depends on ‘User Actions’ and ‘Response of System’ to the User Actions • It is the documentation of the ‘Actions’ performed by the Actor/User and the corresponding ‘Behaviour’ of the System to the User ‘Actions’ Uses of the Documents: • Developers use the documents for implementing the code and designing it. • Testers use them for creating the test cases. • Business stakeholders use the document for understanding the software requirements. Dr.S.Gunasundari/CSE/VEC 73
  • 74. Definitions/ Elements in Use Cases • Brief description – A brief description explaining the case. • Actor – something with a behavior, such as a person, an input device, etc. – Users that are involved in Use Cases Actions – eg cashier • Scenario – Specific sequence of actions and interactions between actors. (also called a use-case instance) – Successfully purchasing items with cash – scenario of failing to purchase items because of a credit card transaction denial • Use Case is a collection of related success and failure scenarios that describe an actor using a system to support a goal 74 Dr.S.Gunasundari/CSE/VEC
  • 76. Primary Actor • The person (or sometimes object) that calls upon system services to fulfill a goal • Supporting actors : provide services to the system under design. stakeholders • The stakeholders are people who have a reason to want this system. The Interests are their reasons for wanting it and what they expect from it. Dr.S.Gunasundari/CSE/VEC 76
  • 77. Preconditions: • Conditions to be Satisfied before the case begins • Cashier is identified and authenticated. Success Guarantee (Postconditions): The conditions that need to be checked after the case is completed. • Sale is saved. Tax is correctly calculated. • Accounting and Inventory are updated. Commissions recorded. Receipt is generated. • Payment authorization approvals are recorded. . Dr.S.Gunasundari/CSE/VEC 77
  • 78. Example 1 Use Case Name Login Use case Description A user login to System to access the functionality of the system. Actors Parents, Students, Teacher, Admin Pre-Condition System must be connected to the network. Post -Condition After a successful login a notification mail is sent to the User mail id Dr.S.Gunasundari/CSE/VEC 78
  • 79. Basic Flow: • ‘Basic Flow’ or ‘Main Scenario’ is the normal workflow in the system. It is the flow of transactions done by the Actors on accomplishing their goals. • When the actors interact with the system, as it’s the normal workflow, there won’t be any error and the Actors will get the expected output. Alternate flow: • Apart from the normal workflow, a system can also have an ‘Alternate workflow’. • This is the less common interaction done by a user with the system. Dr.S.Gunasundari/CSE/VEC 79
  • 80. Main Scenarios Serial No Steps Actors/Users 1 Enter username Enter Password 2 Validate Username and Password 3 Allow access to System Extensions 1a Invalid Username System shows an error message 2b Invalid Password System shows an error message 3c Invalid Password for 4 times Application closed Dr.S.Gunasundari/CSE/VEC 80
  • 81. Three Formats • Brief – Concise, one-paragraph summary, usually the main success scenario. Create during early requirements phase. • Casual – Informal paragraph format. Can cover various scenarios in multiple paragraphs. • Fully-dressed – All steps and variations written in detail. Has supporting sections, success guarantees, main scenario, alternate scenarios, etc. Dr.S.Gunasundari/CSE/VEC 81
  • 82. brief format use case Process Sale: A customer arrives at a checkout with items to purchase. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a receipt from the system and leaves with the items. (OR) Use case: Buy Items • Actors: Customer, Cashier • Primary • Description: A customer arrives at checkout with items to purchase. The Cashier records the purchase items and collects payment, On completion, the Customer leaves with the items. 82 Dr.S.Gunasundari/CSE/VEC
  • 83. Use Case Example Handlereturn Main Success Scenario: A customer arrives at a checkout with items to return. The cashier uses the POS system to record each returned item ... Alternate Scenarios: • If the credit authorization is reject, inform the customer and ask for an alternate payment method. • If the item identifier is not found in the system, notify the Cashier and suggest manual entry of the identifier code (perhaps it is corrupted). • If the system detects failure to communicate with the external tax calculator system 83 Dr.S.Gunasundari/CSE/VEC
  • 84. Write Black-Box Use Cases • Don’t describe internal workings • Describe responsibilities • “The system records the sale” – Correct One • “The System writes the sale record to a database” –Wrong • By defining system responsibilities with black- box use cases, it is possible to specify what the system must do (the functional requirements) without deciding how it will do it Dr.S.Gunasundari/CSE/VEC 84
  • 85. CASE STUDY: THE NEXTGEN POS SYSTEM /NextGen point-of-sale (POS) system  A POS system is a computerized application used (in part) to record sales and handle payments; it is typically used in a retail store.  It includes hardware components such as a computer and bar code scanner, and software to run the system.  It interfaces to various service applications, such as a third-party tax calculator and inventory control.  These systems must be relatively fault-tolerant;  that is, even if remote services are temporarily unavailable (such as the inventory system), they must still be capable of capturing sales and handling at least cash payments (so that the business is not crippled).  A POS system increasingly must support multiple and varied client-side terminals and interfaces.  These include a thin-client Web browser terminal, a regular personal computer with something like a Java Swing graphical user interface, touch screen input, wireless PDAs, and so forth.  creating a commercial POS system that we will sell to different clients with disparate needs in terms of business rule processing.  Each client will desire a unique set of logic to execute at certain predictable points in scenarios of using the system, such as when a new sale is initiated or when a new line item is added.  Therefore, we will need a mechanism to provide this flexibility and customization. 3/9/2022 Dr.S.Gunasundari/CSE/VEC 85
  • 86. Fully Dressed Example: Process Sale Use Case UC1: Process Sale Primary Actor: Cashier Stakeholders and Interests: - Cashier: Wants accurate, fast entry, and no payment errors, as cash drawer short ages are deducted from his/her salary. - Salesperson: Wants sales commissions updated. - Customer: Wants purchase and fast service with minimal effort. Wants proof of pur chase to support returns. - Company: Wants to accurately record transactions and satisfy customer interests. Wants to ensure that Payment Authorization Service payment receivables are recorded. Wants some fault tolerance to allow sales capture even if server compo nents (e.g., remote credit validation) are unavailable. Wants automatic and fast update of accounting and inventory. - Government Tax Agencies: Want to collect tax from every sale. May be multiple agen cies, such as national, state, and county. - Payment Authorization Service: Wants to receive digital authorization requests in the correct format and protocol. Wants to accurately account for their payables to the store Dr.S.Gunasundari/CSE/VEC 86
  • 87. Main Success Scenario (or Basic Flow): 1. Customer arrives at POS checkout with goods and/or services to purchase. 2. Cashier starts a new sale. 3. Cashier enters item identifier. 4. System records sale line item and presents item description, price, and running total. Price calculated from a set of price rules. Cashier repeats steps 3-4 until indicates done System presents total with taxes calculated. 6. Cashier tells Customer the total, and asks for payment. 7. Customer pays and System handles payment. 8. System logs completed sale and sends sale and payment information to the external Accounting system (for accounting and commissions) and Inventory system (to update inventory). 9. System presents receipt. 10.Customer leaves with receipt and goods (if any). Dr.S.Gunasundari/CSE/VEC 87
  • 88. Extensions (or Alternative Flows): *a. At any time, System fails: To support recovery and correct accounting, ensure all transaction sensitive state and events can be recovered from any step of the scenario. 1. Cashier restarts System, logs in, and requests recovery of prior state. 2. System reconstructs prior state. 2a. System detects anomalies preventing recovery: 1. System signals error to the Cashier, records the error, and enters a clean state. 2. Cashier starts a new sale. Dr.S.Gunasundari/CSE/VEC 88
  • 89. 3a. Invalid identifier: 1. System signals error and rejects entry. 3b. There are multiple of same item category and tracking unique item identity not important (e.g., 5 packages of veggie-burgers): 1. Cashier can enter item category identifier and the quantity. 3-6a: Customer asks Cashier to remove an item from the purchase: 1. Cashier enters item identifier for removal from sale. 2. System displays updated running total. 3-6b. Customer tells Cashier to cancel sale: 1. Cashier cancels sale on System. 3-6c. Cashier suspends the sale: 1. System records sale so that it is available for retrieval on any POS terminal. 4a.The system generated item price is not wanted (e.g., Customer complained about something and is offered a lower price): 1. Cashier enters override price. 2. System presents new price Dr.S.Gunasundari/CSE/VEC 89
  • 90. 5a. System detects failure to communicate with external tax calculation system service: 1. System restarts the service on the POS node, and continues. 1a. System detects that the service does not restart. 1. System signals error. 2. Cashier may manually calculate and enter the tax, or cancel the sale. 5b. Customer says they are eligible for a discount (e.g., employee, preferred customer): 1. Cashier signals discount request. 2. Cashier enters Customer identification. 3. System presents discount total, based on discount rules. 5c. Customer says they have credit in their account, to apply to the sale: 1. Cashier signals credit request. 2. Cashier enters Customer identification. 3. Systems applies credit up to price=0, and reduces remaining credit. Dr.S.Gunasundari/CSE/VEC 90
  • 91. 6a. Customer says they intended to pay by cash but don’t have enough cash: 1a. Customer uses an alternate payment method. 1b. Customer tells Cashier to cancel sale. Cashier cancels sale on system 7a. Paying by cash: 1. Cashier enters the cash amount tendered. 2. System presents the balance due, and releases the cash drawer. 3. Cashier deposits cash tendered and returns balance in cash to Customer. 4. System records the cash payment. Dr.S.Gunasundari/CSE/VEC 91
  • 92. 7b. Paying by credit: 1. Customer enters their credit account information. 2. System sends payment authorization request to an external Payment Authorization Service System, and requests payment approval. 2a. System detects failure to collaborate with external system: 1. System signals error to Cashier. 2. Cashier asks Customer for alternate payment. 3. System receives payment approval and signals approval to Cashier. 3a. System receives payment denial: 1. System signals denial to Cashier. 2. Cashier asks Customer for alternate payment. 4. System records the credit payment, which includes the payment approval. 5. System presents credit payment signature input mechanism. 6. Cashier asks Customer for a credit payment signature. Customer enters signature. Dr.S.Gunasundari/CSE/VEC 92
  • 93. 7c. Paying by cheque... 7d. Paying by debit... 7e. Customer presents coupons: 1. Before handling payment, Cashier records each coupon and System reduces price as appropriate. System records the used coupons for accounting reasons. 1a. Coupon entered is not for any purchased item: 1. System signals error to Cashier. 9a.There are product rebates: 1. System presents the rebate forms and rebate receipts for each item with a rebate. 9b. Customer requests gift receipt (no prices visible): 1.Cashier requests gift receipt and System presents it. Dr.S.Gunasundari/CSE/VEC 93
  • 94. Special Requirements • If a non-functional requirement, quality attribute, or constraint relates specifically to a use case, record it with the use case. • These include qualities such as performance, reliability, and usability, and design constraints (often in I/O devices) Special Requirements • Touch screen Ul on a large flat panel monitor. Text must be visible from 1 meter. • Credit authorization response within 30 seconds • Robust recovery when access to remote services such the inventory system is failing. • Language internationalization on the text displayed. • Pluggable business rules to be insertable at steps 3 and 7. Dr.S.Gunasundari/CSE/VEC 94
  • 95. Technology and Data Variations List • Technical constraint imposed by a stakeholder regarding input or output technologies • For example, a stakeholder might say, "The POS system must support credit account input using a card reader and the keyboard Technology and Data Variations List • Item identifier entered by bar code laser scanner (if bar code is present) or keyboard. • 3b. Item identifier may be any UPC (universal product code), EAN (European Article Number), or SKU (stock keeping unit)coding scheme. • 7a. Credit account information entered by card reader or keyboard. • 7b. Credit payment signature captured on paper receipt. But within two years, we predict many customers will want digital signature capture. Dr.S.Gunasundari/CSE/VEC 95
  • 96. Frequency of Occurrence: Could be nearly continuous. Open Issues: • What are the tax law variations? • Explore the remote service recovery issue. • What customization is needed for different businesses? • Must a cashier take their cash drawer when they log out? • Can the customer directly use the card reader, or does the cashier have to do it? Dr.S.Gunasundari/CSE/VEC 96
  • 97. Two-Column Variation Dr.S.Gunasundari/CSE/VEC 97 9. Logs the completed sale and sends information to the external accounting (for all accounting and commissions) and inventory systems (to update inventory). System presents receipt.
  • 98. Goals and Scope of a Use Case • How should use cases be discovered? • Tasks can be grouped at many levels of granularity, from one or a few small steps, up to enterprise-level activities. • At what level and scope should use cases be expressed? • What is a valid use case? • Relevant Question: What is a useful level to express use cases for application requirements analysis • Elementary business processes and goals as a framework for identifying the use cases for an application. Dr.S.Gunasundari/CSE/VEC 98
  • 99. Guideline: The EBP Use Case • For requirements analysis for a computer application, focus on use cases at the level of elementary business processes (EBPs). • EBP: A task performed by one person in one place at one time, in response to a business event, which adds measurable business value and leaves the data in a consistent state. e.g., Approve Credit • A common use case mistake is defining many use cases at too low a level Dr.S.Gunasundari/CSE/VEC 99
  • 100. Reasonable Violations of the EBP Guideline • Although the "base" use cases for an application should satisfy the EBP guideline, it is frequently useful to create separate "sub" use cases representing sub-tasks or steps within a base use case • The guideline is only used to find the dominant level of use cases in requirements analysis for an application • paying by credit" may be repeated in several base use cases. – It is desirable to separate this into its own use case – link it to several base use cases, to avoid duplication of the text. Dr.S.Gunasundari/CSE/VEC 100
  • 101. Finding Use Cases 1. Choose the system boundary • For this case study, the POS system itself is the system under design • everything outside of it is outside the system boundary, including the cashier, payment authorization service, and so on. • If the definition of the boundary of the system under design is not clear, it can be clarified by further definition of what is outside the external primary and supporting actors. • Once the external actors are identified, the boundary becomes clearer 2. Identify the primary actors 3. Identify the goals for each primary actor 4. Define use cases that satisfy these goals Dr.S.Gunasundari/CSE/VEC 101
  • 102. Questions to Find Actors and Goals • Who starts and stops the system? • Who does user and security management? • Who does system administration? • Is “time” an actor because the system does something in response to a time event? • How are software updates handled? • Who gets notified of problems? Dr.S.Gunasundari/CSE/VEC 102
  • 103. Actor-Goal List Actor Goal Cashier Process Sales Process rentals Handle returns Cash in Cash out Manager Start up Shut down System administrator Add/Modify/Delete users Manage security Manage System tables … … Dr.S.Gunasundari/CSE/VEC 103
  • 104. Primary Actor and User Goals Depend on System Boundary • Why is the cashier, and not the customer, the primary actor in the use case Process Sale? Why doesn’t the customer appear in the actor-goal list? Solution • The answer depends on the system boundary of the system under design. • If viewing the enterprise or checkout service as an aggregate system, the customer is a primary actor, with the goal of getting goods or services and leaving. • However, from the viewpoint of just the POS system it services the goal of the cashier (and the store) to process the customer’s sale. Dr.S.Gunasundari/CSE/VEC 104
  • 106. Actors and Goals via Event Analysis • Another approach to aid in finding actors, goals, and use cases is to identify external events • What are they, where from, and why? • Often, a group of events belong to the same EBP- level goal or use case. Dr.S.Gunasundari/CSE/VEC 106
  • 107. Define Use Cases • Define one EBP-level use case for each user goal. • Name the use case similar to the user goal. • for example, Goal: process a sale; Use Case: ProcessSale • name use cases starting with a verb • A common exception to one use case per goal is to collapse CRUD (create,retrieve, update, delete) separate goals into one CRUD use case, idiomatically called Manage <X>. – For example, the goals "edit user," "delete user," and so forth are all satisfied by the Manage Users use case. Dr.S.Gunasundari/CSE/VEC 107
  • 108. Write Use Cases in an Essential Ill- Free Style • the cashier may say one of his goals is to "log in." – The cashier was probably thinking of a GUI, dialog box, user ID,and password. – If the goal is "identification and authentication" • make it easy and fast, using a biometric reader on the keyboard? Essential Style Writing • keep the user interface out; focus on actor intent Dr.S.Gunasundari/CSE/VEC 108
  • 109. Concrete Style.Avoid During Early Requirements Work concrete use case style • user interface decisions are embedded in the use case text. • The text may even show window screen shots, discuss window navigation, GUI widget manipulation Dr.S.Gunasundari/CSE/VEC 109
  • 110. Actors • An actor is anything with behavior, including the system under discussion (SuD) itself when it calls upon the services of other systems. • Primary and supporting actors will appear in the action steps of the use case text. • Actors are not only roles played by people, but organizations, software, and machines. • There are three kinds of external actors in relation to the SuD: Primary actor • has user goals fulfilled through using services of the SuD. • For example, the cashier. Supporting actor • provides a service (for example, information) to the SuD. • The automated payment authorization service is an example. Offstage actor. • has an interest in the behavior of the use case, but is not primary or supporting • for example, a government tax agency. Dr.S.Gunasundari/CSE/VEC 110
  • 111. Applying UML: Use Case Diagrams • The UML provides use case diagram notation to illustrate the names of use cases and actors, and the relationships between them Dr.S.Gunasundari/CSE/VEC 111
  • 112. Actor • Actor in a use case diagram is any entity that performs a role in one given system Dr.S.Gunasundari/CSE/VEC 112 Custom icons that convey the kind of actor may also be used to denote an actor, such as using a separate icon(s) for non- human actors. An actor may also be shown as a class rectangle with the keyword «actor», having usual notation for class compartments, if needed.
  • 113. Use Case • A use case represents a function or an action within the system. It’s drawn as an oval and named with the function. Dr.S.Gunasundari/CSE/VEC 113
  • 114. System • The system is used to define the scope of the use case and drawn as a rectangle. • This an optional element but useful when you’re visualizing large systems. Dr.S.Gunasundari/CSE/VEC 114
  • 115. How to Create a Use Case Diagram • Identifying Actors – It can be a person, another system or an organization – In a banking system, the most obvious actor is the customer. Other actors can be bank employee or cashier depending on the role – external organization can be the tax authority or the central bank • Identifying Use Cases – identify what the actors need from the system. – In a banking system, a customer will need to open accounts, deposit and withdraw funds, request check books and similar functions. Dr.S.Gunasundari/CSE/VEC 115
  • 116. • Look for Common Functionality to use Include – If you find two or more use cases that share common functionality you can extract the common functions and add it to a separate use case. – Then you can connect it via the include relationship to show that it’s always called when the original use case is executed. • Is it Possible to Generalize Actors and Use Cases • Optional Functions or Additional Functions Dr.S.Gunasundari/CSE/VEC 116
  • 117. RELATING USE CASES & INCLUDE, EXTEND AND GENERALIZATION There can be 5 relationship types in a use case diagram. • Association between actor and use case • Generalization of an actor • Extend between two use cases • Include between two use cases • Generalization of a use case Dr.S.Gunasundari/CSE/VEC 117
  • 118. Association Between Actor and Use Case • An actor must be associated with at least one use case. • An actor can be associated with multiple use cases. • Multiple actors can be associated with a single use case. Dr.S.Gunasundari/CSE/VEC 118
  • 119. Generalization of an Actor • Generalization of an actor means that one actor can inherit the role of an other actor. • The descendant inherits all the use cases of the ancestor. • The descendant have one or more use cases that are specific to that role. • Generalization between actors is rendered as a solid directed line with a large arrowhead Dr.S.Gunasundari/CSE/VEC 119
  • 120. Dr.S.Gunasundari/CSE/VEC 120 Web Client actor is abstract superclass for Administrator, Editor and Customer.
  • 121. Generalization of a Use Case • This is similar to the generalization of an actor. • The behavior of the ancestor is inherited by the descendant. • This is used when there are common behavior between two use cases and also specialized behavior specific to each use case. • For example in the previous banking example there might be an use case called “Pay Bills”. – This can be generalized to “Pay by Credit Card”, “Pay by Bank Balance” etc. • It is rendered as a solid directed line with a large arrowhead, the same as for generalization between classifiers Dr.S.Gunasundari/CSE/VEC 121
  • 124. Extend Relationship Between Two Use Cases • As the name implies it extends the base use case and adds more functionality to the system • The extending use case is dependent on the extended (base) use case. • “Calculate Bonus” use case doesn’t make much sense without the “Deposit Funds” use case. • The extending use case is usually optional and can be triggered conditionally. • Extending use case is triggered only for deposits over 10,000 or when the age is over 55. • The extended (base) use case must be meaningful on its own. – This means it should be independent and must not rely on the behavior of the extending use case Dr.S.Gunasundari/CSE/VEC 124
  • 125. Dr.S.Gunasundari/CSE/VEC 125 Extend relationship between use cases is shown by a dashed arrow with an open arrowhead from the extending use case to the extended (base) use case. The arrow is labeled with the keyword «extend».
  • 126. Dr.S.Gunasundari/CSE/VEC 126 Registration use case is complete and meaningful on its own. It could be extended with optional Get Help On Registration use case
  • 127. Include Relationship Between Two Use Cases • Include relationship show that the behavior of the included use case is part of the including (base) use case. • Reuse the common actions across multiple use cases. • Simplify complex behaviors. • The base use case is incomplete without the included use case. • The included use case is mandatory and not optional • An include relationship between use cases is shown by a dashed arrow with an open arrowhead from the base use case to the included use case. The arrow is labeled with the keyword «include». Dr.S.Gunasundari/CSE/VEC 127
  • 129. Dr.S.Gunasundari/CSE/VEC 129 When two or more use cases have some common behavior, this common part could be extracted into a separate use case to be included back by the use cases with the UML include relationship Use case C is extracted from use cases A and B to be reused by both use cases using UML include relationship
  • 131. Concrete, Abstract, Base, and Addition Use Cases • A concrete use case – It is initiated by an actor and performs the entire behavior desired by the actor – Process Sale • An abstract use case – It is never instantiated by itself; it is a subfunction use case that is part of another use case. – Handle Credit Payment is abstract; it doesn't stand on its own, but is always part of another story, such as Process Sale Dr.S.Gunasundari/CSE/VEC 131
  • 132. • base use case – use case that includes another use case, or that is extended or specialized by another use case is called a base use case – Process Sale is a base use case with respect to the included Handle Credit Payment subfunction use case. • addition use case – use case that is an inclusion, extension, or specialization is called an addition use case. – Handle Credit Payment is the addition use case in the include relationship to Process Sale. Dr.S.Gunasundari/CSE/VEC 132
  • 133. Dr.S.Gunasundari/CSE/VEC 133 Generalization Extend Include Base use case could be abstract use case (incomplete) or concrete (complete). Base use case is complete (concrete) by itself, defined independently. Base use case is incomplete (abstract use case). Specialized use case is required, not optional, if base use case is abstract. Extending use case is optional, supplementary. Included use case required, not optional. No explicit condition to use specialization. Could have optional extension condition. No explicit inclusion condition.
  • 134. Dr.S.Gunasundari/CSE/VEC 134 Registration use case with extension points Registration Help and User Agreement
  • 137. A simple diagram can add clarity Dr.S.Gunasundari/CSE/VEC 137