Funding for 'IT Lab' Project, Phase 1: Progress of sticker sales. Purchase a sticker to help us reach our target.Updated: 2010-02-28 11:53
Software Requirements: An Introduction

by Anupama A. Weerabahu
An Introduction
Here
arises the need for the development of computer systems which caters to
the individual requirement. When we take as a whole, developing
computer systems for each of the different requirements does not give
expected return for the investment. Thus there are common software
written which covers considerable amount of requirements of people and
they are together packed with moderate hardware, so that individuals
can afford it (For an example, Word processing packages are built to
cater for needs of word processing). But when it comes to organizations
or institutions this is not the case. There are specific needs of
organizations which they need to satisfy (Financial Systems and ERP
Systems). In that case we need to write dedicated pieces of software
and assemble platforms capable enough to run that software. To be used
efficiently, all computer software needs certain hardware components or
other software resources to be present on a computer system. Thus now
we understand that, we cater the human needs through computer systems
and in order to satisfy their needs we need to clearly articulate their
requirement, which we call the ‘System Requirement’ which discusses the
software as well as hardware aspect of the solution.
In the articles that we start from today, we will give much emphasis to ‘Software Requirements’ as opposed to ‘Hardware Requirements’. Today we will try to understand what ‘Requirements’ in the context of software are and its classification.
What is a Requirement?
A
requirement for a computer system specifies what we want or desire from
a system. For a business in particular this is, "What we want or desire
from a system, which we believe will deliver you a business advantage".
For an example, if we wish to have a Library Management Software for
our library at school or university, one of the requirement would be to
record the borrowings and lending of books to registered pupils. That
is one of the desires that we need to fulfill from the software, hence
a requirement.
A formal definition can be given to ‘Requirement’ as follows:
“A
condition or capability needed by a user to solve a problem or achieve
an objective. The set of all requirements forms the basis for
subsequent development of the system or system component.”
Now we know that requirements are the things that the product must do to achieve its purpose. We can clearly identify the following types of requirements when we define software requirement of a system.
Functional Requirements – These are the functions that the system is to execute; for example, registration of students in the Library Management System
Non-Functional Requirements – These are restrictions on the types of solutions that will meet the functional requirements. Sometimes non-functional requirements are called as constraints or quality requirements.
Functional Requirements
These
are the type of behavior we want the system to perform. If we were
buying grass cutter for our home, the functional requirement might be:
‘The grass cutter should be able to cut the grass in the garden.’
Similarly for a computer system we define what the system is to do. For example:
‘The Library Management System should store all the details of the books and copies in the library.’
The important point to note is that WHAT is wanted is specified, and not HOW it will be delivered.
Non-Functional Requirements
These
are the restrictions or constraints to be placed on the system and how
to build it. Non-functional requirements can be broadly split into two
types: performance and development.
A. Performance Constraints
These
constraints are how the system should perform when it is delivered. The
grass cutter example, without any constraints, might result in
solutions being offered for everything from a knife or scissor to an
axe. To restrict the types of solutions we might include these
performance constraints:
It must take be able to cut grass.
The must run with petrol.
The handle must be adjustable.
We may include more. Similarly for a computer system we might specify values for these generic types of performance constraints:
The response time for information to appear to a user.
The number of hours a system should be available.
The number of records a system should be able to hold.
The capacity for growth of the system.
The length of time a record should be held for auditing purposes.
For the book records example these might be:
Information should be made available and be stored in a maximum of 3 seconds.
The system should be available from 9am to 5 pm Monday to Friday.
The system should be able to hold a 100,000 book records initially.
The system should be able to add 10,000 records a year for 10 years.
A record should be fully available on the system for at least 7 years.
The important point with these is that they restrict the number of solution options that are offered to us by the developer.
B. Development Constraints
In
addition to the performance constraints we may include some development
constraints. These mainly fall in the field of project management, but
are still a restriction on the types of solution that can be offered.
There are three general types of development constraint:
Time - When a system should be delivered is the obvious time constraint.
Resource -
How much money is available to develop the system is obvious, but a key
resource would be the amount of time business staff could spend in
briefing system development staff.
Quality - Any standards which are used to develop the system including project management, development methods etc.
Who find the Requirement – Technical or Business People?
A good set of requirements is a must for any project in order it to be successful. This
is where many projects fail, in that they do not specify correctly what
the system should do. In fact many systems have just been given a
deadline for delivery, a budget to spend, and a vague notion of what it
should do.
The root of this problem is:
Computer systems developers rarely have as good an idea of how a business runs and should run, compared with a business user,
Business users have little idea of what a computer system could achieve for them.
As
a result paralysis sets in and business management time is concentrated
on meeting timescales and budgets, rather than what is going to be
delivered.
Thus
there should be set of people who can collect the user requirements
from the business people and present it to the technical people, in a
way that they can understand. These people are known as the Business
System Analysts, who bridges the gap between business and technical
domains, by acting as the liaison of the two parties.
Why Requirements are Important?
beginning,
what the end user expected from the respective product. This is to say
that the programming was fine and the developers did their job well -
only they did a different job from what they were supposed to.
The
definition of a successful program is that it is 100% compliant with
its initial requirements. But it those requirements contain mistakes,
are unclear or poorly defined, then there is very little one can do to
correct the problem later in the process. So, a bit of advance planning
simply doubles the success changes of any software project.
Thus
there needs to be a process to discover the correct requirement of the
end user and way to communicate it to the software developers. This
process is known as ‘Requirements Engineering’ and it has emerged as a
discipline in Software Engineering.
Summary
Today
we learnt that software requirements are what we expect a system to do
for us facilitating us to meet our desires. There are two types of
requirements as functional and non-functional. Requirements are so
important for the success of a project. There is a news discipline in
Software Engineering as Requirement Engineering, which we will discuss
from the next articles.
http://www.softwareprojects.org
http://www.coleyconsulting.co.uk
Post new comment