SEN Unit 2. BD Software Requirement Engineering
SEN Unit 2. BD Software Requirement Engineering
Unit 2
Software Requirement Engineering
(14 Marks)
Software Engineering Practice
• Collection of principles, concepts, methods and tools required for software development.
Software engineering practice is a collection of concepts, principals, methods and tools that a
software engineer calls upon on daily basis.
• Practice allows managers to manage software projects and software engineers to build
computer programs.
Models are created for better understanding of the actual entity to be built
or design.
• When the entity is a physical thing, we can build model that is identical in
form and shape but smaller in scale.
• When entity is software our model must take different form. It must be
capable of representing information, Architecture, functions ,features and
behavior of the system.
• Analysis Model:
• Design Model:
Modeling Practices
• Analysis Model:
Principle 1: The information domain of problem must be clearly
represented.
Information domain encompasses the data that flow into the
system(from end user, external devices),data that flow out of the
system(via user interface, n/w interface, graphics), data stores
collection of objects(data i.e. maintained permanently).
• Analysis Model:
Principle 3: The Behavior of the software must be defined clearly.
Analysis model uses state transition diagrams to represent the
behavior of the system clearly.
It shows how the system makes transition from one state to
another on occurrence of some external event.
• Analysis Model:
Principle 5: analysis should be clear enough to convert it into
design model.
If analysis of requirements is clear and simple then it will be easy
for design and implementation in construction step. Hence
requirement analysis should be clear enough.
Modeling Practices
• Design Model:
Principle 1: Design should be traceable from analysis model.
Principle 2: Consider the architecture of the system to be built.
Principle 3: Design of data is as important as design of function.
Principle 4: Internal as well as external interfaces must be designed.
Principle 5: user interface design must satisfy all need of end user.
Principle 6: Component level design should be functionally
independent.
Principle 7: Components should be loosely coupled to one another
and to the external environment.
Principle 8: designed modules should be easy to understand.
Principle 9: Accept that design behavior is Iterative.
Construction Practices
Principle #4: Testing should begin “in the small” and progress toward
1. Functional Requirements:
• IEEE defines the functional requirements as a "a function that a system
or components must be able to perform'.
• It describes the interaction of software with its environment & specifies
the inputs, outputs, external interfaces & the function that should be
included in the software.
Requirement Engineering
2. Non Functional Requirements:
• These are basically the quality constraints that the system must satisfy
according to the project contract.
• The priority or extent to which these factors are implemented varies from
one project to other. They are also called non-behavioural requirements.
• They basically deal with issues like:
Portability
Security
Maintainability
Reliability
Scalability
Performance
Reusability and Flexibility
Requirement Engineering
Following are the Types of Non Functional Requirements:
Product Requirement
Organizational Requirement
External Requirement
3. Domain Requirements:
• Domain requirements are the requirements which are characteristic of a
particular category or domain of project.
• The basic functions that a system of a specific domain must necessarily
exhibit come under this category.
Requirement Engineering
Developing Use-cases:
• Use case is a term used in system analysis to determine. clarify &
integrate all system requirements. It describes how user interacts with
the system to achieve certain goal.
• It describes various business activities carried out by a system. Use case
consist of following three main components:
Use Case: A use case is a software and system engineering term that
describes how a user uses a system to accomplish a particular goal. A
use case acts as a software modeling technique that defines the features
to be implemented and the resolution of any errors that may be
encountered.
Actor: Actors are the type of users that interact with the system.
System Boundary: System boundary define the scope of system or
limit of system. It is representation of entire system as described in
problem statements
Requirement Engineering
Use-case Example:
Requirement Engineering
Requirement Negotiation Validation:
• To negotiate the requirements of a system to be developed. it is necessary
to identify conflicts and to resolve those conflicts.
• This is done by means of systematic conflict management. The conflict
management in requirements engineering comprises the following four
tasks:
• Conflict Identification
• Conflict Analysis
• Conflict Resolution
Agreement
Compromise
Voting
Definition of Variants
Overruling (Reject or Disallowed)
Requirement Engineering
Documentation of the conflict Resolution
• Handling Conflicts Repeatedly
• Inappropriate Conflict resolution
Software Requirement Specification: Need, Format
& Its Characteristics
• 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.
• IEEE defines SRS as. 'a document that clearly & precisely describes
each of the essential requirements (function, performance, design
constraints & quality attributes) of the software & the external interfaces.
The outcome of the requirement gathering & analysis phase of the SDLC
is SRS. It also called as Requirement Document.
Characteristics of SRS
Following are the characteristics of SRS:
Correct: SRS is correct when all the requirement of user are described in
the requirement document.
Complete: SRS is complete when the requirements are undoubtedly
specified that which work the software product is required to perform.
Unambiguous: SRS does not contain any confusion when each specified
requirement has single interpretation.
Verifiable: SRS is testable when the stated requirements can be tested with
a cost effective procedure to verify whether the final software fulfills those
requirement.
Ranked for importance and/or stability: Each & every requirement has
not same importance, so every requirement is recognized to make
differentiation between requirements.
Characteristics of SRS
Following are the characteristics of SRS:
Modifiable: The requirement given by the user are changeable, so
requirement document must be generated in such way that those
modification can be included easily in SRS by preserving consistently the
structure & style of the SRS.
Usability, Performance
u sability
Borrow Book
Re1urn Book
Usability
Flexibility
Usability
2. Librarian Usability
Usability
Reliabilfy