Software Engineering E: Requirement Gathering

Requirements Developments

understand and document business needs and processing requirements for a system

focus on what users wants, not how to build the system

requires continuous inputs from users

System Requirements

Functional Requirements

Non-functional Requirements

Capabilities/features that the system must have

Constraints that the new system must meet

Techniques for Information Gathering

Questioning, Observing, Researching, Modeling

Good questions initiate process

three themes

What are business processes?

How is the business process performed?

What information is required?

Example

A. Review reports, forms, procedure, descriptions

B. Conduct interviews and discussions with the users

C. Observe business processes

D. Building effective prototypes

E. Distribute and collect questionnaires

F. Conduct Joint Application Design sessions (JAD)

G. Research vendor solutions

Various sources

Pros

Cons

When to use

Internal existing business documents and procedure descriptions

Other companies and professional organizations

Industry journals and magazines reporting “best practices”

Allows analyst to get an understanding of organization before meeting the users

Documents may not match up to actual operations or outdated

Initial stages of investigation when analyst is unfamiliar with the organization

Most widely used fact-finding technique

Types of Questions: Mixture of Open and Close- ended questions

Pros

Cons

When to use

Personal contact allows further probing with faster response time

Time-consuming and requires further rework on the interview information gathered

Require in-depth information on new/existing system

Diagram all information gathered into workflows

create activity diagrams

Identify activities

Relationships between activities

Personnel responsible for the activities

Pros

Cons

First-hand experience on system operations allowing validation of information and business performance

Can be intrusive with information confidentiality issue

When to use

Gather quantitative data about business and validation of conflicting information provided

an initial, look alike model with limited features of a real production system

3 types of prototypes

Discovery prototype

Evolving prototype

Mock-up

model created to verify concept and discarded

working model that grows and may become part of system

example of final product for viewing only, not executable

Pros

Cons

When to use

Time and cost savings

Too much time spent on prototype

Projects with high interactivity with users

Allow collection of information from a large group of users

Supports distributed geographical locations

Includes

Close-ended questions

Opinion questions

Explanation of procedure or problem

Pros

Cons

When to use

Economical for large group with sporadic geographical location

Hard to construct good questions and constraint to probe further

Input required from large number of people who are geographically dispersed

Speed up system requirements gathering by compressing all activities into a shorter series of JAD sessions

Fact finding, modeling, policy decision and verification done concurrently

Includes all stakeholders to finalize decisions required for project development

Pros

Cons

When to use

Save time as finalized decisions can be made

Difficult to coordinate JAD session for so many people

Project with constraint in timeline

Find existing solutions

two-step process

Develop list of providers from various sources

Directories of system solutions

Recommendations

Journals, magazines, and trade shows

Research the details of each solution

Technical specifications

A demo or trial system

An on-site visit

A printout of the screens and reports

Pros

Cons

When to use

Provides a platform for learning from past experiences

Insufficient analysis may lead to buying a “wrong” product

click to edit