Chapter 3
Chapter 3
• User requirements
• Statements in natural language plus diagrams of the services the system
provides and its operational constraints. Written for customers.
• System requirements
• A structured document setting out detailed descriptions of the system’s
functions, services and operational constraints. Defines what should be
implemented so may be part of a contract between client and contractor.
1.Technical Feasibility
• Current resources hardware or software
• Technical skills and capabilities
2.Economic Feasibility
• Cost incurred on software development
• Cost of hardware ,software, development team, and training.
3. Operational Feasibility
Depends on human resource and whether software will operate after it
is developed.
B. Requirement Elicitation
• Requirements are Discovered , Articulated and Revealed from stake
holders
• It is perhaps the most difficult, most error-prone and most
communication intensive aspect of software development.
• It can be successful only through an effective customer-developer
partnership.
• It is needed to know what the users really need.
Requirements elicitation Activities:
1. Knowledge of the overall area where the systems is applied.
2. The details of the precise customer problem where the system are
going to be applied must be understood.
3. Interaction of system with external requirements.
4. Detailed investigation of user needs.
5. Define the constraints for system development.
Requirements elicitation Methods:
1. Interviews
2. Brainstorming Sessions
3. Facilitated Application Specification Technique (FAST)
4. Quality Function Deployment (QFD)
5. Use Case Approach
The success of an elicitation technique used depends on the maturity
of the analyst, developers, users, and the customer involved.
1. Interviews:
• Objective of conducting an interview is to understand the customer’s
expectations from the software.
• It is impossible to interview every stakeholder hence representatives
from groups are selected based on their expertise and credibility.
• Interviews maybe be open-ended or structured.
• In open-ended interviews there is no pre-set agenda.
• Context free questions may be asked to understand the problem.
• In structured interview, agenda of fairly open questions is prepared.
Sometimes a proper questionnaire is designed for the interview.
2. Brainstorming Sessions:
2. Use cases –
They describe the sequence of interactions between actors and the system.
They capture who(actors) do what(interaction) with the system. A complete
set of use cases specifies all possible ways to use the system.
3. A use case diagram
Graphically represents what happens when an actor interacts with a system. It
captures the functional aspect of the system.
A stick figure is used to represent an actor.
An oval is used to represent a use case.
A line is used to represent a relationship between an actor and a use case.
Use Case Diagram
C. Requirement analysis
• Requirement analysis is significant and essential activity after
elicitation.
• Analyze, refine, and scrutinize the gathered requirements to make
consistent and unambiguous requirements.
• Provide a graphical view of the entire system.
• After the completion of the analysis, it is expected that the
understandability of the project may improve significantly.
• Here, we may also use the interaction with the customer to clarify
points of confusion and to understand which requirements are more
important than others.
C. Requirement analysis
i) Draw the context diagram:
The context diagram is a simple model that defines the boundaries and interfaces of the proposed
systems with the external world.
It identifies the entities outside the proposed system that interact with the system.
The context diagram of student result management system is given below:
(ii) Development of a Prototype (optional):
• One effective way to find out what the customer wants is to construct
a prototype, something that looks and preferably acts as part of the
system they say they want.
• We can use their feedback to modify the prototype until the customer
is satisfied continuously. Hence, the prototype helps the client to
visualize the proposed system and increase the understanding of the
requirements. When developers and users are not sure about some of
the elements, a prototype may help both the parties to take a final
decision.
(iii) Model the requirements:
• This process usually consists of various graphical representations of
the functions, data entities, external entities, and the relationships
between them.
• The graphical view may help to find incorrect, inconsistent, missing,
and superfluous requirements.
• Such models include the Data Flow diagram, Entity-Relationship
diagram, Data Dictionaries, State-transition diagrams, etc.
(iv) Finalize the requirements:
• After modeling the requirements, we will have a better understanding
of the system behavior.
• The inconsistencies and ambiguities have been identified and
corrected.
• The flow of data amongst various modules has been analyzed.
Elicitation and analyze activities have provided better insight into the
system.
• Now we finalize the analyzed requirements, and the next step is to
document these requirements in a prescribed format.
D. Requirements verification and
validation:
Verification: It refers to the set of tasks that ensures that the software
correctly implements a specific function.
• Correctness:
User review is used to ensure the correctness of requirements stated in the SRS.
SRS is said to be correct if it covers all the requirements that are actually expected
from the system.
• Completeness:
Completeness of SRS indicates every sense of completion including the numbering
of all the pages, resolving the to be determined parts to as much extent as possible
as well as covering all the functional and non-functional requirements properly.
• Consistency:
Requirements in SRS are said to be consistent if there are no conflicts between any
set of requirements. Examples of conflict include differences in terminologies used
at separate places, logical conflicts like time period of report generation, etc.
Quality Characteristics of a good SRS
• Unambiguousness:
A SRS is said to be unambiguous if all the requirements stated have only 1
interpretation. Some of the ways to prevent unambiguousness include the use of
modelling techniques like ER diagrams, proper reviews and buddy checks, etc.
• Ranking for importance and stability:
There should a criterion to classify the requirements as less or more important
or more specifically as desirable or essential. An identifier mark can be used with
every requirement to indicate its rank or stability.
• Modifiability:
SRS should be made as modifiable as possible and should be capable of easily
accepting changes to the system to some extent. Modifications should be
properly indexed and cross-referenced.
Quality Characteristics of a good SRS
• Verifiability:
An SRS is verifiable if there exists a specific technique to quantifiably measure the
extent to which every requirement is met by the system. For example, a
requirement starting that the system must be user-friendly is not verifiable and
listing such requirements should be avoided.
• Traceability:
One should be able to trace a requirement to design component and then to code
segment in the program. Similarly, one should be able to trace a requirement to the
corresponding test cases.
• Design Independence:
There should be an option to choose from multiple design alternatives for the final
system. More specifically, the SRS should not include any implementation details.