Understanding Requirements
Contents
§ Understanding
Use case
§ Understanding
Functional Specification
§ Difference
between FS and Use case
Understanding Use Cases
Contents
§ What is a
Use Case?
§ What does
a Use Case Contain?
§ Why a Use
Case?
§ Structure
of a Use Case
§ Use Case
Examples
What is a Use Case?
§ Use case
is an effective way to document system functionality from a user’s perspective, a perspective that provides both software teams and their
customers a common understanding of the expected behavior of the system to
build.
§ Use cases
are the starting point of object-oriented design, where use case diagrams
represent a high level picture of the system functionality.
§ Use cases
are an intuitive way of documenting functional system requirements. Because use
cases encompass functional requirements, they should be included in the
management of all system requirements.
What does a Use Case Contain?
§ Each use
case contains a set of steps that
describes the dialog between the actor who typically initiates the use case,
and the system accomplishing the functionality described in the use case.
§ This set
of steps is often referred to as the flow of events of the use case. Typical
use cases have a single basic flow of events, several alternate flow of events
and several exceptional flow of events.
§ The basic
flow is an expected user interaction with the system while the alternate flows
talk about flows other than normal flows and exceptional flows talk about how
the system should handle unusual events.
§ These flow
of events of a use case puts functional requirements in a context that
customers can relate to more easily than traditional formal requirements
specification. This helps customers
validate that their needs will be addressed by the system.
§ The flow
of events of a use case are written in natural languages. This informality
increases the understanding of what the system shall do for both the technical
people building the system, and the not-so-technical people using the system.
§ Thus, Use
cases effectively address the challenge of communicating requirements to
audiences of varying technical levels.
Why
a Use Case?
§ Development
teams work out their design tasks from the use cases.
§ Use cases
provide all and only black-box behavioral requirements that the design must
meet. The requirements are to name everything that the system must do without
usurping any freedom the designers should have.
§ Use cases
serve as handy scenarios when designing the program. They serve well with all
design techniques, showing when the design is complete and handling all
situations.
§ The use
cases shout out the names of the objects / entities involved. Consider the use
case phrase
§ System produces an invoice, fills the
invoice line items with their costs, adds tax and shipping costs, and produces
the total. The invoice footer states terms of delivery.
§
§ It does not take a great leap of
imagination to see Invoice, Invoice Footer with the attributes cost, tax,
shipping and footer. These are not necessarily the final design items, but they
certainly are a good business objects starter set. They tighten and refine the
design.
Structure
of a Use Case
§
Use Case Title
Ø The title of the module /
functionality dealt in the use case
§
Brief Description
Ø Summary of the functionality
explained in the use case
§
Pre-Conditions
Ø Events that should precede the use
case
§
Start Conditions (Trigger)
Ø Conditions that initiate the use
case
§
Actors
Ø Primary : Actor who is primarily dealing with
the system
Ø Secondary : Actor who is benefiting from the
system. Could also be another system with which there is an exchange of data
§
Post Conditions
Ø Events that follow the use case
§
Logical View
Ø Use case Diagram
Ø Pictorial representation of the use
case
§
Flow of Events
Ø Basic Flow : Expected user
interaction with the system
Ø Alternate Flows : Flows other than
normal flows
Ø Exception Flows : Flows that handle
unusual events / error conditions
Ø Sub Flows : Flows which are referred
to in several other flows (basic / alternate)
§
Data
Ø Input
Ø Output
§
Subordinates
Ø Use cases that are invoked from the
current use case
§ Super Ordinates
Ø
Use case that
triggers the current use case
§ Business Rules
Ø
They are
specialized form of logic that express a constraint about the way the system
behaves
§ Special Requirements
Ø
Non-Functional
requirements that need specific attention
§ Extension Points
Ø
Lists any use
cases that are extended from this one
§ Business User Comments
Ø
Requirements
from business point of view
§ Assumptions
Ø
Assumptions
with which the use case was written.
§
Issues
Ø Problems in the use case that need
clarification.
§
Revision History
Ø List of all changes that the use
case has undergone from the time of creation. Contains the date, issue
description and the author.
•
Use Case Examples
§ Simple Use Case
Example : Add
Student
§ Average Use Case
Example :
Search for an Agent
§ Complex Use Case
Example :
Point of Sale
Understanding Functional Specifications
Contents
§ What is a
Functional Specification / What does it Contain?
§ Why a FS?
§ Structure
of a FS
§ FS
Examples
What is a FS / What does it contain?
§ A Functional specification is a
formal description of the requirements of a software
§ It is used as a blueprint for
implementing the program.
§ It states what the proposed system
is to do keeping in mind the design and to ensure that a realistic system is
specified.
§ It clearly defines the UI,
functional interfaces, and data requirements of the application.
§ It also defines the external
interfaces, performance goals, and other assumptions / constraints that bind
the approach to the solution.
Why
FS?
§ It provides a ready reference for
the entire project team
§ Aligns large and disparate teams to
a single goal.
§ Provides technical guidance on how
the different modules of a particular application can to be designed and
integrated with each other.
§ Ensures that the front end (UI,
application controls), the middle tier
(code) and the back end (DB) – fit exactly to provide the required functionality.
§ Drives internal scheduling and
external communication.
Structure of a FS
§
FS Title
Ø The title of the module /
functionality dealt in the FS.
§
Introduction
Ø Summary of the functionality
explained in the FS.
§
Scope
Ø In Scope
v Functionality that the FS deals
with.
Ø Out of Scope
v Functionality and risks that the FS
does not cover
§
Dependencies
Ø Any dependency that this FS has on
another FS or external factors. It can also include the pre-conditions for this
FS to function.
§
Assumptions
Ø Assumptions with which the FS was
written.
§
Process Flow
Ø The details of the functionality.
This section gives the implementation details.
§
Prototype
Ø Details about the UI of the
application are described along with screen shots of the prototype.
§
Terminology
Ø Contains all words or phrases having
a special meaning for this project with a clear definition.
§
Security
Ø Security related details. Example :
Application level, database security are described.
§
Numbers and User Community
Ø Number of users to use the system,
how often, expected number of transactions (per minute / hour / day), peak
usage times and so on.
Ø Identification of who the system is
aimed at.
§
Existing System
Ø An explanation of the system that
may be getting replaced. The problems faced with this system and their root
causes.
§
External Interfaces
Ø The external interfaces with which
the system interacts.
§
Use Case Model
Ø Any use case models that this FS is
referring to.
§
Administration Functions
Ø Provides the details of how the
system is to be administered. Separate functions for an administrator if any.
Details of any security built in to stop others using administrative functions
.
§
Error Handling
Ø States how errors should be handled.
The different types of errors along with the reasons for the classification is
given.
§
Platforms
Ø The reference platform or platforms
plus appropriate operating system versions that are supported.
§
Internationalization
Ø Details about any Internationalization.
Whether it is to be included now or in the future.
§
Performance
Ø Performance requirements i.e.
Capacity, Response times and so on.
§
Portability, Expandability
Ø Any requirement to port developments
to other platforms and the likely expansion requirements.
§
Customization
Ø If the user is to be allowed to
customize the system, what is he going to be provided.
§
Support and Maintenance
Ø Any functions to be included to make
maintenance and support easier, for example, internal monitoring of traffic flows
and so on.
§
Configuration Management
Ø Details about how the various
software versions would be managed.
§
Documentation
Ø List of documents that will be
produced.
§
Issues
Ø Problems in the FS that need
clarification
§
Schedule
Ø The schedule for the development and
test.
§
Traceability Matrix
Ø Gives the traceability between this
document and reference documents used like Design documents, Business
requirements documents and so on.
§
Revision History/Approvals
Ø
List of all
changes that the FS has undergone. Contains date, change description and the
author. The Approval section contains the details about the approver of this
document and the approval status.
Difference between FS and Use Cases
The high level differences are
listed below:
Functional
Specification
|
Use Cases
|
Speaks a very technical language
|
Uses layman language
|
Prepared keeping the design in mind
|
Independent of design and
implementation
|
Cannot be prepared when only the high
level requirements are known
|
Can be prepared in a stage where only
the high level requirements are known
|
Gives all the technical details
|
Concentrates on the functional
requirements
|
No comments:
Post a Comment