System Analysis and Design Methodologies 22
System Analysis and Design Methodologies 22
System analysis and design methodologies help develop and manage complex systems,
especially in software engineering. Each methodology provides a structured approach to
gathering requirements, designing, implementing, and testing systems. Here are some common
methodologies:
1. Waterfall Model
Description: This is a linear and sequential approach where each phase must be
completed before the next begins. The stages include requirements analysis, design,
implementation, testing, deployment, and maintenance.
Advantages: Simple, easy to understand, and well-suited for projects with clear and fixed
requirements.
Disadvantages: Not flexible, as changes are difficult to implement once a stage is
completed. It can lead to delays if requirements are not well-understood at the start.
The Waterfall Model was the first Process Model to be introduced. It is also referred to as
a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model,
each phase must be completed before the next phase can begin and there is no overlapping in the
phases.
The Waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow.
This means that any phase in the development process begins only if the previous phase is
complete. In this waterfall model, the phases do not overlap.
Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure
success of the project. In "The Waterfall" approach, the whole process of software development
is divided into separate phases. In this Waterfall model, typically, the outcome of one phase acts
as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall Model.
The sequential phases in Waterfall model are −
All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases. The next phase is started only after the defined
set of goals are achieved for previous phase and it is signed off, so the name "Waterfall Model".
In this model, phases do not overlap.
Waterfall Model - Application
Every software developed is different and requires a suitable SDLC approach to be followed
based on the internal and external factors. Some situations where the use of Waterfall model is
most appropriate are −
The advantages of waterfall development are that it allows for departmentalization and control.
A schedule can be set with deadlines for each stage of development and a product can proceed
through the development process model phases one by one.
2. Agile Methodology
Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software product.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves
cross functional teams working simultaneously on various areas like −
Planning
Requirements Analysis
Design
Coding
Unit Testing and
Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and important
stakeholders.
Agile model believes that every project needs to be handled differently and the existing methods
need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time
boxes (small time frames) to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration. Each
build is incremental in terms of features; the final build holds all the features required by the
customer.
Description: Combines iterative development with the Waterfall approach and focuses on
risk assessment. Each phase (planning, risk analysis, engineering, and evaluation) is
revisited in a “spiral” for continuous improvement.
Advantages: Helps identify and mitigate risks early, and is flexible in incorporating
feedback throughout.
Disadvantages: Can be costly and complex, and is best suited for large-scale projects with
significant risk factors.
The spiral model combines the idea of iterative development with the systematic,
controlled aspects of the waterfall model. This Spiral model is a combination of iterative
development process model and sequential linear development model i.e. the waterfall
model with a very high emphasis on risk analysis. It allows incremental releases of the
product or incremental refinement through each iteration around the spiral.
The Spiral Model is a software development approach that involves iterative development with
risk management. It is appropriate for large, complex, and high-risk projects, because it provides
continuous improvement through multiple phases or spirals. Planning, prototyping, and feedback
are the core principal of each stage in this mode
Spiral Model - Design
The spiral model has four phases. A software project repeatedly passes through these
phases in iterations called Spirals.
Identification
This phase starts with gathering the business requirements in the baseline spiral. In the
subsequent spirals as the product matures, identification of system requirements,
subsystem requirements and unit requirements are all done in this phase.
This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the end of the spiral, the
product is deployed in the identified market.
Design
The Design phase starts with the conceptual design in the baseline spiral and involves
architectural design, logical design of modules, physical product design and the final
design in the subsequent spirals.
Construct or Build
The Construct phase refers to production of the actual software product at every spiral. In
the baseline spiral, when the product is just thought of and the design is being developed
a POC (Proof of Concept) is developed in this phase to get customer feedback.
Then in the subsequent spirals with higher clarity on requirements and design details a
working model of the software called build is produced with a version number. These
builds are sent to the customer for feedback.
Risk Analysis includes identifying, estimating and monitoring the technical feasibility
and management risks, such as schedule slippage and cost overrun. After testing the
build, at the end of first iteration, the customer evaluates the software and provides
feedback.
The following illustration is a representation of the Spiral Model, listing the activities in
each phase.
Based on the customer evaluation, the software development process enters the next
iteration and subsequently follows the linear approach to implement the feedback
suggested by the customer. The process of iterations along the spiral continues
throughout the life of the software.
Advantages
Description: An extension of the Waterfall model where testing phases correspond to each
development stage. Verification and validation occur simultaneously to ensure early defect
detection.
Disadvantages: It’s rigid, so changes are difficult to incorporate, making it less ideal for
projects with evolving requirements.
The V-Model is a software development life cycle (SDLC) model that provides a systematic
and visual representation of the software development process. It is based on the idea of a
“V” shape, with the two legs of the “V” representing the progression of the software
development process from requirements gathering and analysis to design, implementation,
testing, and maintenance.
The V-Model is an extension of the waterfall model and is based on the association of a
testing phase for each corresponding development stage. This means that for every single
phase in the development cycle, there is a directly associated testing phase. This is a highly-
disciplined model and the next phase starts only after completion of the previous phase.
V-Model - Design
Under the V-Model, the corresponding testing phase of the development phase is planned in
parallel. So, there are Verification phases on one side of the ‘V’ and Validation phases on the
other side. The Coding Phase joins the two sides of the V-Model.
The following illustration depicts the different phases in a V-Model of the SDLC.
. Prototyping Model
Description: In this model, a prototype of the system is built, reviewed by users, and
improved upon based on feedback. This cycle repeats until the final system meets user
expectations.
The Prototyping Model is one of the most popularly used Software Development Life
Cycle Models (SDLC models). This model is used when the customers do not know the
exact project requirements beforehand. In this model, a prototype of the end product is
first developed, tested, and refined as per customer feedback repeatedly till a final
acceptable prototype is achieved which forms the basis for developing the final product.
The prototyping model is a systems development method in which a prototype is built,
tested and then reworked as necessary until an acceptable outcome is achieved from
which the complete system or product can be developed.
This model works best in scenarios where not all the project requirements are known in
detail ahead of time. It is an iterative, trial-and-error process that takes place between the
developers and the users.
o Prototyping(methodologies)
A small-scale, incomplete, but working sample of a desired system is developed.
Advantages: Reduces risk by involving users early, and users get a better understanding
of what the final product will look like.
Disadvantages: Time-consuming, as multiple prototypes might be needed, and it can
lead to incomplete systems if not managed well.
5. RAD (Rapid Application Development)
Description: RAD focuses on rapid development using component-based construction and
prototyping. It prioritizes quick releases and customer feedback.
Advantages: Faster development time, regular user feedback, and flexibility to modify requirements.
Disadvantages: Less suitable for large, complex projects and may result in lower quality if the focus
on speed compromises thorough testing.
What is RAD?
Rapid Application Development, or RAD, means an adaptive software development model based on
prototyping and quick feedback with less emphasis on specific planning. In general, the RAD approach
prioritizes development and building a prototype rather than planning. With rapid application development,
developers can quickly make multiple iterations and updates to the software without starting from scratch. This
helps ensure that the final outcome is more quality-focused and aligns with the end users’ requirements.
Rapid application development is a software development methodology that uses minimal planning in favor of
rapid prototyping. A prototype is a working model that is functionally equivalent to a component of the
product.
In the RAD model, the functional modules are developed in parallel as prototypes and are integrated to make
the complete product for faster product delivery. Since there is no detailed preplanning, it makes it easier to
incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small teams comprising of developers, domain
experts, customer representatives and other IT resources working progressively on their component or
prototype.
The most important aspect for this model to be successful is to make sure that the prototypes developed are
reusable.
RAD model distributes the analysis, design, build and test phases into a series of short, iterative development
cycles.
Business Modelling
The business model for the product under development is designed in terms of flow of information and the
distribution of information between various business channels. A complete business analysis is performed to
find the vital information for business, how it can be obtained, how and when is the information processed and
what are the factors driving successful flow of information.
Data Modelling
The information gathered in the Business Modelling phase is reviewed and analyzed to form sets of data
objects vital for the business. The attributes of all data sets is identified and defined. The relation between
these data objects are established and defined in detail in relevance to the business model.
Process Modelling
The data object sets defined in the Data Modelling phase are converted to establish the business information
flow needed to achieve specific business objectives as per the business model. The process model for any
changes or enhancements to the data object sets is defined in this phase. Process descriptions for adding,
deleting, retrieving or modifying a data object are given.
Application Generation
The actual system is built and coding is done by using automation tools to convert process and data models
into actual prototypes.
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
with complete test coverage. Since most of the programming components have already been tested, it reduces
the risk of any major issues.
The iterative model is a software development methodology that involves breaking down a project into
smaller, more manageable parts, called iterations. Each iteration builds on the previous one, and feedback
and adjustments are incorporated into subsequent iterations.
The iterative model is often used in conjunction with incremental development, which involves splitting
the software development lifecycle into smaller segments that build upon each other. The iterative model
is considered an effective way to manage complex projects
In the Iterative model, iterative process starts with a simple implementation of a small set of the software
requirements and iteratively enhances the evolving versions until the complete system is implemented and
ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of requirements. Instead,
development begins by specifying and implementing just part of the software, which is then reviewed to
identify further requirements. This process is then repeated, producing a new version of the software at the
end of each iteration of the model.
Iterative and Incremental development is a combination of both iterative design or iterative method and
incremental build model for development. "During software development, more than one iteration of the
software development cycle may be in progress at the same time." This process may be described as an
"evolutionary acquisition" or "incremental build" approach."
In this incremental model, the whole requirement is divided into various builds. During each iteration, the
development module goes through the requirements, design, implementation and testing phases. Each
subsequent release of the module adds function to the previous release. The process continues till the
complete system is ready as per the requirement.
The key to a successful use of an iterative software development lifecycle is rigorous validation of
requirements, and verification & testing of each version of the software against those requirements within
each cycle of the model. As the software evolves through successive cycles, tests must be repeated and
extended to verify each version of the software.