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