ppt1
ppt1
(PC-IT-SOE204)
• Cons:
• Inflexible to Changes: Difficult to go back to a previous phase
once completed.
• No overlapping of phases: It lack overlapping and interactions
among phases.
• Late Testing: Testing is done late in the process, leading to late
discovery of issues.
• Risky for Complex Projects: Not suitable for projects with high
uncertainty or complex requirements.
• Model doesn’t support delivery of system in pieces.
When to Use the Waterfall Model
• Small Projects: Suitable for small, simple
projects with well-understood requirements.
• Stable Requirements: When requirements are
clear, well-documented, and unlikely to
change.
• Project Control: When a structured approach
with clear documentation and milestones is
needed.
Iterative Waterfall model
Advantages
• Flexibility: Allows for changes and improvements
at each stage, reducing the risk of costly errors
and rework.
• Risk Reduction: Early identification and resolution
of issues through continuous feedback and
iteration.
• Improved Quality: Frequent testing and
refinement lead to higher quality software.
• Stakeholder Involvement: Continuous feedback
from stakeholders ensures that the final product
meets their needs and expectations.
Disadvantages
• Increased Complexity: Managing iterations
and changes can add complexity to the
project.
• Potential for Scope Creep: Frequent changes
and refinements may lead to scope creep if
not managed properly.
• Extended Timeline: Iterations may extend the
project timeline if not carefully controlled.
V- model
• The V-Model, also known as the Verification and
Validation Model, is a software development
model that extends the Waterfall Model by
emphasizing the importance of verification and
validation.
• The V-Model illustrates the relationship between
development stages and their corresponding
testing stages, with a focus on ensuring that each
development phase is matched with appropriate
validation activities.
V - model
Incremental Model
• A model where the software is developed in
incremental parts or modules, with each
increment adding functionality. This approach
allows partial product delivery and iterative
refinement.
Incremental Model
Advantages
• Early Delivery of Functionality: Users get to use and
benefit from parts of the system early in the
development process.
• Adaptability: Allows for changes and refinements
based on user feedback and evolving requirements.
• Risk Management: Reduces risk by delivering
incremental parts of the system, making it easier to
identify and address issues early.
• Continuous Improvement: Enables ongoing
enhancement and refinement of the system based on
real-world usage and feedback.
Disadvantages
• Integration Complexity: Frequent integration of
new increments can lead to challenges in ensuring
all components work together seamlessly.
• Incomplete System: Users may experience an
incomplete system if key functionalities are not
delivered in early increments.
• Scope Creep: There is a risk of scope creep as new
requirements and changes may be introduced in
each increment.
RAD
• The Rapid Application Development (RAD) model
is a type of incremental software development
methodology that emphasizes an extremely short
development cycle.
• The RAD model is a high-speed adaptation of the
Waterfall model, where components or functions
are developed in parallel as mini-projects.
• The developments are time-boxed, delivered, and
then assembled into a working prototype.
• This model allows for iterative user feedback and
rapid adjustment, which leads to a final product
that meets user requirements more closely.
RAD
When to use RAD model
• Short Development Timeframe.
• Well-Defined Business Objectives.
• High User Involvement and Feedback.
• Flexible and Adaptive Requirements.
• Availability of Skilled Team.
• Small and medium sized product.
Advantages
• Speed: RAD significantly reduces the time required to
develop a software system, as it emphasizes rapid
prototyping and iterative delivery.
• Flexibility and Adaptability: Changes can be
incorporated quickly into the development process
based on user feedback, making it highly adaptable.
• User Involvement: Continuous user interaction
ensures that the final product meets user
requirements and expectations.
• Reduced Risk: Early and continuous iterations help
identify and mitigate risks early in the development
process.
Disadvantages
• Need sufficient skilled human resources.
• The developed system should have proper
modularization characteristics.
• Requires User Commitment.
• Not suitable for large, complex projects.
Evolutionary models
• What if the requirements at the beginning is
not very clear or the requirements are
expected to change over time.
• It is a combination of the Iterative and
Incremental models of the software
development life cycle.
Prototype model
• The Prototype Model is a software
development approach that involves creating
a preliminary version of the software, called a
prototype, to explore and refine the
requirements and functionalities before
developing the final product.
• The Prototype Model (1975) was formally introduced by
Dr. Barry Boehm, a prominent figure in software
engineering, in his paper "Software Engineering with
Limited Resources".
Cont..
• This model is particularly useful in projects
where requirements are not well understood
or are expected to change during the
development process.
• Prototype is the process of quickly putting
together a working model (a prototype) in
order to test various aspects of a design.
Cont..
Two types of Prototype Models
• Throwaway prototype model
• Evolutionary prototype model
Throwaway prototype model
• The Throwaway Prototype Model, also known
as Rapid Prototyping, involves creating a
preliminary version of the software to
understand and refine requirements before
discarding it.
• The focus is on quickly building a prototype to
gather feedback and improve the
understanding of the system's needs.
Evolutionary Prototype Model
• Elicitation
• Analysis
• Specification / Documentation
• Validation / Review
Elicitation
• This is the process of gathering requirements
from stakeholders. It involves techniques such
as interviews, surveys, workshops, and
observations to identify and understand the
needs of users, customers, and other
stakeholders.
Requirement Elicitation Activity
• Fact – finding: consists of study of the
organization in which the target system will
operate and defining the proposed system
approach.
• Requirement gathering: captures information
from the viewpoint of various users to identify
what is to be built.
Cont..
• Evaluation: identifies the inconsistencies in
the gathered requirements and examines why
a requirement has been stated.
• Prioritization: determines the relative
importance of the requirements.
• Consolidation: brings together the
information collected from the previous steps
into a set of requirements consistent with the
goals identified during fact – finding.
Requirements Elicitation Techniques
• There are many requirements elicitation
techniques, such as, CORE, IBIS, FODA.
• There is no single approach that provide the
best results in all the cases.
• So the analyst should aware of a set of
techniques and select the best sub-set of
techniques to tackle different scenarios in the
project.
CORE(Controlled Requirements
Expression)
• To start with, CORE is the first technique used to
accomplish the task of requirements elicitation. It
is a requirements elicitation, analysis and
specification method developed in late 1970’s and
refined during early 1980’s.
145
Data Flow
146
Data Store
149
• DFD rules and tips
• Each process should have at least one
input and an output.
• Each data store should have at least one
data flow in and one data flow out.
• Data stored in a system must go through a
process.
• All processes in a DFD go to another
process or a data store.
SRS
• SRS stands for Software Requirements Specification. It's a
comprehensive document that outlines the functional and
non-functional requirements of a software system.
• The SRS document describes in detail what the software will
do and how it will perform under various conditions.
• It typically includes sections such as introduction, scope,
functional requirements, non-functional requirements,
system features, user interfaces, and more.
• The SRS serves as a contract between the client and the
development team, ensuring a common understanding of
the software requirements and guiding the development
process.
Functional requirements
• Functional requirements are specifications
that define what a system or software
application is supposed to do.
• They describe the functionality, features, and
operations that the system must support to
fulfill the needs of the users and stakeholders.
• These requirements focus on the behavior of
the system, detailing the tasks, processes, and
interactions it must perform.
Non-functional requirements
• Nonfunctional requirements, or NFRs, are a
set of specifications that describe the
system’s operation capabilities and
constraints.
• These are basically the requirements that
outline how well it operates, including things
like speed, security, reliability, data integrity,
etc.
Non-functional requirements
1. Performance. How fast does the system return results?
• Specifies the system's response time, throughput, resource usage, and scalability under certain
conditions.
• Example: The system must support 1000 concurrent users with an average response time of
less than 2 seconds.