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