Friday, 17 July 2015

UNDERSTANDING REQUIREMENTS



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 users 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


Subscribe  channel to get  latest video

No comments:

Post a Comment