What are requirements?

advertisement
BIO
PRESENTATION
PAPER
W15
September 29, 2004 3:00 PM
DISCOVERING THE TRUE
SOFTWARE REQUIREMENTS
Paul Desantis
Hughes Network Systems
Better Software Conference & EXPO
September 27-30, 2004
San Jose, CA USA
Paul DeSantis
Throughout Paul’s career, he has been involved in requirements analysis both formally
and informally. This ranged from simple analysis of software enhancements to collecting
requirements for a whole new product. Recently, he has become more involved in
requirements management. His own hybrid requirements analysis based on academics
helped him win Best Sales Team Win and Achievement awards and has been credited
in making other sales.
Paul has also performed many sales presentations to potentials clients in several
different countries, taught an engineering seminar in and India, taught numerous internal
classes on systems analysis, Unified Modeling Language, data-link protocol conversion
techniques, and IBM System Network Architecture. As a volunteer, he spoke to
Frederick County, Maryland public school students for National Engineers Week and
taught merit badge courses at the Boy Scouts National Jamboree(s).
Paul holds a B.S. in Engineering Technology and a M.S. in Technology Management.
He has been employed with Hughes Network Systems for the past fifteen years.
Discovering the True Software
Requirements
Paul DeSantis
1HNS-32099 7/15/2004
Better Software Conference 2004
Presentation Objectives
This paper discusses an academic approach to
requirements analysis. Topics covered will be:
•
•
•
•
•
•
•
•
Brief overview of systems analysis
Understanding the stakeholders and their perspectives
Discovering requirements
Documenting and expressing requirements
Avoiding over analysis
Prioritizing requirements
Knowing requirements conflict
Defining open systems
2HNS-32099 7/15/2004
Better Software Conference 2004
What are Requirements and What
Makes Them Important?
• What are requirements?
– This paper will simply define requirements as the needs of the
stakeholders. One could also view requirements as solving
problems.
• What makes requirements important?
– Mistakes made in the front end of the development life cycle
can have substantially negative impacts on the system design’s
total cost, time schedule, and customer satisfaction
– It is the stakeholders’ needs that become the originating
requirements—the business requirements. These originating
requirements are major inputs for almost every design function
(Buede, 2000).
– This is why requirements are important, because they influence
the entire development life cycle.
3HNS-32099 7/15/2004
Better Software Conference 2004
Overview of Systems Analysis
• Scope Definition Phase
– Answers the question, “Is it worth looking at this project?”
– Deliverables: Brief Statement of Problem and Solution and
Problem Statement Matrix
– Tasks: Identify baseline problems and opportunities, Negotiate
baseline scope, Assess baseline project worthiness, Develop
baseline schedule and budget, Communicate the project plan
• Problem Analysis Phase
– Answers the question, “Are the problems really worth solving?”
– Deliverables: Problems, Opportunities, Objectives and
Constraints Matrix, a Cause and Effect Diagram, and PIECES
worksheet
– Tasks: Understand the problem domain, Analyze problems and
opportunities, Analyze business processes, Establish system
improvement objectives
4HNS-32099 7/15/2004
Better Software Conference 2004
Overview of Systems Analysis
• Requirements Analysis Phase
– Answers the question, “What do the users need and want
from a new system?”
– Deliverables: Use cases glossary, diagrams, and narratives
– Tasks: Identify and express system requirements, Prioritize
systems requirements
• Logical Design Phase
– Performs systems modeling or prototyping
– Deliverables: A prototype of solution (product), or Unified
Modeling Language (UML), data and process models
– Tasks: Structure functional requirements, Prototype
functional requirements, Validate functional requirements,
Define acceptance test cases
• Decision Analysis Phase
– Identify options, analyze options, then sell best solution
– Deliverables: Feasibility Analysis Matrix, System Proposal
5HNS-32099 7/15/2004
Better Software Conference 2004
Phase One Scope Definition
• The scope definition phase assesses the project worthiness by
answering, “Is it worth looking at this project?” To help assess,
a problem statement matrix is used (Whitten, 2004).
• Caution about builder-architected systems. Solutions for these
systems are looking for a problem, making them vulnerable to
working on the wrong problem (Maier, 2002).
• Sample problem statement matrix:
Brief Statements
of Problem,
Opportunity, or
Directive
List of
statements
identifying the
problem,
opportunity, or
directive
6HNS-32099 7/15/2004
Urgency
Visibility
Time frame to
solve
problem,
rating scale
What degree
would the
solution be
visible to
customers,
rating scale
Annual Benefits
Dollar estimate
(best guess)
of savings or
increase in
revenue
Priority or Rank
Rating scale
Proposed
Solution
At this phase,
possible
solutions
expressed in
simple terms
Better Software Conference 2004
Phase Two Problem Analysis
Two artifacts completed in the problem analysis phase, which are
used later, are the Problems, Opportunities, Objectives, and
Constraints Matrix and the Performance, Information, Economics,
Control, Efficiency and Service (PIECES) framework.
Cause-and-Effect Analysis
Problem or Opportunity
Problem statement
Causes and Effects
Possible causes of the
problem, or the
symptoms
Systems Improvement Objectives
System Objective
What you expect to
achieve
System Constraints
Something that will
reduce your flexibility
in defining an
improvement
Performance
A. Throughput
B. Response
Control (and security)
A. Too little security or control
B. Too much security or control
Information (and data)
A. Outputs
B. Inputs
C. Stored Data
Efficiency
A. People, machines, or computers waste time
B. People, machines, or computers waste materials and supplies
C. Effort required for tasks is excessive
D. Material required for tasks is excessive
Economics
A. Costs
B. Profits
Service
A. System produces inaccurate results
B. System produces inconsistent results
C. System is not easy to use
D. System is incompatible with other systems
7HNS-32099 7/15/2004
Better Software Conference 2004
Phase Three Requirements Analysis
Identifying the Stakeholders
• One of the primary roles of Systems Analysis in the
development of systems is to collect the needs from
the stakeholders, and bridge communications gap
between non-technical and technical stakeholders.
Who are these stakeholders and what role do they
perform?
– System owners
• These stakeholders are usually middle to executive level
managers who are concerned about cost and value
– Systems users
• These stakeholders are concerned about getting the job
done using the functionality of the system along with its
ease of use and learning
8HNS-32099 7/15/2004
Better Software Conference 2004
Identifying the Stakeholders
– Systems users (Cont.)
• Internal (employees)
• External (suppliers, customers)
– System designers
• Technical specialists who translate the business
requirements into technical solutions by designing the
various system components
– System builders
• Technical specialists who construct the system according to
the system designer’s specifications
9HNS-32099 7/15/2004
Better Software Conference 2004
Understanding the Stakeholders
and Their Perspectives
• Stakeholders and their perspectives can be understood using
building blocks for an information system.
• Knowledge building blocks
– System owners’ view of knowledge is to identify business
entities and rules, and is interested in the information that adds
new business knowledge about these entities and rules.
– System users’ view of knowledge will provide data
requirements, which are an extension of business entities and
rules. Users are concerned about the details (attributes) of
entities and rules.
– System designers’ view of knowledge will translate the system
users’ business data requirements into a database design.
Their concern is with database technology and view of
knowledge consists of data structures, fields, indexes, etc.
– System builders’ view of knowledge will construct the actual
database structure using tools and techniques (e.g., SQL),
based on the designers’ ideas.
10HNS-32099 7/15/2004
Better Software Conference 2004
Understanding the Stakeholders
and Their Perspectives
• Process building blocks
– System owners view processes in the form of business
functions (sales, service, manufacturing, shipping, receiving,
and accounting). These business functions can be described
as many events and responses, e.g.,
• Event - Customer submits order.
• Response - Shipping department ships order.
– System users view processes as the work required to carry out
the business function’s response to an event, in accordance
with policy.
– System designers view processes as determining which
processes (work) can be automated and how best to automate
them using available technology.
– Systems builders view processes from the perspective of
programming languages in order to build the application
program.
11HNS-32099 7/15/2004
Better Software Conference 2004
Understanding the Stakeholders
and Their Perspectives
• Communication building blocks
– System owners view communication as the business units of
employees, customers, and external businesses that interface
with the new system. Also, where are they located? In
addition, what type of other systems will interface?
– System users view communication as it is concerned with the
basic interaction with the system. The inputs and expected
outputs, and the details of each are important. Note: Users will
want the look and feel of their favorite PC tools (e.g., Excel).
– System designers view communication as it is concerned with
the interface specifications and user dialogue (movement
among windows), which can be difficult to design. Graphical
design specialist and human-computer interface specialist may
help with design.
– System builders view communication to construct system-tosystem and system-to-user interfaces using middleware and
graphical user interface technology.
12HNS-32099 7/15/2004
Better Software Conference 2004
Discovering Requirements
Now that the stakeholders are known and their views and
concerns understood, the system analyst next identifies their
needs. Requirements discovery has multiple techniques
(Whitten), each with advantages and disadvantages.
1. Sample Existing Documentation, Forms, and Files
• This technique will collect various types of existing documents,
forms and reports, perhaps too many to study. In this case, a
sampling technique of some sort should be utilized. Some of
the information that should be retrieved is:
– The Problems, Opportunities, Objectives, and Constraints
Matrix and PIECES artifacts
– Organizational charts to identify stakeholders that will be a
source of information
– Documents describing business functions and policies
– Documents containing design information about
predecessor system, operator manual, and work instructions
13HNS-32099 7/15/2004
Better Software Conference 2004
Discovering Requirements
2. Research
• This technique involves having the system analyst research the
problem being solved for background information and
understanding the problem domain. The analyst would
research trade journals, industry books, etc. Also, because not
all problems are unique, it may already be solved.
3. Observation of the Work Environment
• This technique is simply watching the system in action. This is
one of the more effective data-collection techniques. The
system analyst will observe the people and activities to learn
their needs, and will also verify information collected from other
techniques.
• Requires preparation and determination of how to capture info.
• Get permission, do not interrupt productivity, keep a low profile,
and know that some people will behave differently when
watched. It is best to single out who would be observed,
including where, what, when, why, and how.
• Review observation notes with the person to confirm if correct.
14HNS-32099 7/15/2004
Better Software Conference 2004
Discovering Requirements
4. Questionnaires
• Determine what facts must be collected and from whom.
• Based on the facts sought, develop appropriate question
format for no more than three sentence answers.
• Inspect questions for possible misinterpretation.
• Test the questions on a small group first.
• There are two basic questionnaire formats.
– Free-format: Allow users to exercise more freedom in their
answers. Use simple sentences that do not leave room for
different interpretations.
– Fixed-format: More rigid, requiring the respondent to select
from a predetermined list of answers. Questions types:
• Multiple choices. Can allow for free-format responses.
• Rating. These are used to gather opinions.
• Ranking. These allow respondents to rank a set of
answers in order of preference.
15HNS-32099 7/15/2004
Better Software Conference 2004
Discovering Requirements
5. Interviews
• This technique uses personal interviews between the analyst
and system users (not the system owners).
• This approach has many advantages and is looked upon as the
most common and important technique for collecting
requirements.
• Gets users personally involved. Before conducting interviews,
collect as many facts as possible.
• Types of interviews and questions formats:
– Unstructured interview: Analyst asks general open-ended
questions and let interviewees direct conversations or respond
in anyway. This may allow conversations to get off track.
– Structured interview: Analyst asks specific closed-ended
questions to solicit specific information, then follows up with
another question for further clarification. Answers are
restricted to specific choices or short-direct responses.
16HNS-32099 7/15/2004
Better Software Conference 2004
Discovering Requirements
6. Discovery Prototyping
• This technique involves building a prototype for the purpose
of identifying requirements by having users test the working
model and provide feedback.
7. Joint Requirements Planning (JRP)
• JRPs are group work sessions and are a formal alternative to
numerous interviews. JRPs are becoming common,
especially when required to reach a consensus on
requirements. Unlike interviews, JRPs last several days and
have the system owners present. If executed correctly, JRPs
can resolve conflicting information and requirements and
obtain a consensus among users and managers.
17HNS-32099 7/15/2004
Better Software Conference 2004
Documenting and Expressing
Requirements
•
After requirements are identified, they must be documented and
analyzed. Expressing the requirements can be done using
natural language sentence or use-case analysis.
• Natural Language Sentence (Buede)
– Most projects will write requirements using simple sentences.
The statements structure shall be broken down into the
following components:
1. Subject (the system of interest)
2. Verb phrase usually starting with the word shall, or other
applicable words:
• Shall indicates limiting nature of the requirement.
• Will indicates a fact.
• Should indicates a goal.
3. Object, which describes the input, output, etc.
4. Minimal acceptable threshold with units (optional).
5. Conditions that would make the statement true (optional).
18HNS-32099 7/15/2004
Better Software Conference 2004
Documenting and Expressing
Requirements
• Natural language sentence
– Example of a requirement statement: “The system shall prompt
the user with a login screen upon touch of the keyboard.”
• Use the following rules when writing requirements:
– Do not use a compound predicate. This will cause problems
with tracing in requirements management. Example: The
system shall fit.., weigh.., cost.
– Do not use negative predicates, which will describe what the
system is not to do. Example: The system shall not…
– Do not use and/or, which provide designers with a choice.
– Do not start a requirement with a conditional statement. E.g., If
the input is…the system shall... Instead, conditions that make
the requirement true should be placed at the end.
– Do not use ambiguous verbs such as maximize or minimize.
– Do not use ambiguous adjectives. Most common ones are:
adaptable, adequate, easy, flexible, rapid, robust, sufficient,
supportable, and user-friendly.
19HNS-32099 7/15/2004
Better Software Conference 2004
Documenting and Expressing
Requirements
• Use-case analysis
– In software engineering, requirements discovered are
also expressed using use-case analysis. Use-case
analysis is a modeling process part of the UML
standard.
– This technique will produce a use-case glossary, usecase model diagram, and use-case narrative artifacts.
– Modeling requirements is not effective for expressing
performance (Maier), which is a system category of the
PIECES framework.
• The use-case diagram graphically depicts the system
and its interactions within the given environment by
using a collection of modeling elements. These three
elements are (Fowler, 1999):
20HNS-32099 7/15/2004
Better Software Conference 2004
Documenting and Expressing
Requirements
– Use-cases: The sequence of events a system
performs to yield an observable result.
– Actors: Actors are users of the system, either for
input or output. These users exist outside the
system.
• Primary: This user is the one primarily benefiting from
the use-case execution by receiving an output.
• Primary System Actor: This user directly interfaces
with the system to initiate the transaction.
• External Server Actor: This user responds to a request
from a use-case.
• External Receiver Actor: This user is not the primary
actor but also receives something of value from a usecase output.
21HNS-32099 7/15/2004
Better Software Conference 2004
Documenting and Expressing
Requirements
– Relationships: A use-case can have relationships between
an actor and other use-cases.
• Include: Provides common functionality
• Generalization: Almost common steps among usecases
• Extend: An alternative or exception to normal behavior
Order Subsystem
Maintenance Staff
<<includes>>
Check Out
Equipment Available Status
System
Check Out Receipt
Check In
22HNS-32099 7/15/2004
Equipment Depot
Better Software Conference 2004
Documenting and Expressing
Requirements
• Use-case glossary
– This tabular list has the use-case names, a one-paragraph
description for each case, and the participating actors and roles.
Use-Case Name
Use-Case Description
Participating Actors and Roles
Check Out
This use-case describes the event of a
maintenance staff member requesting use of
equipment by filling out a form containing type
of equipment, reason, job number, etc.
Maintenance Staff (primary)
Equipment Availability Status (external
server)
Check Out Receipt
This use-case describes the event of the
system printing a completed Check Out form.
System (primary)
Maintenance Staff (external receiver)
Equipment Depot (external receiver)
Check In
This use-case describes the event of
equipment depot staff receiving checked out
equipment from maintenance staff, putting
equipment physically back into depot, and then
updating system.
Equipment Depot Staff (primary)
Equipment Availability Status
This use-case describes the event of notifying
the check out use case of equipment already
checked out or on order.
System (primary)
Check Out (external receiver)
23HNS-32099 7/15/2004
Better Software Conference 2004
Documenting and Expressing
Requirements
• The use-case narrative documents all use-cases by expanding
them into a step-by-step description. Some fields include
(Whitten):
– Precondition: This is a constraint on the state of the system
before the use-case can be executed.
– Trigger: This is the event that initiated the execution of the usecase.
– Typical course of events: This is the normal sequence of
activities performed by both actor and the system to satisfy the
objective of the use-case.
– Alternative courses: This documents the behavior of the usecase in an exception or variation to the typical course of events.
– Business rules: These specify policies and procedures of the
business for the system to abide by.
– Assumptions: Any assumptions that were made by the author
when writing the narrative.
24HNS-32099 7/15/2004
Better Software Conference 2004
Documenting and Expressing
Requirements
USE CASE NAME:
Check-Out Equipment
USE CASE TYPE
USE CASE ID:
Business Requirements:
PRIORITY:
High
SOURCE:
Cause & Effect Analysis and Personal Interviews
PRIMARY BUSINESS ACTOR:
Maintenance Staff
OTHER PARTICIPATING ACTORS:
•
•
Equipment Depot
System
OTHER INTERESTED STAKEHOLDERS:
•
Maintenance Supervisor
DESCRIPTION:
This use case provides typical steps for checking out equipment.
PRE-CONDITION:
Maintenance staff member is login to any one of the two warehouse terminals.
TRIGGER:
User submitted a Check-Out Equipment request.
TYPICAL COURSE of EVENTS
;
Actor Action
Step 1. User enters in equipment desired.
System Response
Step 2. System verifies user’s employment status (not terminated) and skill level. Skill level must be equal to or
greater than equipment classification.
Step 3. System checks availability of equipment (not all checked out).
Step 4. System updates the Checked Out List.
Step 5. System deducts any supplies from inventory.
Step 6. System prints a Check Out Receipt.
Step 7. User takes receipt to Equipment Depot counter.
Step 8. Equipment Depot staff may check Lost and Damaged Equipment Report against employee.
Step 9. Equipment Depot honors check out request.
ALTERNATE COURSES:
Equipment Depot staff already automatically notified of the Maintenance Staff having too many checked out equipment, or history of damaged, lost equipment by Exception Problem Report.
Equipment Depot refuses to honor check out with out supervisor approval.
CONCLUSION:
POST-CONDITION:
BUSINESS RULES
•
•
Maintenance Supervisors setup up constraints for Exception Problem Reports (define x).
Safety committee determines the appropriate skill level for using equipment.
IMPLEMENTATION CONTRAINTS AND
SPECIFICATIONS
ASSUMPTIONS:
OPEN ISSUES:
25HNS-32099 7/15/2004
Possibly have system refuse to submit a Check Out Receipt based on Exception Problem Report.
Better Software Conference 2004
Avoiding Over Analysis
Required Depth of
Understanding
When documenting requirements, avoid trying to understand too
many details. This condition is called analysis paralysis. To address
the problem of analysis paralysis, one could use a graphical chart
with the vertical axis measuring the depth of understanding, and the
horizontal axis listing the disciplines or subsystems that need to be
understood (Maier). Some disciplines need less depth of
understanding. In some cases it will be obvious which disciplines
require less depth.
A
B
C
D
E
Disciplines and Subsystems
26HNS-32099 7/15/2004
Better Software Conference 2004
Prioritizing Requirements
• Some requirements provided are within the solution scope, but it
is unclear whether or not they are mandatory. Users have a
tendency to label too many requirements as mandatory. A quick
test to determine if a list of requirements is mandatory or not is
attempting to rank them. You should not be able to rank any
requirement that you absolutely must have (Azani).
• Regarding priority, assign the difficult requirements highest
priority. In risk management terms, if the hard parts of
construction are left for last, the risk level and uncertainty will
remain high. Justification for the system may begin to erode over
time. In the private sector such a system not yet demonstrating
capability would be considered high-risk capital venture. In
government acquisition, political challenges will occur (Maier).
27HNS-32099 7/15/2004
Better Software Conference 2004
Knowing Requirements Conflict
• According to a Georgia State University study (Robinson, 2003),
two basic forces give rise to requirements conflict, technical and
social. The authors recommend an emerging concept of
Requirements Interaction Management (RIM) to address these
conflicts.
• Technical difficulties that lead to requirements conflict:
– Voluminous requirements
– Changing requirements and analysts
– Complex requirements
• Social difficulties that lead to requirements conflict:
– Conflicting stakeholder requirements
– Changing and unidentified stakeholders
– Changing expectations
28HNS-32099 7/15/2004
Better Software Conference 2004
Defining Open Systems
• The biology concepts of open and closed systems describe closed
systems as self-reliant, and open systems as having to exchange
with its environment for survival (Frank, 2002). From an
engineering perspective, closed systems are very proprietary,
whereas open systems are non-proprietary
• To reduce the risk of uncertainty of a system’s end purpose, select
options to build in and maintain. This will allow early decisions to
be changed or functionality extended. One such strategy for
software is use of open architectures (Maier). This could allow
tailoring future customer-expressed needs without major changes.
• Open systems architecture can be obtained using the following
design principles (Azani):
– Use a modular approach to architecture and design
– Acquire components instead of building
– Identify critical interfaces and use industry recognized
standards for these interfaces
– Verify that requirements permit the wider use of open
standards
29HNS-32099 7/15/2004
Better Software Conference 2004
Conclusion
• In the 1960s, IBM wrote the requirements for the 360 computer
system, a family of models. This family approach allowed the
system 360 to grow with owners and users by upgrading from a
smaller model to a larger, compatible model. As a matter of fact,
it didn’t use the virtual memory operating system that was being
introduced at the time. Soon, the virtual memory approach
dominated operating systems. Yet, the system 360 was widely
successful for many years to come.
• Today the requirement to have a computer system grow with the
company seems obvious, but in the early days of mainframes, it
was not so obvious. Hence, the need for requirements
analysis—to discover what is not so obvious.
30HNS-32099 7/15/2004
Better Software Conference 2004
References
• Azani, Cyrus. (n.d.). Open System Development Strategy. University
•
•
•
•
•
•
of Maryland. Unpublished.
Buede, Dennis. (2000). The Engineering Design of Systems: Models
and Methods. John Wiley and Sons: New York: NY
Fowler, M., and Scott, K. (1999). UML Distilled: A Brief Guide to the
Standard Object Modeling Language. 2nd Edition. Addison Wesley
Frank, Michael. (2002). The History of American Management
Thought: A Perspective and Analysis. The Development of
Management Theory and Practice in the United States. Pearson
Custom Publishing: Boston, MA
Maier, M., and Rechtin, E. (2002). The Art of Systems Architecting.
2nd Edition. CRC Press: Boca Raton, Florida.
Robinson, W., Pawlowski, S., Vecheslav, V. (2003, June).
Requirements Interaction Management. Georgia State University.
ACM Computing Surveys. Vol. 35, No. 2, pp. 132-190. Retrieved on
May 26, 2004, from database ACM Digital Library.
Whitten, J., Bentley, L., Dittman, K. (2004). Systems Analysis and
Design Methods. 6th Edition. McGraw Hill/Irwin: New York, NY.
31HNS-32099 7/15/2004
Better Software Conference 2004
Discovering Requirements
Discovering the True Software Requirements
Paul DeSantis
Better Software Conference & EXPO 2004
1
Discovering Requirements
2
Table of Contents
Abstract ............................................................................................................................... 3
1. Introduction................................................................................................................. 4
2. Background Information............................................................................................. 4
2.1.
What makes requirements important?..................................................................... 4
2.2.
Overview of Systems Analysis ............................................................................... 5
3. Phase One Scope Definition........................................................................................ 6
4. Phase Two Problem Analysis...................................................................................... 7
5. Phase Three Requirements Analysis........................................................................... 8
5.1.
Identifying the Stakeholders.................................................................................... 8
5.2.
Understanding the Stakeholders and Their Perspectives ...................................... 10
5.3.
Discovering Requirements .................................................................................... 11
5.4.
Documenting and Expressing Requirements ........................................................ 16
5.4.1. Natural Language Sentence................................................................................... 16
5.4.2. Use-case Analysis ................................................................................................. 17
6. Avoiding Over Analysis............................................................................................ 21
7. Prioritizing Requirements ......................................................................................... 22
8. Knowing Requirements Conflict............................................................................... 22
9. Defining Open Systems............................................................................................. 22
10.
Conclusion............................................................................................................. 23
11.
References ............................................................................................................. 24
Discovering Requirements
3
Abstract
In May 2004, the Federal Communications Commission (FCC) proposed new
requirements for an emerging technology, Broadband over Power Lines (BPL).
Broadband over Power Lines is the ability of running high-speed broadband
communications for Internet access over existing power lines. One would simply
connect up to their electrical outlet, instead of a telephone line, wireless connection or
DSL. Unfortunately, experiments have shown that BPL provides radio interference with
electrostatic discharge.
The FCC, in an attempt to address the radio inference of BPL, proposed a requirement,
which is: Make it easier to track down who is responsible for interference and a shutdown feature to deactivate units found to cause harmful interference (Sumner, p. 9,
2004).
Notice that the FCC proposal does not describe the technical details in how to track down
interference and the shutdown feature. It doesn’t include a cost involved, a possible
solution or technique, and it is not directed to a particular utility company. Just a formal
statement describing what the government wants and needs from BPL.
This paper will discuss requirements analysis, which defines what the users need and
want from a new system. Also, it will identify the users, their perspectives, and how to
collect and analyze their requirements.
Discovering Requirements
4
1. Introduction
This paper discusses an academic approach to fact-finding techniques for
requirements discovery. It starts with a brief discussion of the first phases of systems
analysis, scope definition and problem analysis. Then comprehensively explains
requirements analysis by offering techniques in problem discovery and analysis,
requirements discovery, documenting and analyzing requirements, requirements
management, sampling of existing documentation, research, environment observation,
questionnaires, interviews, prototyping, and joint requirements planning.
To provide a complete understanding of systems analysis, this paper will explain
what questions are answered by the first several phases of systems analysis, and how to
create and use each phase’s set of deliverable components. These are:
•
•
•
•
•
Matrix of problems, opportunities, objectives and constraints
PIECES framework for problem identification
Cause and effect diagram
Problem statement matrix
Use-case glossary, diagrams and narratives.
Using this framework, one can study business problems and opportunities, then
transform the business and information requirements into specifications for information
systems. The final phases of logical design and decision analysis are also briefly
introduced.
System architectures have several building blocks with each stakeholder having a
different perspective, and wants and needs, regardless of the business drivers. This
framework will also discuss the different perspectives for each block, which will enable
the system analyst to customize requirements analysis for each stakeholder. This will
produce more effective requirements discovery and bridge any communications gap.
The presentation will conclude by listing open systems design principles.
This hybrid methodology can be used with any development strategy.
2. Background Information
2.1. What makes requirements important?
In the software engineering industry, knowing requirements is important because
mistakes made in the front end of the development life cycle, which includes
requirements analysis, can have substantially negative impacts on the systems design’s
total cost, time schedule, and customer satisfaction (all features included). Still, this
reason may not help explain how requirements are important.
Discovering Requirements
5
Instead of listing the many different definitions of requirements and requirements
types, this paper will simply define requirements as the needs of the stakeholders. One
could also view requirements as solving problems. It is the stakeholders’ needs that
become the originating requirements—the business requirements. These originating
requirements are major inputs for almost every design function (Buede). Case in point:
Derived requirements and developed architectures come from originating requirements.
If the source is wrong, what follows will also be wrong. This is why requirement are
important; they influence the entire development life cycle.
The process of discovering and expressing business requirements for a new
system is called requirements analysis. The profession performing the work is known as
systems analysts. This paper will explain requirements analysis from a systems analysis
perspective. Systems analysis is a problem-solving technique for business problems. It
decomposes a system into components for the purpose of studying how well these
components work together to accomplish their objective. System analysis occurs before
system design, which focuses on the technical aspects of the system (Whitten, 2004).
2.2. Overview of Systems Analysis
An overview of system analysis in regards to its phases, objective of each phase,
tasks, and deliverables is as follows:
1. Scope Definition Phase
a. This phase answers the question, “Is it worth looking at this project?”
b. Deliverables: Brief Statement of Problem and Solution, and Problem
Statement Matrix
c. Tasks involved:
i. Identify baseline problems and opportunities
ii. Negotiate baseline scope
iii. Assess baseline project worthiness
iv. Develop baseline schedule and budget
v. Communicate the project plan
2. Problem Analysis Phase
a. This phase answers the question, “Are the problems really worth solving?”
b. Deliverables: Problems, Opportunities, Objectives and Constraints Matrix,
a Cause and Effect Diagram, and PIECES worksheet
c. Tasks involved:
i. Understand the problem domain
ii. Analyze problems and opportunities
iii. Analyze business processes
iv. Establish system improvement objectives
3. Requirements Analysis Phase
a. This phase answers the question, “What do the users need and want from a
new system?”
b. Deliverables: Use-cases glossary, diagrams, and narratives
Discovering Requirements
6
c. Tasks involved:
i. Identify and express system requirements
ii. Prioritize systems requirements
4. Logical Design Phase
a. Performs Systems modeling or prototyping
b. Deliverables: A prototype of solution (product), a Unified Modeling
Language (UML) model, a data model, or a process model
c. Tasks involved:
i. Structure functional requirements
ii. Prototype functional requirements
iii. Validate functional requirements
iv. Define acceptance test cases
5. Decision Analysis Phase
a. Identify options, analyze options, then sell best solution
b. Deliverables: Candidate Systems Matrix, Feasibility Analysis Matrix, and
System Proposal (written report)
c. Tasks involved:
i. Identify candidate solutions
ii. Analyze candidate solutions
iii. Compare candidate solutions
iv. Recommend a system solution
3. Phase One Scope Definition
Of all the systems analysis phases, this one is the shortest, just days to complete.
Executive management makes the scope decision. The scope definition phase assesses
the project worthiness by answering, “Is it worth looking at this project?” To help assess,
a problem statement matrix is used for listing statements about the problem, and
assigning dispositions to each one. Other operational and technical feasibility techniques
may be used.
Sample Problem Statement Matrix
Brief
Statements of
Problem,
Opportunity,
or Directive
List of
statements
identifying
the problem,
opportunity,
or directive
Urgency
Visibility
Annual
Benefits
Priority or
Rank
Proposed
Solution
Time Frame
to solve
problem,
rating scale
What degree
would the
solution be
visible to
customers,
rating scale
Dollar
estimate (best
guess) of
savings or
increase in
revenue
Rating scale
At this phase,
possible
solutions
expressed in
simple terms
Discovering Requirements
7
4. Phase Two Problem Analysis
Two artifacts completed in the problem analysis phase, and later used in the
requirements analysis phase, are the Problems, Opportunities, Objectives, and Constraints
Matrix and the Performance, Information, Economics, Control, Efficiency and Service
(PIECES) framework.
•
Problems, Opportunities, Objectives, and Constraints Matrix
This matrix will help establish system improvement objectives that will later be
used as requirements. This matrix will establish the problem, the causes and
effects (symptoms) of the problem, solutions (the objective), and the constraints
(limitations on achieving the objectives). It is important not to identify a
symptom as a problem. The popular cause-and-effect diagram, also known as the
fishbone diagram and Ishikawa diagram, can be used in conjunction with this
matrix.
A word of caution for builder-architected systems: Often the solutions associated
with these systems are looking for a problem, which makes them vulnerable to
working on the wrong problem (Maier, p. 42).
Sample Problems, Opportunities, Objectives, and Constraints Matrix
Cause-and-Effect Analysis
Problem or
Causes and Effects
Opportunity
Problem statement
Possible causes of
the problem, or the
symptoms
•
Systems Improvement Objectives
System Objective
System Constraints
What you expect to
achieve
Something that will
reduce your
flexibility in
defining an
improvement
PIECES
Professor and author Dr. James Wetherbe developed a framework for classifying
problems called PIECES. Each category has problems that need to be corrected or
improved. It is these categories that help with brainstorming. Other categories may
be added for specific system needs. Some problems may show up in multiple
categories. Below is a sample PIECES Problem –Solving Framework and Checklist
(Whitten, p. 94).
Discovering Requirements
Sample PIECES
Performance
A. Throughput
B. Response
Information (and data)
A. Outputs
B. Inputs
C. Stored Data
Economics
A. Costs
B. Profits
Control (and security)
A. Too little security or control
B. Too much security or control
Efficiency
A. People, machines, or computers
waste time
B. People, machines, or computers
waste materials and supplies
C. Effort required for tasks is
excessive
D. Material required for tasks is
excessive
Service
A. System produces inaccurate results
B. System produces inconsistent
results
C. System is not easy to use
D. System is incompatible with other
systems
5. Phase Three Requirements Analysis
5.1. Identifying the Stakeholders
One of the primary roles of a Systems Analysis in the development of systems is to
collect the needs from the stakeholders, and bridge communications gap between
nontechnical and technical stakeholders. Who are these stakeholders and what role do
they perform?
•
•
System Owners
These stakeholders are usually middle to executive level managers who are
concerned about cost and value, which would include:
o Increased business profit
o Reduced business cost
o Improved customer relation
o Increased efficiency
o Better compliance with regulation
Systems Users
These stakeholders are concerned about getting the job done using the
functionality of the system, along with its ease of use and learning. There are
many types of system users, categorized as either internal or external.
8
Discovering Requirements
9
o Internal System Users
§ Clerical and Service Workers
Workers that perform the day-to-day transaction processing
§ Technical and Professional Staff
Workers that perform highly skilled and specialized work
§ Supervisors, Middle and Executive Managers
Decision makers focusing on day-to-day problem solving
o External System Users
Also known as remote or mobile users. The Internet has extended
information system boundaries, which adds external users such as:
§ Customers
The purchasers using the system to directly execute a sales
transaction
§ Suppliers
The providers of supplies and raw material using the
system to check supply needs and fulfill orders
§ Partners
Another company with a business contract to provide
services.
§ Employees
Employees of the company owning the system, who are on
travel or telecommunicating
•
System Designers
Technical specialists who translate the business requirements into technical
solutions, by designing the various system components. Technical specialties are:
o Database administrators
o Network architects
o Web architects
o Graphics artists
o Security experts
o Other specialists (experts in the application of a given technology)
•
System Builders
Technical specialists who construct the system according to the system designer’s
specifications.
o Applications programmers
o Systems programmers
o Database programmers
o Network administrators
o Security administrators
o Webmasters
o Software integrators
Discovering Requirements
10
5.2. Understanding the Stakeholders and Their Perspectives
Authors Whitten, Bentley and Dittman developed a Framework for Information
Systems Architecture that does a wonderful job of representing stakeholders and their
different perspectives. Their framework consists of building blocks representing a
system and its different views. This section uses the building blocks of business
knowledge, business processes, and business communications to describe each
stakeholder’s view of what they want and need from a system (Whitten).
Knowledge Building Blocks
•
•
•
•
System owners’ view of knowledge is to identify business entities and rules, and
is interested in the information that adds new business knowledge about these
entities and rules. Example of entities: Customer Mr. Smith has placed X number
of orders. In this example, the business entities are customer and orders.
Example of rules: Only customers can place orders. Owners aren’t interested in
details (attributes) of entities or rules.
System users’ view of knowledge will provide data requirements, which are an
extension of business entities and rules. Users are concerned about the details
(attributes) of entities and rules. Example: The entity of order could have the
attributes of rush shipment or normal shipment. Users may also expand the list of
entities and rules.
System designers’ view of knowledge will translate the system users’ business
data requirements into a database design. Their concern is with database
technology and view of knowledge consists of data structures, fields, indexes, etc.
System builders’ view of knowledge will construct the actual database structure
using tools and techniques (i.e., SQL), based on the designer’s ideas.
Process Building Blocks
•
•
•
•
System owners view processes in the form of business functions (sales, service,
manufacturing, shipping, receiving, and accounting). These business functions
can be described as many events and responses. Example:
Event - Customer submits order.
Response - Shipping department ships order.
System users view processes as the work required to carry out the business
function’s response to an event, in accordance to policy.
System designers view processes as determining which processes (work) can be
automated, and how best to automate them using available technology.
Systems builders view processes from the perspective of programming languages
in order to build the application program.
Discovering Requirements
11
Communication Building Blocks
•
•
•
•
System owners view communication as the business units of employees,
customers, and external businesses that interface to the new system. Also, where
are they located? In addition, what type of other systems will interface?
System users view communication as it is concerned with the basic interaction
with the system. The inputs and expected outputs, and the details of each are
important. Note: Users will want the look and feel of their favorite PC tools (i.e.,
Excel).
System designers view communication as it is concerned with the interface
specifications and user dialogue (movement among windows), which can be
difficult to design. Graphical design specialist and human-computer interface
specialist may help with design.
System builders view communication to construct system-to-system and systemto-user interfaces using middleware and graphical user interface technology.
5.3. Discovering Requirements
Now that the stakeholders are known, and their views and concerns understood, the
system analyst next identifies their needs. Requirements discovery has multiple
techniques, each with advantages and disadvantages. This paper will discuss seven
common techniques. An analyst ought to apply several techniques to a single project,
selecting the most suitable ones given the situation.
1. Sample Existing Documentation, Forms and Files
This technique will collect various types of existing documents, forms, and
reports. Perhaps too many to study. In this case, a sampling technique of some
sort should be utilized. Some of the information that should be retrieved is:
• The Problems, Opportunities, Objectives, and Constraints Matrix and
PIECES artifacts
• Organizational charts to identify stakeholders that will be a source of
information
• Documents describing business functions, policies, and mission statements
for both individual departments and the company as a whole
• Documents containing design information about predecessor system,
operator manual and work instructions
2. Literature Research
This technique involves having the system analyst research the problem being
solved for background information, and understanding the problem domain. The
analyst would research trade journals, periodicals, industry books. Also, because
not all problems are unique, it may already be solved. The analyst may want to
visit a physical site that already solved the problem, assuming the company is
willing to share information.
Discovering Requirements
12
3. Observation of the Work Environment
This technique has the analyst performing a site visit that allows them to observe
the work environment. Simply stated, watching the system in action. This is one
of the more effective data-collection techniques. The system analyst will observe
the people and activities to learn their needs, and will also verify information
collected from other techniques.
There are more disadvantages than advantages with site visits, but with proper
preparation and determining how to capture information beforehand, site visits
can be useful.
Etiquette takes precedence with site visits, requiring permission from appropriate
managers, not interrupting productivity, keeping a low profile, and knowing that
some people will behave differently when watched. It is best to single out who
would be observed, including where, what, when, why and how. When done with
each observation, review notes with the person or manager to confirm if correct.
4. Questionnaires
When dealing with a large audience, this technique is efficient and effective. Like
studying existing documentation, it may require a good sampling technique if the
volume is too high. Although this technique is criticized for producing unreliable
and not useful information, Purdue University Professor Jeffrey Whitten believes
many of the criticisms are due to inappropriate or ineffective use of
questionnaires. He offers the following advice and guidelines when developing a
questionnaire:
•
•
•
•
•
Determine what facts, opinions and from whom data must be collected.
Based on the facts and opinions sought, develop the appropriate question
format.
Write the questions, and then inspect them for errors and possible
misinterpretation.
Test the questions on a small group first. Adjust accordingly.
Duplicate and distribute questionnaire.
There are two basic question formats. These are described below along with their
characteristics.
•
Free-format Questionnaire
These are designed to allow users to exercise more freedom or latitude in
their answers. Example: What reports do you currently receive and how
are they used?
Use simple sentences that do not leave room for different interpretations
among respondents. Also, questions asked should be answerable with
three sentences or less.
Discovering Requirements
•
13
Fixed-format Questionnaire
These are more rigid, requiring the respondent to select from a predetermined list of answers. Fixed format questions types are:
o Multiple choices. These can also allow for free-format responses
when none of the answers apply. Example: What is your job title?
Engineer, Scientist, Other (please specify)
o Rating. These are used to gather opinions. Example: Do you like
how the web feature executes? Strongly Agree, Agree, Disagree.
To prevent any build-in biases, an equal number of positive and
negative ratings should be used.
o Ranking. These allow respondents to rank a set of answers in order
of preference. Example: Rank the following web feature in order
of importance: _ mandatory, _ useful, _ not useful.
5. Interviews
This technique uses personal interviews between the analyst and the system users
(not the system owners). This approach has more advantages than disadvantages
and is looked upon as the most common and most important technique for
collecting requirements. Possibly because it fulfills the many goals of finding,
verifying, and clarifying facts, identifying requirements, solicit ideas and
opinions, and gets users personally involved, which is preferred by users. Before
conducting interviews, collect as many facts as possible.
Like questionnaires, there are different types of interviews and different question
formats. These are:
•
•
Unstructured interview: Analyst asks general questions and let
interviewees direct conversations. This type of interview generally
doesn’t work well due to conversations getting off track. Questions are
usually open-ended allowing the interviewee to respond in any way.
Structured interview: Analyst ask specific questions to solicit specific
information, then follows up with another question for further
clarification, if necessary. Questions usually are closed-end that restrict
answers to specific choices, or short-direct response.
Conducting the interviews:
Step 1: Select the interviewees, once again specifically the end users and not
the owners. Make an appointment with the users after obtaining their
management’s approval for participation, then attempt to get to know the
users (i.e., job description, strengths, weaknesses).
Step 2: Prepare an interview guide, see example below, which will list
proposed questions in order and any anticipated follow up questions. When
writing the questions, use the same advice listed in the questionnaire section
Discovering Requirements
14
of this paper. In addition, questions should be investigative. Do not provide
opinions or criticize. It is okay to deviate from the list of proposed questions
in order to probe for more information. It is expected for the analyst to adapt
to the interview.
Sample Interview Guide:
Meeting Subject:
Date:
Time:
Place:
Interviewees:
Time Allocated
Interviewer Question or
Objective
5 minutes
Opening Statements
• Everybody introduces
themselves
• State purpose of
meeting
2 minutes
Question 1
Will only your department
be logging into the system?
Follow up
2 minutes
Question 2
Will the system need to
verify your login for
security clearances?
Follow up
What are the clearance
levels?
5 minutes
Conclusion
• Thank everybody again
for attending
• Promise to follow up
General Comments and Notes:
Interviewee Response
Step 3. Conducting the interview.
The interview consists of three parts: opening, body and closing. The system
analyst can easily open the meeting by stating the purpose and objective of the
meeting by making a statement like, “I want to get consensus on everything
the system needs to do and who will be using which functionality.”
The body of the interview will consist of the questions. It is here that the
analyst must listen carefully to each response including non-verbal responses
Discovering Requirements
15
as in body language, keep the interview on track, and take many notes. There
are three forms of listening (Lewicki, 2004): Passive (receiving message while
providing no feedback), acknowledgement (nod head, interject responses like
“I see”), and active listening (restate or paraphrase the sender’s message).
Interviewers should use acknowledgement or active listening. Note: Beware
of those users who are providing requirements that are outside the scope of the
solution approved by the system owners.
The closing should have the analyst answering any questions from the
interviewees, thanking them for their attendance, and promising to follow up
with the documented requirements.
Some helpful rules for the interviewer:
•
•
•
•
Do listen carefully
Do be courteous
Do ask more questions to probe or seek clarification
Do take notes
•
•
•
•
Don’t assume anything
Don’t continue an interview unnecessarily
Don’t talk instead of listening
Don’t criticize or evaluate
6. Discovery Prototyping
This technique involves building a prototype for the purpose of identifying
requirements by having users test the working model and provide feedback. This
is called discovery prototyping, which is different than prototyping in the
development strategy of rapid application development (RAD). This paper
suggests discovery prototyping would be too difficult for projects to implement if
using a development strategy other than RAD (i.e., modeling), even though it has
many advantages.
7. Joint Requirements Planning (JRP)
JRPs are group work sessions, and are a formal alternative to numerous
interviews. JRPs are becoming common, especially when required to reach a
consensus on requirements. Unlike interviews, JRPs last several days and have
the system owners present. If executed correctly, JRPs can resolve conflicting
information and requirements, and obtain a consensus among users and managers.
The list below shows the participants and their roles.
•
Sponsor: This person has authority to make decisions about the project.
Sponsors determine who should attend the JRP and play a visible role
throughout the session. The system analyst works with the sponsor to
determine the scope of the project addressed through the JRP.
Discovering Requirements
•
•
•
•
16
Facilitator: This person conducts the session, leads discussions,
encourages participation among all attendees, resolves conflicts, and helps
the JRP fulfill its goals and objectives. They may establish ground rules
for the JRP.
System users and managers: They ensure that their needs to be successful
in their day-to-day work tasks are being addressed by the system, and will
provide the most input.
Scribe: This person or persons keep records of the session for immediate
publication and distribution afterwards. This will keep the requirements
analysis momentum. Because records will include technical
documentations, such as models, CASE tools are required along with the
appropriate expertise. Usually, a systems analyst acts as the scribe.
IT staff: These attendees’ role is passive, being called upon to answer
technical questions. They will take notes and help the scribe in
developing the technical documentation.
JRPs should be conducted offsite in order for attendees to concentrate on the
activities and prevent interruptions. A formal conference room is required
with visual aids (overhead projector, whiteboard, and flipcharts). The scribes
require computers running CASE and office tools. Physical layout grouping
the attendees per function is recommended.
The JRP agenda will include brainstorming, interviewing, or any other
technique, to generate as many requirements possible.
The facilitator and scribes are the most important people to make a JRP
session a success.
5.4. Documenting and Expressing Requirements
Once the systems analyst is complete in identifying all requirements, the analyst must
document or express the requirements, and analyze them in the process. Expressing the
requirements can be done using natural language sentence or use-case analysis.
5.4.1. Natural Language Sentence
Most projects will write business requirements using simple statements (sentences). The
statements structure shall be broken down into the following components:
•
•
Subject (The system of interest)
Verb phrase usually starting with the word shall, but others are applicable.
o Shall indicates limiting nature of the requirement
o Will indicates a fact
o Should indicates a goal
Discovering Requirements
•
•
•
17
Object that describes the input, output, etc.
Minimal acceptable threshold with units (optional)
Conditions that would make the statement true (optional)
Example of a requirement statement (also referred to as requirement text):
•
The system shall prompt the user with a login screen upon touch of the
keyboard.
Use the following rules when writing requirements (Buede):
•
•
•
•
•
•
Do not use compound predicate. This will cause problems with tracing in
requirements management. Example: The system shall fit.., weigh.., cost…
Do not use negative predicates, which will describe what the system is not to
do. Example: The system shall not…
Do not use and/or, which will provide the designers with a choice. Also, do
not use colloquialism.
Do not start a requirement with a conditional statement. Example: If the input
is…the system shall... Instead, conditions that make the requirement true
should be placed at the end of the sentence.
Do not use ambiguous verbs such as maximize or minimize.
Do not use ambiguous adjectives. Most common ones are: adaptable,
adequate, easy, flexible, rapid, robust, sufficient, supportable, and userfriendly.
5.4.2. Use-case Analysis
In software engineering, requirements discovered are also expressed using usecase analysis. Use-case analysis is a modeling process part of the UML standard. This
technique will produce a use-case glossary, use-case model diagram, and use-case
narrative artifacts. This paper will briefly introduce the technique. It is recommended for
the reader to consult formal publications on UML for proper teachings of its semantics
and notations.
Note: Modeling requirements is not effective for expressing performance (Maier), which
remember, is a system category of the PIECES framework.
Use-case Diagrams
This diagram graphically depicts the system and its interactions within the given
environment by using a collection of modeling elements. These are use-cases, actors and
their relationships. Element descriptions are as follows (Fowler).
Discovering Requirements
•
•
•
18
Use-cases: The sequence of events (transactions) a system performs to
yield an observable result. Each use-case can be viewed as a function.
Actors: Actors are users of the system, either for input or output. These
users exist outside the system. Users can be a human being, or another
computer. There are four types of actors:
o Primary: This user is the one primarily benefiting from the usecase execution by receiving an output.
o Primary System Actor: This user directly interfaces with the
system to initiate the transaction.
o External Server Actor: This user responds to a request from a usecase.
o External Receiver Actor: This user is not the primary actor but also
receives something of value from a use-case output.
Relationships: A use-case has relationships between an actor and other
use-cases. The three types of relationships are:
o Include: Provides common functionality
o Generalization: Almost common steps among use-cases
o Extend: An alternative or exception to normal behavior
Example use-case diagram:
Order Subsystem
Maintenance Staff
<<includes>>
Check Out
Equipment Available Status
System
Check Out Receipt
Check In
Equipment Depot
Discovering Requirements
19
Use-case glossary:
This tabular list has all the identified use-case names, a one paragraph description
for each case, and the participating actors and roles.
Example use-case glossary:
Use-Case Name
Check Out
Check Out Receipt
Check In
Equipment Availability
Status
Use-Case Description
Participating Actors and
Roles
This use-case describes the
Maintenance Staff
event of a maintenance staff (primary)
member requesting use of
Equipment Availability
equipment, by filling a form Status (external server)
containing type of
equipment, reason, job
number, etc.
This use-case describes the
System (primary)
event of the system printing Maintenance Staff (external
a completed Check Out
receiver)
form.
Equipment Depot (external
receiver)
This use-case describes the
Equipment Depot Staff
event of equipment depot
(primary)
staff receiving checked out
equipment from
maintenance staff, putting
equipment physically back
into depot, and then
updating system.
This use-case describes the
System (primary)
event of notifying the check Check Out (external
out use-case of equipment
receiver)
already checked out, or on
order.
Use-Case Narrative
This artifact formally documents each use-case by expanding them into a step-bystep narrative (description). One narrative per use-case. In the sample template below,
many fields make up the narrative. Some of the fields require explanation.
•
•
Precondition: This is a constraint on the state of the system before the usecase can be executed.
Trigger: This is the event that initiated the execution of the use-case.
Discovering Requirements
•
•
•
•
•
•
•
20
Typical Course of Events: This is the normal sequence of activities
performed by both actor and the system to satisfy the objective of the usecase.
Alternative Courses: This documents the behavior of the use-case in an
exception or variation to the typical course of events.
Conclusion: This specifies when the use-case successfully ends.
Post Condition: This is a constraint on the state of the system after the usecase has been successfully executed.
Business Rules: These specify policies and procedures of the business for
the system to abide by.
Assumptions: Any assumptions that were made by the author when
writing the narrative.
Open Issues: Any issues that need to be resolved prior to finalizing usecase.
Example use-case narrative:
USE-CASE NAME:
USE-CASE ID:
PRIORITY:
SOURCE:
PRIMARY BUSINESS
ACTOR:
OTHER
PARTICIPATING
ACTORS:
OTHER INTERESTED
STAKEHOLDERS:
DESCRIPTION:
PRE-CONDITION:
TRIGGER:
TYPICAL COURSE of
EVENTS
Check-Out Equipment
USE-CASE TYPE
Business Requirements:
þ
High
Cause & Effect Analysis and Personal
Interviews
Maintenance Staff
•
•
Equipment Depot
System
•
Maintenance Supervisor
This use-case provides typical steps for checking out equipment.
Maintenance staff member is login to any one of the two warehouse terminals.
User submitted a Check-Out Equipment request.
Actor Action
System Response
Step 1. User enters in equipment
desired.
Step 2. System verifies user’s employment
status (not terminated) and skill level. Skill
level must be equal to or greater than
equipment classification.
Step 3. System checks availability of
equipment (not all checked out).
Step 4. System updates the Checked Out
List.
Step 5. System deducts any supplies from
inventory.
Step 6. System prints a Check Out Receipt.
Step 7. User takes receipt to
Equipment Depot counter.
Step 8. Equipment Depot staff may check
Lost and Damaged Equipment Report
against employee.
Discovering Requirements
21
Step 9. Equipment Depot honors check out
request.
Equipment Depot staff already automatically notified of the Maintenance Staff
having too many checked out equipment, or history of damaged, lost equipment
by Exception Problem Report.
Equipment Depot refuses to honor check out with out supervisor approval.
ALTERNATE COURSES:
CONCLUSION:
POST-CONDITION:
BUSINESS RULES
•
•
IMPLEMENTATION
CONTRAINTS AND
SPECIFICATIONS
ASSUMPTIONS:
OPEN ISSUES:
Maintenance Supervisors setup up constraints for Exception Problem
Reports (define x).
Safety committee determines the appropriate skill level for using equipment.
Possibly have system refuse to submit a Check Out Receipt based on Exception
Problem Report.
6. Avoiding Over Analysis
Required Depth of
Understanding
When discovering and documenting requirements, avoid trying to understand too
many details. The condition of a systems analysis performing excessive modeling that
slows progress is called analysis paralysis. To address the problem of analysis paralysis,
one could use the same solution proposed for understanding system architectures in a
1987 lecture by Bob Spinrad at the University of California. This is a graphical answer
shown below (Maier, p. 8). A chart with the vertical axis measuring the depth of
understanding, and the horizontal axis listing the disciplines or subsystems that needs to
be understood. Notice some disciplines need less depth of understanding. How does an
analyst know what details of what disciplines are critical? In some cases it will be
obvious; in other cases experience will be required.
A
B
C
D
Disciplines and Subsystems
E
Discovering Requirements
22
7. Prioritizing Requirements
Some requirements provided are within the solution scope but unclear whether it is
mandatory. Users have a tendency to label too many requirements as mandatory. A
quick test to determine if a list of requirements is mandatory or not is attempting to rank
them. You should not be able to rank any requirement that you absolutely must have
(Azani).
Regarding priority, assign the difficult requirements highest priority. In risk
management terms, if the hard parts of construction are left for last, the risk level and
uncertainty will remain high. Justification for the system may begin to erode over time.
In the private sector such a system not yet demonstrating capability would be considered
high-risk capital venture. In government acquisition, political challenges will occur
(Maier, p. 44).
8. Knowing Requirements Conflict
According to a Georgia State University study (Robinson, 2003), two basic forces
give rise to requirements conflict, technical and social. The authors recommend an
emerging concept of Requirements Interaction Management (RIM) to address these
conflicts. This paper only desires to show what causes conflict, and will not discuss
RIM. Much work is needed to evolve RIM into a mature discipline and RIM approaches
must be unified to become widely accepted.
•
•
Technical difficulties that lead to requirements conflict:
– Voluminous requirements
– Changing requirements and analysts
– Complex requirements
Social difficulties that lead to requirements conflict:
– Conflicting stakeholder requirements
– Changing and unidentified stakeholders
– Changing expectations
9. Defining Open Systems
The concepts of open and closed systems were developed by the biologist Ludwig
Von Bertalanfly (Frank, 2002). These biology system theories were later applied to
organizational management and engineering. Closed systems are self-reliant, and open
systems must exchange with its environment for survival. From an engineering
perspective, closed systems are very proprietary, whereas open systems are nonproprietary
To reduce the risk of uncertainty of a system’s end purpose, select options to build in and
maintain. This will allow early decisions to be changed or modified later. One such
Discovering Requirements
23
strategy for software is use of open architectures (Maier, p43). This could allow tailoring
future customer-expressed needs without major changes.
Open systems architecture can be obtained using the following design principles (Azani):
•
•
•
•
Use a modular approach to architecture and design
Acquire components, instead of building
Identify critical interfaces, and use industry recognized standards for these
interfaces
Verify all requirements permit the wider use of open standards
10. Conclusion
In his book, Software Development: Building Reliable Systems, author Marc
Hamilton (1999) published the ten commandments of successful software
development. The first two are, “thou shalt start development with software
requirements” and, “thou shalt honor thy users and communicate with them often”.
This paper agrees that successful software development does start with and include
the users and their requirements. After all, it is the users who will be using the
system every day for several years, or more.
When analyzing a system, the analyst is contributing to customer satisfaction
because the delivered system would be built exactly how the originating requirement
stated. This customer satisfaction comes from identifying all the people who have
valid inputs, understanding their needs from their perspective, asking the right
questions, listening to all responses, researching the correct documents, and then
expressing the information collected in a simple, unambiguous manner, while sorting
unnecessary requirements. Case in point: In the 1960s, IBM wrote the requirements
for the 360 computer system, a family of models. This family approach allowed the
system 360 to grow with owners and users by upgrading from a smaller model to a
larger, compatible model. As a matter of fact, it didn’t use the virtual memory
operating system that was being introduced at the time. Soon, the virtual memory
approach dominated operating systems. Yet, the system 360 was widely successful
for many years to come. So successful it drove General Electric out of the computer
business. The 360 was not necessarily the best technological computer, but a
computer that satisfied customer needs and wants, which was to have a computer
system to grow with the company.
Today the requirement in this case seems simple and obvious, but in the early
days of mainframes, it wasn’t so obvious. Hence, the need for requirements
analysis—to discover what isn’t so obvious.
Discovering Requirements
24
11. References
Azani, Cyrus. (n.d.). Open System Development Strategy. University of Maryland
University College. Unpublished.
Buede, Dennis. (2000). The Engineering Design of Systems: Models and Methods. John
Wiley and Sons: New York: NY
Fowler, M., and Scott, K. (1999). UML Distilled: A Brief Guide to the Standard Object
Modeling Language. 2nd Edition. Addison Wesley:
Frank, Michael. (2002). The History of American Management Thought: A Perspective
and Analysis. The Development of Management Theory and Practice in the United
States. Pearson Custom Publishing: Boston, MA
Hamilton, Marc. (1999). Software Development: Building Reliable Systems. Prentice
Hall.
Lewicki, R., Saunders, D., Barry, B., Minton, J. (2004). Essentials of Negotiation. 3rd
Edition. Irwin McGrawHill: New York: New York
Maier, M., and Rechtin, E. (2002). The Art of Systems Architecting. 2nd Edition. CRC
Press: Boca Raton, Florida.
Robinson, W., Pawlowski, S., Vecheslav, V. (2003, June). Requirements Interaction
Management. Georgia State University. ACM Computing Surveys. Vol. 35, No. 2, pp.
132-190. Retrieved on May 26, 2004, from database ACM Digital Library.
Sumner, David. (2004, may). BPL: What Now? QST Amateur Radio Journal. American
Radio Relay League. Volume 88, Number 5, P. 9.
Whitten, J., Bentley, L., Dittman, K. (2004). Systems Analysis and Design Methods. 6th
Edition. McGraw Hill/Irwin: New York, NY.
Download