Module-2 Notes Updated Compressed
Module-2 Notes Updated Compressed
Software Requirements
Functional & non-functional requirements
User-system requirement engineering process
Feasibility studies
Elicitation
validation & management
software prototyping
S/W documentation
Analysis and modelling
Requirement Elicitation
Software requirement specification (SRS)
The software requirements are description of features and functionalities of the target system.
Sommerville defines "requirement" as a specification of what should be implemented.
Requirements specify how the target system should behave. It specifies what to do, but
not how to do. Requirements engineering refers to the process of understanding what a
customer expects from the system to be developed, and to document them in a standard
and easily readable and understandable format.
It is necessary and important that before we start planning, design and implementation of
the software system for our client, we are clear about it's requirements. If we don't have a
clear vision of what is to be developed and what all features are expected, there would be
serious problems, and customer dissatisfaction as well.
1.2.1
Based on the target audience or subject matter, requirements can be classified into different types,
as stated below:
User requirements: They are written in natural language so that both customers can verify their
requirements have been correctly identified
System requirements: They are written involving technical terms and/or specifications, and are
meant for the development or testing teams.
1. Technical Feasibility
This assessment focuses on the technical resources available to the organization. It helps
organizations determine whether the technical resources meet capacity and whether the
technical team is capable of converting the ideas into working systems. Technical feasibility
also involves the evaluation of the hardware, software, and other technical requirements of
the proposed system. As an exaggerated example, an organization wouldn’t want to try to put
Star Trek’s transporters in their building—currently, this project is not technically feasible.
2. Economic Feasibility
This assessment typically involves a cost/ benefits analysis of the project, helping
organizations determine the viability, cost, and benefits associated with a project before
financial resources are allocated. It also serves as an independent project assessment and
enhances project credibility—helping decision-makers determine the positive economic
benefits to the organization that the proposed project will provide.
4. Operational Feasibility
This assessment involves undertaking a study to analyze and determine whether—and how
well—the organization’s needs can be met by completing the project. Operational feasibility
studies also examine how a project plan satisfies the requirements identified in the
requirements analysis phase of system development.
5. Scheduling Feasibility
This assessment is the most important for project success; after all, a project will fail if not
completed on time. In scheduling feasibility, an organization estimates how much time the
project will take to complete.
2. Requirement Gathering
• If the feasibility report is positive towards undertaking the project, next phase starts with
gathering requirements from the user.
• Analysts and engineers communicate with the client and end-users to know their ideas on
what the software should provide and which features they want the software to include.
3. Software Requirement Specification (SRS)
A software requirements specification (SRS) is a detailed description of a software system to
be developed with its functional and non-functional requirements.
The SRS is developed based the agreement between customer and contractors. It may include
the use cases of how user is going to interact with software system.
The software requirement specification document consistent of all necessary requirements
required for project development. To develop the software system, we should have clear
understanding of Software system. To achieve this, we need to continuous communication
with customers to gather all requirements.
SRS is a document created by system analyst after the requirements are collected from various
stakeholders.
Using the Software requirements specification (SRS) document on QA lead, managers creates
test plan.
It is very important that testers must be cleared with every detail specified in this document
in order to avoid faults in test cases and its expected results.
2. Elicitation
• Elicitation means to find the requirements from anybody.
• The requirements are difficult because the following problems occur in elicitation.
Problem of scope: The customer gives the unnecessary technical detail rather
than clarity of the overall system objective.
Problem of understanding: Poor understanding between the customer and
the developer regarding various aspect of the project like capability, limitation
of the computing environment.
Problem of volatility: In this problem, the requirements change from time to
time and it is difficult while developing the project.
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.
3. Elaboration
• In this task, the information taken from user during inception and elicitation are expanded
and refined in elaboration.
• Its main task is developing pure model of software using functions, feature and constraints
of a software.
4. Negotiation
This phase emphasizes discussion and exchanging conversation on what is needed and
what is to be eliminated.
In the negotiation phase, negotiation is between the developer and the customer and they
dwell on how to go about the project with limited business resources.
Customers are asked to prioritize the requirements and make guesstimates on the conflicts
that may arise along with it.
Risks of all the requirements are taken into consideration and negotiated in a way where the
customer and developer are both satisfied with reference to the further implementation.
In negotiation task, a software engineer decides the how will the project be achieved with
limited business resources.
To create rough guesses of development and access the impact of the requirement on the
project cost and delivery time.
The following are discussed in the negotiation phase:
Availability of Resources.
Delivery Time.
Scope of requirements.
Project Cost.
Estimations on development.
5. Specification
• In this task, the requirement engineer constructs a final work product.
The models used in this phase include ER (Entity Relationship) diagrams, DFD (Data Flow
Diagram), FDD (Function Decomposition Diagrams), and Data Dictionaries.
6. Validation: This is the sixth phase of the requirements analysis process. This phase focuses on
checking for errors and debugging. In the validation phase, the developer scans the specification
document and checks for the following:
All the requirements have been stated and met correctly
Errors have been debugged and corrected.
Work product is built according to the standards.
Requirements reviews/inspections.
Prototyping.
Test-case generation.
Automated consistency analysis.
7. Requirements Management:
This is the last phase of the requirements analysis process. Requirements management is a set
of activities where the entire team takes part in identifying, controlling, tracking, and
establishing the requirements for the successful and smooth implementation of the project.
In this phase, the team is responsible for managing any changes that may occur during the
project.
1.4.1 Definition
The development process starts with the analysis phase. This phase results in a specification
document that shows what the software will do without specifying how it will be done. The analysis
phase can use two separate approaches, depending on whether the implementation phase is done
using a procedural programming language or an object-oriented language.
1.4.2 Analysis Principles
The information domain must be represented and understood.
Models should be developed to give emphasis on system information, function and behaviour.
Models should uncover and give details of all the layers of the development process.
The function and the problem statement must be defined.
The various analysis models are flow oriented modelling, scenario-based modelling, class
based modelling, and behavioural modelling.
1.4.3 Need
Analysis modelling describes the operational and behavioural characteristics.
Shows the relationship between software interface and other software elements.
Provides the software developer the representation of the information, function, and
behaviour.
Coverts the design into the more descriptive models like use case, ER diagram.
Provides the customer and the developer the means to maintain the quality.
1.4.4 Objective
Describe what the customer requires.
Establish a basis for the creation of a software design.
Devise a set of requirements that can be validated once the software is built.
Analysis model bridges the gap between system level description and the overall system
functionality.
The model should focus on requirements that are visible within the problem or business
domain and be written as a relatively high level of abstraction.
Each element of the analysis model should add to the understanding of the requirements and
provide insight into the information domain, function, and behaviour of the system.
Delay consideration of infrastructure and other non-functional models until design.
Minimize coupling throughout the system.
Be certain the analysis model provides value to all stakeholders.
Keep the model as simple as possible.
The Figure 2 shows the structure of analysis modelling.
1.4.6 Structure/Elements of Analysis Model
Process Specification:
It stores the description of each function present in the data flow diagram. It describes the
input to a function, the algorithm that is applied for the transformation of input, and the output
that is produced. It also shows regulations and barriers imposed on the performance
characteristics that are applicable to the process and layout constraints that could influence
the way in which the process will be implemented.
Control Specification:
It stores additional information about the control aspects of the software. It is used to indicate
how the software behaves when an event occurs and which processes are invoked due to the
occurrence of the event. It also provides the details of the processes which are executed to
manage events.
Data modelling is the analysis of data objects that are used in a business or other context
and the identification of the relationships among these data objects.
Data modelling is a first step in doing object-oriented programming.
A data model can be thought of as a diagram or flowchart that illustrates the relationships
between data.
Data modelers often use multiple models to view the same data and ensure that all
processes, entities, relationships and data flows have been identified.
3. Relationships
Data objects are linked with each other in different ways. These links and connections of
data objects are known as relationships.
The two objects person and car are linked with the relationship as person owns the car as
shown in Figure.
5. Modality
Modality is 1 if an occurrence of the relationship is mandatory.
Modality is 0 if there is no explicit need for the relationship to occur or the relationship is
optional.
Each faculty member advises many students, each student has only one advisor.
Every faculty member may not be advisor, each student must have an advisor.
Circle: A circle (bubble) shows a process that transforms data inputs into data outputs.
Data Flow: A curved line shows the flow of data into or out of a process or data store.
The DFD may be used to perform a system or software at any level of abstraction. In fact,
DFDs may be partitioned into levels that represent increasing information flow and functional
detail. Levels in DFD are numbered 0, 1, 2 or beyond. Here, we will see primarily three levels
in the data flow diagram, which are: 0-level DFD, 1-level DFD, and 2-level DFD.
0-level DFD
A level 0 DFD, also called a fundamental system model or context diagrams represents the
entire software system as a single bubble with input and output data indicated by incoming
and outgoing arrows respectively.
Then the system is decomposed and described as a DFD with multiple bubbles. Parts
of the system represented by each of these bubbles are then decomposed and documented as
more and more detailed DFDs. This process may be repeated at as many levels as necessary
until the program at hand is well understood. It is essential to preserve the number of inputs
and outputs between levels, this concept is called levelling by DeMacro. Thus, if bubble "A"
has two inputs x 1 and x2 and one output y, then the expanded DFD, that represents "A"
should have exactly two external inputs and one external output as shown in fig:
2-level DFD goes one step deeper into parts of 1-level DFD. It can be used to plan or record
the specific/necessary detail about the system’s functioning.
Examples:
Library Information System
0-LEVEL DFD
Level 1 DFD