Chapter3 Requirement Analysis PDF
Chapter3 Requirement Analysis PDF
What is a requirement?
Table Of Contents
n a normal software engineering
scenario, a project goes through the
following steps:
Planning
Requirements Analysis
Requirements Specification
Systems Design
Software Implementation
Software Testing
Software Release and
Software Maintenance
These three steps are highly cohesive and iterative. This is the 'real secret' behind a good
software requirement practice. Thus, a real analyst would always flip back and forth
between information gathering and analysis. Based on that, an analyst would suggest
implementations. Sometimes some other terms are associated with the above steps. In
particular the following three terms are really substantial.
Elicitation
In elicitation one should identify the users requirements.
Analysis
Here one should analyse and develop this information to create an unambiguous picture
of the system to be built.
Specification Stage
This involves the thorough documentation of the scenario through reports and models.
Another important term used it system. Now what is a system?
A system is a set or arrangements of elements that are organised to accomplish some predefined goal by processing information. Software, hardware, people, database,
documentation and procedures all constitute what is known as the components of a
system. It is important to understand that even if a system is a non-trivial system, its
needs must be specified.
For instance, one can state that a bridge must support at least 1,000 tons, must be 30
metres wide, etc. In that sense, the specification is a precise statement of the requirements
of that system. Thus we can say that a Requirements Specification is an agreement
between the end user and the system developer.
Before going ahead it is important to know that REQUIREMENTS can be broadly
classified into two categories:
Functional requirements are those that relate directly to the functioning of the
system.
Non-Functional requirements are those which cover aspects of the system such as
user-interface, performance, quality issues, interfaces to other systems, and
security.
Checkpoint
1. What is the difference between Software Elictitation and Software Analysis?
2. One of the major components of the requirements analysis study is to outline a clear cut
picture of 'specifications'. As said earlier, Requirements Specification is an agreement
between the end user and the system developer. One should keep in mind the fact that
these specifications must be consistent.
Suppose you were asked to define the specifications of a software system that your
team is going to first conceptualise and then build. Suppose this software is nothing but a
word processor. Can you define two consistent software specifications for such a system.
What is a requirement?
Copyright 2002 RMIT Computer
Science
All Rights Reserved
ISYS-1117
Requirements analysis - Prelude
Requirement scenarios
Table Of Contents
Furthermore, Requirements Analysis is the process of sitting down and thinking carefully
about what your system should be able to do. Consider an example from your day-to-day
scenario - Starting with looking at your personal requirements, this essential first step of
buying a PC lays the foundation for looking at the PC's requirements, and then of course,
determining the characteristics of the equipment that will fulfill these needs. Planning and
analysis activities are considered by many to be dry and uninteresting compared to getting
'hands on' and playing with the hardware. Or even better, actually buying something and
getting to take it home and plug it in! However, it is absolutely essential that this first step
is not skipped over. Let us look at some of the requirements analysis that you need to go
through before you actually buy a PC.
Now these are some of the questions that might rock someone's mind. It is important to
see that such an analysis at the inception stage of a project is very important for its later
success. Be it a large or small project, one from your daily live - requirements analysis is
essential.
Understand the problem before you begin to create the analysis model.
Develop prototypes after you have outlined the basic requirements of the system.
Record the origin and reason of every requirement.
Use multiple views of requirements.
Prioritize requirements.
Work to eliminate ambiguity.
Thus we can see that, although there are different theories, they all follow the same path.
Requirement scenarios
Copyright 2002 RMIT Computer
Science
All Rights Reserved
ISYS-1117
What is a requirement
Table Of Contents
Checkpoint
1. What are some typical mistakes an organization might commit while analysing
requirements?
2. A developing team member argues-"...Instead of analyzing user requirements, we will
make a prototype and test that with users." How will you counter-argue them?
What is a requirement
ISYS 1117 - Software Engineering
Analysis and Design
Online Tutorials
ISYS-1117
Requirement scenarios
Interviewing
Table Of Contents
1.0 - Requirements Analysis - Prelude
1.1 - What is a requirement
2.0 - Requirement scenarios
3.0 - Fact finding techniques
3.1 - Interviewing
3.2 - JAD
3.3 - JAD & Questionnaire
4.0 - Specification & SRS
4.1 - SRS
5.0 - Functional vs Non-functional
requirements
6.0 - Specification Review
7.0 - References & Acknowledgments
Interviewing
"Any fact facing us is not as important as our attitude toward it,
for that determines our success or failure."
- Norman Vincent Peale
An Interview is one of the most important and basic techniques to gather information. Normally
they are conducted one-to-one , but sometimes group interviews might also be held. But before
interviewing it is important for the analyst to make sure they are interviewing the right people. In
order to know that, it is important to clearly outline all the key stakeholders of the intended
Selecting interviewees
Desigining the Interview questions
Preparing for an Interview
Conducting the Interview
Follow-up
One should start with creating an interviewing schedule. This should list all the interviewees along
with the time and purpose of their Interview. It is very important to have a clear opinion on who is
going to be interviewed. This can be crucial to the success of the project. As an example,
MICROSOFT, before even launching any new product, undergoes a massive interviewing
session with a lot of target end-users. This gathers a lot of information, even before they have
embarked upon a project. This gives them a cutting edge over their competitors.
While Interviewing the right people, analyst can come up with more ideas and some facts that
have reamined latent even during the preliminary stages of requirements elicitation phase.
The next important step is how to design interview questions?
Normally the questions fit three categories:
Open-ended questions: questions that leave room for elaboration on the part of the
interviewee.
Closed-ended questions: questions which require a specific answer such as YES or NO.
Probes: are the ones that follow up or supplement the above questions, asking for more
detail.
Requirement scenarios
ISYS 1117 - Software Engineering
Analysis and Design
Online Tutorials
Interviewing
Copyright 2002 RMIT Computer
Science
All Rights Reserved
ISYS-1117
Fact finding techniques
JAD
Table Of Contents
Open-ended
Breaking the ice in an interview; when
respondents' own words are important;
when the surveyor doesn't know all the
possible answers.
Closed-ended
Collecting rank ordered data; when all
response choices are known; when
quantitative statistical results are desired.
Likert-scale
To assess a person's feelings about
something.
Multiple-choice
When there are a finite number of options
(remember to instruct respondents as to
the number of answers to select).
Ordinal
To rate things in relation to other things.
Categorical
When the answers are categories, and
each respondent must fall into exactly one
of them.
Numerical
For real numbers, like age, number of
months, etc.
JAD
Copyright 2002 RMIT Computer
Science
All Rights Reserved
ISYS-1117
Interviewing
Table Of Contents
To identify the problem, propose elements of the solution and negotiate different
approaches to the problems uncovered.
To develop an initial set of user requirements in an atmosphere that is conducive to
the accomplishment of the goal.
How do you design a system that clients really want? You can't. You have to help clients
design the system they want. If you are telling business users how to solve their problems,
you are missing the boat. You have to establish a relationship with the client to get behind
what they are saying the problem is in order to discover the true underlying problem.
The real problem is typically very different from the one first perceived by the client.
Don't just be a problem solver...look deeper. Don't assume that one person ever knows
everything about a problem.
What is a JAD?
JAD Definition: Joint Application Development (JAD) is a management
process which helps IS work effectively with users to develop information
technology solutions that really work.
JAD Purpose: to define the project, design a solution, and monitor the
project until it reaches completion.
JAD Philosophy: The JAD process is based on four simple ideas:
1. People who actually do a job have the best understanding of that
job.
2. People who are trained in information technology have the best
understanding of the possibilities of that technology.
3. Information systems and business processes rarely exist in isolation - they transcend the confines of any single system or office and
effect work in related departments. People working in these related
areas have valuable insight on the role of a system within a larger
community.
4. The best information systems are designed when all of these groups
work together on a project as equal partners.
JAD Scope - The JAD should cover the complete development life cycle of
a system. The JAD is usually a 3 to 6 month well-defined project. For largescale projects, it is recommended that the project be approached
incrementally, and that separate JAD's be used for each increment.
and provide the necessary resources and support for the project.
Business Users - the intended users of the system being designed. They are
here because of their business expertise. There are two kinds of Business
Users; Real End Users and Big Picture Users.
Real End Users will have to use the new system to do their
jobs. Big Picture Users understand the standards and
methodologies of the business functions. It is important to
have both types of users. If you only have Big Picture Users
you will end up with a great theoretical model of how things
should work, but it may not work in practice. If you just have
Real End Users, you will get a good system for today, but it
may not work a year or two down the road.
Systems Analysts - Provide non-technical explanations that help other JAD
members understand and fully utilize the technology available. Monitor
design for ease of use/maintenance and adherence to standards. Provide
hardware/software development.
Important Question to Ask: Do I have all the affected customers/areas represented?
Project Leader - the project leader can make or break the project.
They need to be committed wholeheartedly to the project, and to have a
background knowledge of the business area and current or related
information systems. They also need to be committed to the company, and
to understand the implications of the project within the context of company
goals. They need to be enthusiastic and objective. They need to be sensitive
to political issues and able to draw out the opinions of the quiet members of
the group, and to not allow any single individual to dominate the group.
Project Leader Responsibilities
Clients - Clients are here because this is a system they use. They
understand how this system is used in the real world. They will help the
group understand all the tasks handled by the system, correct any
misperceptions, search for oversights and supply details. Remember, no
detail is too small to mention. Sometimes minor details make a major
difference in the way the system should work.
Interviewing
ISYS-1117
JAD
Table Of Contents
Success Factors
session will shut down the creative process. The best idea may never
get said out of fear of being shot down.
Participation by everyone is very important. Encourage quieter
members to speak, they often have the best ideas. Don't allow 1 or 2
members to dominate. This is the facilitators responsibility as well
as the whole teams' responsibility.
Listen when others speak, don't interrupt or talk while others are
talking (side conversations may have great ideas...we don't want to
miss them).
Maintain a parking lot to record important issues that are not within
the scope of this project.
Don't hold meetings just to hold meetings. Only meet when there is
something substantial to talk about.
Don't let more than 3 or 4 weeks pass between meetings, you will
loose momentum. Remember, each meeting is a motivation for the
team to complete tasks assigned. It is no fun to come to a meeting
and admit you didn't finish your task.
Decisions are reached by consensus. We are here to create a win/win
solution...win/lose solutions aren't good enough. You can reach
consensus by giving everyone three options:
Thumbs up - I agree
Thumbs down - I disagree
Thumbs sideways - I can support this idea
Pitfalls:
Questionnaires
Questionnaires are often used when there is a large group of people from whom the
information is needed. Normally a questionnaire is for the outside use of the organization.
The reach and scope covered can be much wider as compared to other methods of fact
finding. The steps involved with this mode of fact-finding are:
Designing the questionnaire is pretty much the same as designing an Interview-the only
difference is that while designing the questionnaire, it is important to keep in mind that
the questions should:
not be vague
self-explanatory
a proper mix of open, closed and probe category
be consistent in style
be as such that related questions are grouped together, so that it is easier for the
respondent.
begin with on some interesting note so that it motivates the respondent to answer
the whole questionnaire
not be very lengthy
provide anonymity to the user.
Just like a JAD or an interview session, a follow-up is important in order to gain from this
technique.
Have a look at a simple yet effective questionnaire - http://youtoo.agderforskning.no/questionnaire.htm
Checkpoints
1. What is Document Analysis?
JAD
ISYS 1117 - Software Engineering
Analysis and Design
Online Tutorials
ISYS-1117
JAD & Questionnaire
SRS
A specification that will not fit on one page of 8.5x11 inch paper cannot be understood. -Mark Ardis
Table Of Contents
Specifications
SRS
Specification
A specification is a representation of a requirement in a manner that will enable a
developer to successfully implement it in software. It describes WHAT is to be
implemented in terms that are unambiguous, complete and testable. The representation
may be:
natural language
graphical or diagrammatic
executable specification (prototype)
mathematical representation
Of course one can write good specifications or bad ones. Since specifications are used as
reference points during the product/concept implementation, it is important that
specifications are:
Checkpoint
SRS
Copyright 2002 RMIT Computer
Science
All Rights Reserved
ISYS-1117
Specification & SRS
Table Of Contents
I.
Introduction
A.System reference
B.Overall description
C.Software project constraints
II. Information Description
A. Information content representation
B. Information flow representation
III.Functional Description
IV. Behavioural Description
V. Validation and Criteria
A.Performance bounds
B.Classes of tests
C.Expected software response
D.Special Considerations
VI. Bibliography
VII.Appendix
The Introduction states the goals and objectives of the software.
The Information Description provides a detailed description of the problem that the
software must solve.
The Functional Description provides a narrative for each of the functions required to
solve the problem.
The Behavioural Description examines the operation of software as a result of external
events and internally generated characteristics.
The Validation and Criteria is the most important and it describes the result of all the
tests and other considerations.
IEEE also states that a good SRS must be :
Unambiguous
Complete
Consistent
Modifiable
Verifiable
Traceable
Usable during the Operation and Maintenance phase
SRS must say certain things. For example, software developed from an SRS that
fails to specify that error messages will be provided, will probably fail to satisfy
the customer.
It must say those things in a certain way. For example, software developed from an
SRS that fails to specify the format and content of error messages and instead is
developed from a vague and non-quantifiable requirement such as All error
messages will be helpful will probably be unsatisfactory as what is helpful for one
person can be a severe aggravation to another person.
SRS should NOT describe any design, verification, or project management details,
EXCEPT for required design constraints.
Checkpoint
1. What are some constraints that you can mention in a SRS document?
2. Outline some major difficulties that are encountered during analysis process?
3. What is the importance of having an SRS?
ISYS-1117
SRS
Specification review
"Success is more a function of consistent common sense than it is of genius. --An Wang
Table Of Contents
lease understand that Functional
requirements capture the intended
behavior of the system. This behavior
may be expressed as services, tasks or
functions the system is required to perform.
In product development, it is useful to
distinguish between the baseline
functionality necessary for any system to
compete in that product domain, and
features that differentiate the system from
competitors products, and from variants in
your companys own product line/family.
Features may be additional functionality, or differ from the basic functionality along some
quality attribute (such as performance or memory utilization). One strategy for quickly
penetrating a market is to produce the core, or stripped down, basic product, adding
features to variants of the product to be released shortly thereafter. This release strategy is
obviously also beneficial in information systems development, staging core functionality
for early releases and adding features over the course of several subsequent releases. In
many industries, companies produce product lines with different cost/feature variations
per product in the line, and product families that include a number of product lines
targeted at somewhat different markets or usage situations. What makes these product
lines part of a family, are some common elements of functionality and identity. A
platform-based development approach leverages this commonality, utilizing a set of
reusable assets across the family. These strategies have important implications for
software architecture. In particular, it is not just the functional requirements of the first
product or release that must be supported by the architecture. The functional requirements
of early (nearly concurrent) releases need to be explicitly taken into account. Later
releases are accommodated through architectural qualities such as extensibility,
flexibility, etc. The latter are expressed as non-functional requirements. Use cases have
quickly become a widespread practice for capturing functional requirements. This is
especially true in the object-oriented community where they originated, but their
applicability is not limited to object-oriented systems.
SRS
ISYS 1117 - Software Engineering
Analysis and Design
Online Tutorials
Specification review
Copyright 2002 RMIT Computer
Science
All Rights Reserved
ISYS-1117
Functional vs Non-functional requirements
Reviewing has one advantage over suicide: in suicide you take it out on yourself; in
reviewing you take it out on other people. George Bernard Shaw (1856 - 1950)
Table Of Contents
Missing requirements
Consistency among requirements
Requirements that are ambiguous
Requirements that are not correct
The value of each requirement to the customer
Factors that will increase project risk
Look for statements that imply certainty (eg always,every,all,none,etc.), then ask
for proof
Once the review has been completed, the software is signed off by both client and
developer. The SRS becomes the contract for software development. Changes in
requirements requested after the specification is finalised are not eliminated, but the client
knows that each after-the-fact change is an extension of software scope and therefore can
increase cost and/or protract the schedule.
ISYS-1117
Table Of Contents
1.0 - Requirements Analysis - Prelude
1.1 - What is a requirement
2.0 - Requirement scenarios
3.0 - Fact finding techniques
3.1 - Interviewing
3.2 - JAD
3.3 - JAD & Questionnaire
4.0 - Specification & SRS
4.1 - SRS
5.0 - Functional vs Non-functional
requirements
6.0 - Specification Review
7.0 - References & Acknowledgments
The following books were useful during the preparation of this material: