SE Complete Unit 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

UNIT - II

Software Requirements:
• Functional and non-functional requirements
• User requirements
• System requirements
• Interface specification
• The software requirements document.
Requirements engineering process:
• Feasibility studies
• Requirements elicitation and analysis
• Requirements validation
• Requirements management.
System models:
• Context models
• behavioral models
• structured methods.
• data models
• object models
Software Requirements
• Requirements analysis is very critical process that enables the success of a
system
• Gathering software requirements are the foundation of the entire software
development process.Hence,they must be clear, correct and well-defined.
• The requirement for a system are the description of what the system should
do, the services that it provides and the constraints on its operation. (OR)
• A requirement is simply a high-level, abstract statement of a service that
the system should provide or a constraint on the system
• The software requirements are description of features and functionalities of
the target system.
• Requirements convey the expectations of users from the software product.
• The requirements can be obvious or hidden, known or unknown, expected
or unexpected from client’s point of view.
• The process of finding out, analysing, documenting and
checking these services and constraints is called requirements
engineering (RE).
• The goal of requirement engineering is to develop and
maintain sophisticated and descriptive ‘System Requirements
Specification’ document.
Functional requirements
• These requirements focus on user requirements.
• These requirements are mandatory.
• Functional requirements define what a software system
should do. [features]
• It defines a function of a software system or its module.
• These are represented or stated in the form of input to
be given to the system, the operation performed and the
output expected.
• They are basically the requirements stated by the user
which one can see directly in the final product
• Ex: When a customer register on our website,
send an email.
Functional requirement in this online banking
system could be, “When user provide the date
range in transaction query, this input is used
by Server and the webpage is provided with
the necessary cash transaction data”
• 1) Authentication of user whenever he/she
logs into the system.
2) System shutdown in case of a cyber attack.
3) A Verification email is sent to user
whenever he/she registers for the first time on
some software system.
• Functional requirement of bank management
system Project (FYP)
• Login
• Validation
• Get balance information
• Withdrawal of money
• Transfer Money
• Customer info
• Beneficiary
• Administrative Control
• FUNCTIONAL REQUIREMENTS OF LIBRARY MANAGEMENT SYSTEM Project (FYP)
• Only authentic user must have the access to the system.
• Only the user must be able to provide the information related to the library.
• User must be able to:
– Provide the information regarding books.
– Search for the required books from database.
– Add new book to the database.
– Update the number of books in database.
– Enter data of issued book in Database.
– Information of returned books.
• User must have the knowledge about the no of copies of a book.
• Same Id’s for 2 or more books shall not be allowed.
• User must check if the book is available or not before issuing.
• User must enter issue and return date in database.
• The user must know the number of shelves in the library.
Non-Functional requirements

• Constraints on how the system software should


do it.[quality]

• Ex: Email must be sent 2sec after registration.


• “How should the software system fulfill the
functional requirements?” [quality]
• Non-functional requirement is specified by
technical peoples e.g. Architect, Technical
leaders and software developers.
Non-functional requirements include -
• Security
• Logging
• Storage
• Configuration
• Performance
• Cost
• Interoperability
• Flexibility
• Disaster recovery
• Accessibility
System requirements
• System requirement simply means needs of system to run
smoothly and efficiently.
• It is written for developers.
• It is a structured document that gives a detailed description of
system functions, services, and operational constraints.
• It requires many hardware and software resources. If these
hardware and software resources are not or less available, then it
may result in system failure or causes problems during
performance.
• Between client and contractor, it is written as a contract to define
all requirements that are needed to be implemented to increases
productivity.
• Persons involved like System end users, Client engineers, System
architects, Software developers.
System requirement specification using a standard form:
1. Function
2. Description
3. Inputs
4. Source
5. Outputs
6. Destination
7. Action
8. Requires
9. Pre-condition
10. Post-condition
11. Side-effects
User Interface requirements

• UI is an important part of any software or


hardware or hybrid system.
• A software is widely accepted if it is -
➢Easy to operate
➢Quick in response
➢Effectively handling operational errors
➢Providing simple yet consistent user interface
User interface requirements are briefly mentioned below -
➢ Content presentation
➢ Easy Navigation
➢ Simple interface
➢ Responsive
➢ Consistent UI elements
➢ Feedback mechanism
➢ Default settings
➢ Purposeful layout
➢ Strategical use of color and texture.
➢ Provide help information
➢ User centric approach
➢ Group based view settings.
SOFTWARE REQUIREMENTS
DOCUMENT (SRS)
• The requirements document is the official
statement of what is required of the system
developers.
• Should include both a definition of user
requirements and a specification of the system
requirements.
• It is NOT a design document. As far as
possible, it should set of WHAT the system
should do rather than HOW it should do it
IEEE requirements standard defines a generic structure for a requirements
document that must be instantiated for each specific system.
1. Introduction.
i) Purpose of the requirements document
ii) Scope of the project
iii) Definitions, acronyms and abbreviations
iv) References
v) Overview of the remainder of the document
2. General description.
i) Product perspective
ii) Product functions
iii) User characteristics
iv) General constraints
v) Assumptions and dependencies
3.Specific requirements cover functional, non-functional and
interface requirements. The requirements may document
external interfaces, describe system functionality and
performance, specify logical database requirements, design
constraints, emergent system properties and quality
characteristics.
4. Appendices.
5. Index
Requirements engineering
process
• Requirements engineering (RE) refers to the process of
gathering,analyzing,defining,documenting and maintaining
requirements in the engineering design process.
• Requirement engineering provides the appropriate mechanism to
understand what the customer desires, analyzing the need, and
assessing feasibility, specifying the solution clearly, validating the
specifications and managing the requirements as they are
transformed into a working system.
• RE produces one large document written in natural language,
containing a description of what system will do without describing
how it will do.
• Thus, requirement engineering is the disciplined application of
proven principles, methods, tools, and notation to describe a
proposed system's intended behavior and its associated constraints.
Requirement Engineering
Process steps
It is a four-step process, which includes -
1. Feasibility studies
2. Requirements elicitation and analysis
3. Requirements specification
4. Requirements validation
1.Feasibility studies
• Find out the customer needs and budget.
(rough idea)
• Usually done by analysts.
• This is made before committing to a project.
• Like a Proposal
• The objective behind the feasibility study is to create
the reasons for developing the software that is
acceptable to users, flexible to change and conformable
to established standards.
• The output for this one is Feasibility report.
1.Technical Feasibility - Technical feasibility evaluates
the current technologies, which are needed to
accomplish customer requirements within the time
and budget.
2.Operational Feasibility - Operational feasibility
assesses the range in which the required software
performs a series of levels to solve business problems
and customer requirements.
3.Economic Feasibility - Economic feasibility decides
whether the necessary software can generate financial
profits for an organization.
2.Requirements elicitation and analysis:
• This is also known as the gathering of
requirements. Here, requirements are identified
with the help of customers and existing systems
processes, if available.
• It is needed to know what the users really need.
• The techniques used for requirements elicitation
include interviews, brainstorming(Group
discussions), task analysis, Delphi
technique(panel of experts), use cases, etc.
The requirements analysis process
3.Requirements specification
• Software requirement specification is a kind of
document which is created by a software analyst
after the requirements collected from the various
sources - the requirement received by the
customer written in ordinary language.
• It is the job of the analyst to write the requirement
in technical language so that they can be
understood and beneficial by the development
team.
• The models used at this stage include ER
diagrams, data flow diagrams(DFDs),
function decomposition diagrams(FDDs),
data dictionaries, etc.
4.Requirement Validation

• After requirement specifications developed, the


requirements discussed in this document are validated
• Requirements can be the check against the following
conditions -
a) If they can practically implement
b) If they are correct and as per the functionality and
specially of software
c) If there are any ambiguities
d) If they are full
e) If they can describe
• Reviews, buddy checks, making test cases, etc.
are some of the methods used for this.
System models
• The aim of this chapter is to introduce some
types of system model that may be developed
as part of the requirements engineering and
system design processes.
• When you have read the chapter, you will: ■
understand how graphical models can be used
to represent software systems; ■
• understand why different types of model are
required and the fundamental system modeling
perspectives of context, interaction, structure,
and behavior;
• have been introduced to some of the diagram
types in the Unified Modeling Language
(UML) and how these diagrams may be used
in system modeling;
• be aware of the ideas underlying model-driven
engineering, where a system is automatically
generated from structural and behavioral
models.
Sample Projects
1. Passport automation System
2. Book Bank
3. Online Exam Registration
4. Stock Maintenance System
5. Online course reservation system
6. E-ticketing
7. Software Personnel Management System
8. Credit Card Processing
9. E-book management System.
10. Recruitment system
System modeling
• System modeling is the process of developing abstract
models of a system, with each model presenting a different
view or perspective of that system.
• System modeling helps the analyst to understand the
functionality of the system and models are used to
communicate with customers.
• System modeling has generally representing the system using
some kind of graphical notation, which is known as Unified
Modeling Language (UML).
• The development of graphical system models as part of the
requirements specification or the software design
• Models can explain the system from different
perspectives:
1.An external perspective, shows the context
or environment of the system.
2.An interaction perspective , shows the
interactions between a system and its
environment. or between the components of a
system.
3. A structural perspective, shows the data
architecture.
4. A behavioral perspective, shows dynamic
behavior of the system and how it responds to
events.
Diagrams' used in Modelling
1.Activity diagrams, which show the activities
involved in a process.
Activity diagrams are mainly used as a flowchart that
consists of activities performed by the system
2.Use case diagrams, which show the interactions
between a system and its environment.
3.Sequence diagrams, which show interactions
between actors and the system (or) between system
components.
.
4. State chart diagrams, which show how the
system reacts to internal and external
events.
5. Class diagrams, Class diagrams are one of
static structure of a particular system by
modeling its classes, attributes, operations,
and relationships between objects

You might also like