Unit 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 128

SOFTWARE ENGINEERING

Software engineering is defined as a discipline whose aim

is the production of quality software, delivered on time

and within the budget and that satisfies its requirement


Types of software
 System software: It controls the internal operations of a computer system. It is a

group of programs, which is responsible for using computer resources efficiently

and effectively. For example, an operating system

 • Real-time software: It observes, analyzes, and controls real world events as they

occur An example of real-time software is the software used for weather forecasting

that collects and processes parameters like temperature and humidity

 • Business software: It is widely used in areas where management and control of

financial activities is of utmost importance. The fundamental component of a

business system comprises payroll, inventory, and accounting software


 • Engineering and scientific software: This class of software has emerged as

a powerful tool in the research and development of next generation

technology

 • Artificial intelligence (AI) software: This class of software is used where

the problem-solving technique is non-algorithmic in nature.

 • Web-based software: This class of software acts as an interface between

the user and the Internet

 • Personal computer (PC) software: This class of software is used for both

official and personal use.


A system software aids the user and the hardware
to function and interact with each other.
 It is a type of software that controls particular
hardware which is attached to the system.

 BIOS Driver

 Display Drivers

 Motherboard Drivers

 Printer Drivers

 ROM Drivers

 Sound card Driver

 USB Drivers
 Firmware is the permanent software that is embedded into a read-only

memory. 

 Programming Language Translators: These are mediator programs on

which software programs rely to translate high-level language code to

simpler machine-level code.

 Utility: Utility software is designed to aid in analyzing, optimizing,

configuring and maintaining a computer system. It supports the computer

infrastructure.
Application Software

 Application Software, also known as end-user programs or productivity programs are

software that helps the user in completing tasks such as doing online research, jotting

down notes, setting an alarm, designing graphics, keeping an account log, doing

calculations or even playing games.

 Word Processors: 

 Database Software:

 Multimedia Software:

 Education and Reference Software: 

 Graphics Software: 

 Web Browsers:
The software can also be classified based on their

Availability and Shareability.


1.Freeware
 Freeware software is available without any cost. Any user can
download it from the internet and use it without paying any fee.
However, freeware does not provide any liberty for modifying the
software or charging a fee for its distribution.

 Adobe Reader
 Audacity
 ImgBurn
 Recuva
 Skype
 Team Viewer
 Yahoo Messenger
2. Shareware
 It is a software that is freely distributed to users on a trial

basis. It usually comes with a time limit and when the time

limit expires, the user is asked to pay for the continued

services.
Open-source
These kinds of software are available to users with
the source code which means that a user can freely
distribute and modify the software and add
additional features to the software.
 Licensed Software

 They are also known as Closed-source software. These types of

applications are usually paid and have intellectual property rights or

patents over the source code.


common skills for software engineer

 Communication.

 Teamwork.

 Computer programming and coding.
 Problem-solving.

 Multitasking.

 Attention to detail.
Software Components
Software components are parts of a
system or application. Components are a
means of breaking the complexity
of software into manageable parts.
Each component hides the complexity of
its implementation behind an interface.
Components of Software:
There are three components of the software:
 Program:

A computer program is a list of instructions that tell a computer what to


do.
 Documentation:

Source information about the product contained in design documents,


detailed code comments, etc.
 Operating Procedures:
Set of step-by-step instructions compiled by an organization to help
workers carry out complex routine operations.
software processes components

Software specification.

Software design and implementation. ...

Software validation. ...

Software evolution.
software processes components
 Software Specifications:
In this process, detailed description of a software system to be developed
with its functional and non-functional requirements.
 Software Development:
In this process, designing, programming, documenting, testing, and bug
fixing is done.
 Software Validation:
In this process, evaluation software product is done to ensure that the
software meets the business requirements as well as the end users needs.
 Software Evolution:
It is a process of developing software initially, then timely updating it for
various reasons.
Software Crisis:

 Size and Cost:


Day to day growing complexity and expectation out of
software. Software are more expensive and more
complex.
 Quality:

Software products must have good quality.


 Delayed Delivery:
Software takes longer than the estimated time to
develop, which in turn leads to cost shooting up.
 Software engineering is, by all objective measures, one
of the best fields to get into today. The salary is good –
$95,000 a year on average, in the United States. 

 Software engineering is important because


specific software is needed in almost every industry, in
every business, and for every function. It becomes more
important as time goes on – if something breaks within
your application portfolio, a quick, efficient, and
effective fix needs to happen as soon as possible.
Necessity of Software Engineering
1. Reduces complexity
2. To minimize software cost
3. To decrease time
4. Handling big projects
5. Reliable software
6. Effeteness
Software Characteristics

Software Characteristics are;


 Functionality:
It refers to the degree of performance of the software
against its intended purpose . Required functions are:
 Reliability:
A set of attribute that bear on capability of software to
maintain its level of performance under the given
condition for a stated period of time. Required functions
are:
 Efficiency:
It refers to the ability of the software to use system
resources in the most effective and efficient manner. the
software should make effective use of storage space and
executive command as per desired timing requirement.
Required functions are:
 Usability:
It refers to the extent to which the software can be used
with ease. the amount of effort or time required to learn
how to use the software.
 Maintainability:
It refers to the ease with which the modifications can be
made in a software system to extend its functionality,
improve its performance, or correct errors. Required
functions are:
 Portability:
A set of attribute that bear on the ability of software to
be transferred from one environment to another, without
or minimum changes. Required functions are:
What is the difference between software

engineer and software programmer


Software Quality Factors
 Product operation factors − Correctness, Reliability,
Efficiency, Integrity, Usability.
 Product revision factors − Maintainability, Flexibility,
Testability.
 Product transition factors − Portability, Reusability,
Interoperability.
Software Development Life Cycle

 Software Development Life Cycle (SDLC) is a process used by

the software industry to design, develop and test high quality software.

 The SDLC aims to produce a high –quality  software that meets or

exceeds customer expectations, reaches completion within times and

cost estimates.

 SDLC is a framework defining tasks performed at each step in

the software development process
What is Software Process Model?

A software process model represents the


order in which the activities of software
development will be undertaken. It describes
the sequence in which the phases of the
Software lifecycle will be performed.
 When a process involves building a software, the process may be
referred to as software life cycle

 Requirements analysis and definition


 System (architecture) design
 Program (detailed/procedural) design
 Writing programs (coding/implementation)
 Testing: unit, integration, system (many more..)
 System delivery (deployment)
 Maintenance
 Waterfall
 Prototyping
 V-Model
 Incremental
 Iterative
 Spiral
 RUP
 Agile Development
Waterfall
Waterfall model Model

Prepared by
Prepared by

Pragati
Pragatiraghuwanshi
raghuwanshi
INDEX
 History of water fall model.
 Features of water fall model.
 Phase of water fall model.
 Brief description of phases.
 Advantages.
 Disadvantages.
History of Waterfall Model
1) The first formal description of the waterfall model is
often cited as a 1970 article by Winston W. Royce

2) Royce did not use the term "waterfall" in this article.

3) Royce presented this model as an example of a


flawed, non-working model.
Features of Waterfall Model

1) A Water Fall Model is easy to flow.

2) It can be implemented for any size of project.

3) Every stage has to be done separately at the right

time so you cannot jump stages.


4) Documentation is produced at every stage of a
waterfall model allowing people to understand what
has been done.

5) Testing is done at every stage.


Waterfall Model
Phases of Waterfall model

Waterfall model has 5 different phases, Which are


following:-

1)Requirement gathering and Analysis.


2)Design.
3)Coding.
4)Testing.
5)Maintenance.
1) Requirement gathering and Analysis.

 This is the first phase of waterfall model which includes a


meeting with the customer to understand his requirements.

 This is the most crucial phase as any


misinterpretation at this stage may give rise to validation issues
later.
 The software definition must be detailed and accurate with no
ambiguities.
 It is very important to understand the customer
requirements and expectations so that the end product

 meets his specifications.


2) Design

 The customer requirements are broken down into logical


modules for the ease of implementation. Hardware and
software requirements for every module are Identified and
designed accordingly.
 Also the inter relation between the various logical modules is
established at this stage. Algorithms and diagrams defining the
scope and objective of each logical model are developed.
 In short, this phase lays a fundamental for actual
programming and implementation
3)Coding

Coding is a step in which design is translated into machine-


readable form.
If design is done in sufficient detail then coding can be done
effectively.
Programs are created in this phase.
In this phase all software divided into small module then after
doing coding for that small module rather than do coding whole
software.
According to design programmers do code and make class
and structure of whole software.
4)Testing.
In this stage,both individual components and
the integrated whole are methodically verified to
ensure that they are error- free and fullymeet
the requirements outlined in the first step.

In this phase testing whole software into two parts


1) HARDWARE & 2) SOFTWARE.

 Type of testing is 2-types


1) Inside test.
2) Outside test.
5)Maintenance
This is the final phase of the waterfall model, in
which the completed software
product is handed over to the client after alpha, beta
testing.
 After the software has been deployed on
the client site, it is the duty of the software
development team to undertake routine maintenance
activities by visiting the client site.
If the customer suggests changes or enhancements the
software process has to be followed all over again right
from the first phase i.e requirement analysis.
Advantages of Waterfall Model

 The water fall model is easy to implementation.

For implementation of small systems water fall


model is use full.

The project requires the fulfillment of one


phase, before proceeding to the next.

It is easier to develop various software through


this method in short span of time.
Disadvantages of Waterfall Model

The requirement analysis is done initially


and sometimes it is not possible to state all
the requirement explicitly in the beginning.

The customer can see working model of


the project only at the end.

If we want to go backtrack then it is not


possible in this model.

It is difficult to follow the sequential flow


in software development process.
PROTOTYPE
MODEL
BY

Deep Ali
MSc III Sem
RAD MODEL

(RAPID APPLICATION DEVELOPMENT MODEL)

Presented by

Raina Agnihotri
System Development Life Cycle-

SDLC prescribe the different activities that need to be carried out


to develop a software. SDLC is important because it breaks down
the entire life cycle of software development thus decreases
complexity and time to develop the software.

SDLC MODEL-

SDLC model is a descriptive and diagrammatic representation of


software life cycle.
Types of SDLC model-
RAD Model-

• It was developed by IBM in early 90’s.


• RAD is a method of software development which heavily
emphasizes rapid prototyping and iterative development.
• Prototype- It is a try implementation of the system.
• RAD was proposed to overcome the rigidity of the Waterfall model
which makes it difficult to accommodate any change requested
from the customer.
*This model has extremely short development cycle. (60 to 90 days)

RAD takes place in a series of short cycle or iterations.

It have small teams comprising of developers, designers ,customer

representatives and other IT resources working on their respective

prototype simultaneously.

The team focuses on present iteration only and the time planned for

each iteration is called a ‘Time Box’.


Phases of the RAD Model-

1. Business Modelling- A complete business analysis is performed to find the

information for business, how it can be obtained, how and when is the

information processed and what are factors driving successful flow of

information.

2. Data Modelling- The information gathered in the business modelling phase is

reviewed and analysed to form sets of data objects. The attributes of the data

sets are identified and defined. The relation between these data objects are

established.
3. Process Modelling- The data object sets defined in the data
modelling phase are converted to establish the business
information flow as per the business model.

4. Application Generation- The actual system is built and coding


is done. using automated code generation to convert processes
and data models from above phases into actual prototypes.

5. Testing and Turnover- The overall testing time is reduced in


the RAD model as the prototypes are independently tested during
every iteration. However, the data flow and the interfaces between
all the components need to be thoroughly tested.
Major goals of RAD-

1. Accommodate change request.

2. Quick Development,

3. Increase acceptability of the software.

Applicability of RAD-

1. To make customised software.

2. To make Non-critical software.

3. For projects with very aggressive time schedule.


4. Where user is available on every stage of development.

5. Should only be used if the budget permits use of


automated code generating tools.

6.When software can be modularised.

 How RAD actually facilitate fast development-

1. Minimal planning.

2. Reusing existing code.


Advantages-
 Changing requirements can be accommodated.
 Progress can be measured.
 Reduced development time.
 Quick initial reviews.

Disadvantages-
. Requires user involvement throughout the life cycle.

. Needs highly skilled developers.

. Only suitable for projects requiring shorter development time.

. Management complexity is more.

. Inapplicable to cheaper projects.


Comparison of RAD with other models

RAD Model Iterative Waterfall Model

 The functionalities are  The functionalities are


developed incrementally. developed together.
 Accommodate requests  Doesn’t accommodate
for changes. requests for changes.
 Comparatively less  Has better quality and
quality and reliability. reliability.
RAD Model Prototyping Model

 InRAD, Prototype is  Prototype is used to gain


redefined after getting insights into the
customer’s feedback and problem, choose between
evolves into the alternatives and to get
deliverable product. customer feedback and
get usually thrown away
after this.
RAD Model Evolutionary Model

 Each increment results  Each increment is


in a quick and dirty systematically developed.
prototype.
 Incremental functionalities
 RAD develops software are fairly large.
in shorter increments.
Topic - Evolutionary Development Model

Presentation by
Ashutosh tiwari
SDLC MODEL ( 10 WORD )

EVOLUTIONARY MODE - 10MIN


● PHASES
 WHEN TO USE ● DIAGRAM
INCREMENTAL MODEL - 10 MIN
 ADVANTAGE & DISADVANTAGE
● DIAGRAM
 DIAGRAM ● WHEN TO USE
● ADVANTAGE AND DISADVANTAGE
RELATED MODELS

SPIRAL MODEL -10 MIN

 WHEN TO USE

 ADVANTAGE & DISADVANTAGE

 DIFFERENCE
SDLC (Software development life cycle ) MODEL

SDLC is nothing but a sequence of strategy which

define roadmap to develop any software .


Evolutionary Development Model

क्रमागत - Development model


Definition

The evolutionary software development model is based on the idea of rapidly


developing an software,

Start with very raw specification and modifying this according to your software
needs/customer needs.

Here we develop many versions on software in which requirements are added with
each versions . like :- beta version, version 1 , version2 ……...

Each version is based upon user’s feedback (customer’s feedback) to produce a


system(or software) which satisfies user’s needs.

https://www.geeksforgeeks.org/software-engineering-evolutionary-model/
Example :-

● Windows 10 S
● Windows 10
● Windows 8/8.1
● Android 4.4 KitKat ● Windows 7 (2009)
● Android 5.0 Lollipop ● Windows Vista (2006)

● Android 6.0 Marshmallow


● Windows XP (2001)
● Windows 2000 (2000)
● Android 7.0 Nougat
● Android 8.0 Oreo
● Android 9.0 Pie
When we use (applicability)

 It is used in large projects . where you can easily find

modules.

 commonly used when the customer wants to start using

the core features instead of waiting for the full software .

 used in object oriented software development .


Advantage of evolutionary

 Error reduction
 User satisfaction
 Business Benefit
 High quality
 Low risk

Disadvantage
 Several version release
 Time and cost
Structure
Spiral Model Incremental Concurrent
Model development Model
Spiral Model

Spiral model provides support for Risk Handling.

In its diagrammatic representation, it looks like a spiral with many loops. The exact
number of loops of the spiral is unknown.

Each loop of the spiral is called a Phase of the software development process.
The exact number of phases needed to develop the product can be varied by the
project manager depending upon the project risks.

As the project manager dynamically determines the number of phases, so the


project manager has an important role to develop a product using spiral model.

The Radius of the spiral at any point represents the expenses(cost) of the project so
far, and the angular dimension represents the progress made so far in the current
phase.

Ex:- Evolution of Microsoft Windows operating system.


Evolutionary model
When to use Spiral Model:

● When project is large

● When releases are required to be frequent

● When creation of a prototype is applicable

● When risk and costs evaluation is important

● For medium to high-risk projects

● When requirements are unclear and complex

● When changes may require at any time

● When long term project commitment is not feasible due to changes in

economic priorities
Advantages of Spiral Model :
 Risk Handling

● Good for large projects

 Flexibility in Requirements

 Customer Satisfaction

Disadvantages :

● Complex

 Expensive

 Too much dependable on Risk Analysis

 Difficulty in time management


Difference
Basically consists of four phases :

● Planning

● Risk analysis

● Development /

Engineering

● Evaluation
planning
Risk
Analysis

Evolution Development
INCREMENTAL MODEL

 Incremental Model is a process of software development where


requirements divided into multiple standalone modules of the
software development cycle.

 In this model, each module goes through the requirements,


design, implementation and testing phases.

 Every subsequent release of the module adds function to the


previous release. The process continues until the complete
system achieved
When to use Incremental models?

 Funding Schedule, Risk, Program Complexity, or need for early


realization of benefits.
 When Requirements are known up-front.
 When Projects having lengthy developments schedules.
 Projects with new Technology
Advantages –

 Error Reduction (core modules are used by the customer from the

beginning of the phase and then these are tested thoroughly)

 Uses divide and conquer for breakdown of tasks.

 Lowers initial delivery cost.

 Incremental Resource Deployment.

Disadvantages

 Requires good planning and design.

 Total cost is not lower.

 Well defined module interfaces are required


Concurrent Development Model

Concurrent models are those models within which the various activities of

software development 

 Happen at the same time,

 For faster development 

 For a better outcome.

This type of a model, in which multiple phases are performed

concurrently, can be coined as a concurrent model.


How It Works
Advantages

 This model is applicable to all types of software

 It is easy for understanding and use.

 It gives immediate feedback from testing.

 It provides an accurate picture of the current state of a project.

Disadvantage

 It needs better communication between the team members.

 It requires to remember the status of the different activities.


Feasibility study
 Feasibility study is carried out based on many purposes to analyze

whether software product will be right in terms of development,

implantation, contribution of project to the organization

 The requirements analysis and specification phase starts once the

feasibility study phase is complete and the project is found to be

technically sound and feasible.


Requirement analysis

 The goal of the requirements analysis and specification phase is to


clearly understand customer requirements and to systematically
organize these requirements in a specification document.

 This phase consists of the following two activities:

◦ • Requirements Gathering And Analysis


◦ • Requirements Specification
Basic questions
 What is the problem?

 Why is it important to solve the problem?

 What are the possible solutions to the problem?

 What exactly are the data input to the system and what exactly are the data

output by the system?

 What are the likely complexities that might arise while solving the problem?

 If there are external software or hardware with which the developed software

has to interface, then what exactly would the data interchange formats with the

external system be?


Need for SRS

 When the analyst detects any inconsistencies, anomalies or incompleteness

in the gathered requirements, he resolves them by carrying out further

discussions with the end users and the customers.

 After the analyst has collected all the requirements information regarding

the software to be developed, and has removed all the incompleteness, in

consistencies, and anomalies from the specification, he starts to

systematically organize the requirements in the form of an SRS document.


Software requirements specification 
 The important parts of SRS document are:

◦ • Functional requirements of the system - The functional requirements part discusses

the functionalities required from the system.

◦ • Non-functional requirements of the system - Non-functional requirements deal with

the characteristics of the system which can not be expressed as functions

◦ • Goals of implementation - The goals of implementation part documents some general

suggestions regarding development.


Characteristics of SRS
 Concise. - SRS document should be concise and at the same time unambiguous,

 Structured. - It should be well-structured.

 Black-box view. - It should only specify what the system should do and refrain from stating

how to do these.

 Conceptual integrity. - It should show conceptual integrity so that the reader can easily

understand it.

 Response to undesired events. - It should characterize acceptable responses to undesired

events.

 Verifiable. - All requirements of the system as documented in the SRS document should be

verifiable.
Techniques for representing Complex Logic

 Decision Tree

 Decision Table
Decision table -A decision table is used to represent
the complex processing logic in a tabular or a matrix form.
Decision tree
A decision tree gives a graphic view of the processing logic involved in decision

making and the corresponding actions taken. The edges of a decision tree

represent conditions and the leaf nodes represent the actions to be performed

depending on the outcome of testing the condition.


Components of SRS
 Functional requirements

 Performance requirements

 Design constraints

 External interface requirements


1. Functional Requirements
 Functional requirements specify basically describe the connectivity between the input and

output of the system.  

 1. A detailed description  of all the  data inputs  and their  sources, the units  of measure, and

the range  of valid inputs  be specified:

 2. All the  operations  to be  performed on the input data obtain  the output  should be

specified, and

 3. 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.

 4. 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.


2. 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.
 It is a good idea to pin down performance requirements for the most
used or critical transactions, user events and screens.
3. Design Constraints
 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.

 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:  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: Security requirements place restrictions on the use of certain commands control access
to database, provide different kinds of access, and cryptography techniques, and maintain a log of
activities in the system.
4. External Interface Requirements

 For each external interface requirements:

 1. All the possible interactions of the software with people hardware and

other software should be clearly specified,

 2. The characteristics of each user interface of the software product

should be specified and

 3. The SRS should specify the logical characteristics of each interface

between the software product and the hardware components for hardware

interfacing.
Management needs:
Feasibility Study
Objectives of Feasibility Study

 To analyze whether the software will meet organizational requirements.

 To determine whether the software can be implemented using the current

technology and within the specified budget and schedule.

 To determine whether the software can be integrated with other existing

software.
Technical feasibility assesses the current resources (such as H/w and

S/w) and technology, which are required to accomplish user requirements

in the software within the allocated time and budget.

 Analyzes the technical skills and capabilities of the software


development team members.
 Determines whether the relevant technology is stable and established.
 Ascertains that the technology chosen for software development has a
large number of users so that they can be consulted when problems arise
or improvements are required.
Operational feasibility assesses the extent to which the required software

performs a series of steps to solve business problems and user

requirements. 

 Determines whether the problems anticipated in user requirements are of

high priority.

 Determines whether the solution suggested by the software development

team is acceptable.

 Analyzes whether users will adapt to a new software.

 Determines whether the organization is satisfied by the alternative solutions

proposed by the software development team.


Economic feasibility determines whether the required software is

capable of generating financial gains for an organization. It involves the

cost incurred on the software development team, estimated cost of

hardware and software, cost of performing feasibility study, and so on.

 Cost incurred on software development to produce long-term gains for

an organization.

 Cost required to conduct full software investigation.

 Cost of hardware, software, development team, and training.


Information Modelling
  Information model in software engineering is a representation of concepts and
the relationships, constraints, rules, and operations to specify data semantics for a
chosen domain of discourse. Typically it specifies relations between kinds of
things, but may also include relations with individual things.

 This can be simple like a diagram, physical model, or picture, or complex like a


set of calculus equations, or computer program.

Types 

 Visual Models – Picture or video …….

 Mathematical - Complex like a set of calculus equations……

 Computer Models - Computer program….


IEEE Standards for SRS
 IEEE defines software requirements specification as, ‘a document that clearly

and precisely describes each of the essential requirements (functions,

performance, design constraints and quality attributes) of the software and the

external interfaces.

 Each requirement is defined in such a way that its achievement can be

objectively verified by a prescribed method, for example, inspection,

demonstration, analysis or test.’ Note that requirements specification can be in

the form of a written document, a mathematical model, a collection of

graphical models, a prototype, and so on.


SRS – IEEE 830
1, Introduction 2. General Description 3. Specific Requirements

1. Purpose 1. Product Perspective 1. Functional Requirements


2. Scope 2. Product Functions 2. External Interface Requirements
3. Definitions 3. User Characteristics 3. Performance Requirements
4. References 4. General Constraints 4. Design Constraints
5. Overview 5. Assumptions and Dependencies 5. Attributes
6. Other Requirements
SRS Templates

 A software requirements specification (SRS document) describes

how a software system should be developed. ...

 It offers high-grade definitions for the functional and non-

functional specifications of the software.

 Itcan also include use cases that illustrate how a user would interact

with the system upon completion.


Validation of SRS.
 attempt to ensure that: The SRS correctly describes the intended

system capabilities and characteristics that will satisfy the various

stakeholders' needs.

 The software requirements were correctly derived from the

system requirements, business rules, or other sources.


Validation of SRS

 Validity checks: The functions proposed by stakeholders should be aligned with

what the system needs to perform. You may find later that there are additional or

different functions are required instead.

 Consistency checks: Requirements in the document shouldn’t conflict or different

description of the same function

 Completeness checks: The document should include all the requirements and

constrains.

 Realism checks: Ensure the requirements can actually be implemented using the

knowledge of existing technology, the budget, schedule, etc.

 Verifiability: Requirements should be written so that they can be tested. This means
y o u
a n k
T h

You might also like