Professional Documents
Culture Documents
SE Unit3
SE Unit3
• Requirement describe how a system should act, appear or perform. Requirements differ from
one user to another and from one business process to another.
• Requirements help to understand the behaviour of a system, which is describe by various
tasks of the system.
• For example, some of the tasks of a system are to provide a response to input values,
determine the state of data objects and so on.
• Requirements are considered prior to the development of the software.
• Requirements are classified into following three categories.
1. Functional requirements
2. Non-function requirements
3. Domain requirements
1. Functional Requirement
• The functional requirements also known as behavioural requirements. It describe the
functionality or services that software should provide.
• So, function requirement describe the interaction of software with its environment and
specify the inputs, outputs, external interfaces and the other functions that should be included
in the software.
• Its services provided by functional requirements specify the procedure by which software
should react to particular inputs or behave in particular situations.
• So IEEE defined function requirements as “a function that a system or component must be
able to perform”.
• Example : Online Banking System
o The user of the bank should able to search the desired services from the available
ones.
o There should be appropriate documents for users to read. This implies that when a
user wants to open an account in the bank, the forms must be available so that the
user can open an account.
1
UNIT-3 REQUIREMENT ANALYSIS
2. Non-Functional Requirements
• The non-functional requirements also known as quality requirements and it is related to
attributes such as reliability and response time.
• Non-functional requirements arise due to user requirements, budget constraints, and
organizational policies and so on.
• These requirements are not related directly to any particular function provided by the system.
• Non-functional requirements should be accomplished in software to make it perform
efficiently for example, if an airplane is unable to fulfil reliability requirements then it is not
approved for safe operation.
• Following three are non-functional requirements.
1. Product requirements
2. Organizational requirements
3. External requirements
Product requirements
• These requirements specifies how a software product performs.
• Efficiency requirements : it describe the extent to which the software makes optimal use of
resources, the speed with which the system executes and the memory it consumes for its
operations
• For example: the system should be able to operate at least three times faster than the existing
system.
• Portability requirements: it describe the ease with which software can be transferred from
one platform to another.
• For example: it should be easy to port the software to a different operating system without
the need to redesign the entire software.
• Usability requirements: it describe the ease with which users are able to operate the
software.
• For example: the software should be able to provide access to functionality with fewer
keystrokes and mouse clicks.
2
UNIT-3 REQUIREMENT ANALYSIS
Organizational Requirements
• These requirements are derived from the policies and procedures of an organization.
• Delivery Requirements: it specify when the software and its documentation are to be
delivered to the user.
External Requirement
• These requirements include all the requirements that affect the software or its development
process externally.
• Ethical requirements: it specify the rules and regulations of the software so that they are
acceptable to users.
• Legislative requirements: it ensure that the software operates within the legal jurisdiction.
• For example, pirated software should not be sold.
3. Domain Requirements
• Requirements which are derived from the application domain of a system instead from the
needs of the users are known as domain requirements.
• These requirements may be new functional requirements of specify a method to perform
some particular computations.
• In addition, these requirements include any constraint that may be present in the existing
functional requirements.
• As domain requirements reflect he fundamentals of the application domain, it is important to
understand these requirements. And also, if these requirements are not fulfilled, it may be
difficult to make the system work as desired.
• A system can include a number of domain requirements. For example, it may comprise a
design constraint that describe the user interface, which is capable of accessing all the
database used in a system.
• It is important for a development team to create databases and interface designs as per
established standards.
• Similarly, the requirements of the user, such as copyright restrictions and security mechanism
for the files and documents used in the system are also domain requirements.
3
UNIT-3 REQUIREMENT ANALYSIS
1. Interviews
• Interview is fact finding technique, where two parties work together, one person act as an
interviewer and other as interview.
• The person who collects information is known as system analyst, who plays the role of
interviewer.
• System analyst collects fact from individuals who are known as interviewees. The
interviewees are usually present user of the existing system or possible user of the proposed
system.
• The interviewees may be manager or employee who offer data for the proposed system.
• There are two type of interview
o Structured
o Unstructured
Structured: structured interviews are those where the interviewee is asked a standard set
of questions in a particular order. All interviewees are asked the same set of questions.
Unstructured: the unstructured interviews are undertaken in a question and answer
format. This is of a much more flexible nature than the structured interview and can be
very rightly used to gather general information about the system.
• Advantages:
o Beneficial for those individuals who cannot communicate effectively in wrting.
o Allow the analyst to determine areas of confusion, impractical prospect and even
indicates to the points for resistance to the proposed system.
o It is considered as the best qualitative(opinions, policies and subjective description)
source of information gathering.
o Permits the interviewees to reply freely and openly to any ype of questions.
• Disadvantages:
o Interviews are considered as time consuming and costly fact finding technique.
o Interviews can be subject to bias if the interviewer has a closed mind about the
difficulty.
o This technique fails if suitable environment is not provided for conduction interview.
4
UNIT-3 REQUIREMENT ANALYSIS
2. Questionnaires
• Questionnaires are a further method of information gathering where the potential user of the
system are given questionnaires to be filled up and returned to the analyst.
• Questionnaires are special purpose documents that allow the analyst to collect information
and opinions from respondents.
• Questionnaires can help you collect information about what people do, what they have, what
they think, know, feel or want. Using this techniques we gather facts about the existing
system from number of persons.
• There are two types of questionnaires
o Structured
o Unstructured
• Advantages
o Questionnaires is considered as an economical way of collecting facts from a huge
number of people.
o If it is well formatted and designed, then the results can be easily analysed and
computerized.
o Respondents get time to think over the questions and provide more accurate data.
• Disadvantages
o Good questionnaires are difficult to construct.
4. Observation
• Another information gathering technique used by the system analyst is known as one site
observation or direct observation, where the analyst personally goes to the site and discovers
the functioning of the system.
• As an observer, the analyst can gain direct knowledge of the activities, operations, processes
of the system on site. Hence here the role of an analyst is of an information seeker.
• This technique is useful when on needs to actually observe how documents are handled, how
operations and activities are carried out.
5
UNIT-3 REQUIREMENT ANALYSIS
• Advantages
o Facts gathered using this technique is highly reliable.
o Inexpensive way of collecting data.
o Using this technique, the system analyst can make out tasks that have been missing
or wrongly illustrated by other fact finding techniques.
• Disadvantages
o This technique is too time-consuming and the analyst should not jump to conclusions
or draw assumption from minute samples of observation rather the analyst should be
more patient in gathering the information.
• Advantages:
o JAD actively involves users and management in the development project.
o JAD helps to avoid the requirements from being too specific and that cause trouble
during implementation and acceptance.
o JAD reduce the amount of time required to develop systems since it eliminates
process delay and misunderstandings and improved system quality.
• Disadvantages:
o Slow communication and long feedback time.
o Weak or no support from upper management.
o Bad documentation.
6
UNIT-3 REQUIREMENT ANALYSIS
40 % or more of all effort is allocated to front end design and analysis tasks.
A same % is applied to back-end testing. You can correctly infer which coding is de-emphasized.
A real Project Manager, System Analyst or Senior Software developer or engineer will
understand about its benefit deeply.
Because you will not able to design database properly without having proper knowledge of the
project.
Developers will face many difficulties and programming will time consuming without a good
database design.
So, project analysis and design is more important part at the beginning of development. If your
project analysis and database design is good, then your programming time will be reduced.
And after programming, most of the companies deliver software without proper testing.
Thus, client become angry because of lots of errors.
Developers provide lots of time for programming, but they don't provide 20% of programming
time for testing. So result is - client find lots of error after software delivery.
You will able to develop error-free software only if you do proper analysis and design at the
beginning and do a proper testing at the end. So best time distribution is 40-20-40 ratios. This
ratio can vary little bit. But bigger changes will be harmful for you.
7
UNIT-3 REQUIREMENT ANALYSIS
Characteristics of SRS
• Software Requirement Specification have following characteristics
Correct
• SRS is correct when all user requirements are stated in the requirements document.
• The stated requirements should be according to the desired system.
• This implies that each requirement is examined to ensure that it (SRS) represents user
requirements.
• Note that there is no specified tool or procedure to assure the correctness of SRS. Correctness
ensures that all specified requirements are performed correctly.
Complete
• SRS is complete when the requirements clearly define what the software is required to do.
• This includes all the requirements related to performance, design and functionality.
Unambiguous
• SRS is unambiguous when every stated requirement has only one interpretation. This
implies that each requirement is uniquely interpreted.
• In case there is a term used with multiple meanings, the requirements document should
specify the meanings in the SRS so that it is clear and easy to understand.
Ranked for importance/stability
• All requirements are not equally important; hence each requirement is identified to make
differences among other requirements.
• For this, it is essential to clearly identify each requirement. Stability implies the probability
of changes in the requirement in future.
Modifiable
• The requirements of the user can change; hence requirements document should be created
in such a manner that those changes can be modified easily, consistently maintaining the
structure and style of the SRS.
Traceable
• SRS is traceable when the source of each requirement is clear and facilitates the reference
of each requirement in future.
• For this, forward tracing and backward tracing are used.
• Forward tracing implies that each requirement should be traceable to design and code
elements.
8
UNIT-3 REQUIREMENT ANALYSIS
• Backward tracing implies defining each requirement explicitly referencing its source.
Verifiable
• SRS is verifiable when the specified requirements can be verified with a cost effective
process to check whether the final software meets those requirements.
• The requirements are verified with the help of reviews. Note that unambiguity is essential
for verifiability.
Consistent
• SRS is consistent when the subsets of individual requirements defined do not conflict with
each other.
• For example, there can be a case when different requirements can use different terms to refer
to the same object.
• There can be logical or time-based conflicts between the specified requirements and some
requirements whose logical or time-based characteristics are not satisfied.
• For instance, a requirement states that an event 'a' is to occur before another event 'b'. But
then another set of requirements states (directly or indirectly by transitivity) that event 'b'
should occur before event 'a'.
Components of SRS
• Following are some components of SRS
1. Functional requirements
2. Performance requirements
3. Design constraints
4. External interface requirements
Functional Requirements
• Functional requirements specify what output should be produced from the given inputs.
• So they basically describe the connectivity between the input and output of the system.
• For each functional requirement:
o A detailed description of all the data inputs and their sources, the units of
measure, and the range of valid inputs be specified:
o All the operations to be performed on the input data obtain the
output should be specified, and
o Care must be taken not to specify any algorithms that are not parts of the
system but that may be needed to implement the system.
o It must clearly state what the system should do if system behaves
abnormally when any invalid input is given or due to
some error during computation. Specifically, it should specify the
behaviour of the system for invalid inputs and invalid outputs.
o
Performance Requirements (Speed Requirements)
• This part of an SRS specifies the performance constraints on the software system. All the
requirements related to the performance characteristics of the system must be clearly
specified.
• Performance requirements are typically expressed as processed transaction s per second or
response time from the system for a user event or screen refresh time or a combination of
these.
9
UNIT-3 REQUIREMENT ANALYSIS
• It is a good idea to pin down performance requirements for the most used or critical
transactions, user events and screens.
Design Constraints
• The client environment may restrict the designer to include some design constraints that
must be followed.
• The various design constraints are standard compliance, resource limits, operating
environment, reliability and security requirements and policies that may have an impact on
the design of the system.
• An SRS should identify and specify all such constraints.
Standard Compliance: It specifies the requirements for the standard the system must
follow. The standards may include the report format and according procedures.
Hardware Limitations: The software needs some existing or predetermined hardware to
operate, thus imposing restrictions on the design. Hardware limitations can includes the
types of machines to be used operating system availability memory space etc.
Fault Tolerance: Fault tolerance requirements can place a major constraint on how the
system is to be designed. Fault tolerance requirements often make the system more complex
and expensive, so they should be minimized.
Security: Currently security requirements have become essential and major for all types of
systems. Security requirements place restriction s on the use of certain commands control
access to database, provide different kinds of access, requirements for different people,
require the use of passwords and cryptography techniques, and maintain a log of activities
in the system.
External Interface Requirements
• For each external interface requirements:
o All the possible interactions of the software with people hardware and other software
should be clearly specified,
o The characteristics of each user interface of the software product should be specified
and
o The SRS should specify the logical characteristics of each interface between the
software product and the hardware components for hardware interfacing.
10
UNIT-3 REQUIREMENT ANALYSIS
• Introduction:
(i) Purpose of this Document – At first, main aim of why this document is necessary and
what’s purpose of document is explained and described.
(ii) Scope of this document –In this, overall working and main objective of document and
what value it will provide to customer is described and explained. It also includes a
description of development cost and time required.
(iii) Overview –In this, description of product is explained. It’s simply summary or overall
review of product.
• General description: In this, general functions of product which includes objective of user,
a user characteristic, features, benefits, about why its importance is mentioned. It also
describes features of user community.
• Interface Requirements: In this, software interfaces which mean how software program
communicates with each other or users either in form of any language, code, or message are
fully described or explained. Examples can be shared memory, data streams, etc.
• Design Constraints: In this, constraints which simply means limitation or restriction are
specified and explained for design team. Examples may include use of a particular
algorithm, hardware and software limitations, etc
• Preliminary Schedule and Budget: In this, initial version and budget of project plan are
explained which include overall time duration required and overall cost required for
development of project.
11