0% found this document useful (0 votes)
9 views15 pages

System Analysis and Design Methodologies 22

The document outlines various system analysis and design methodologies used in software engineering, including the Waterfall Model, Agile Methodology, Spiral Model, V-Model, Prototyping Model, and Rapid Application Development (RAD). Each methodology is described with its advantages and disadvantages, emphasizing their structured approaches to software development, requirement gathering, and testing. The document highlights the importance of selecting an appropriate methodology based on project requirements and complexity.

Uploaded by

bonniemurithi95
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views15 pages

System Analysis and Design Methodologies 22

The document outlines various system analysis and design methodologies used in software engineering, including the Waterfall Model, Agile Methodology, Spiral Model, V-Model, Prototyping Model, and Rapid Application Development (RAD). Each methodology is described with its advantages and disadvantages, emphasizing their structured approaches to software development, requirement gathering, and testing. The document highlights the importance of selecting an appropriate methodology based on project requirements and complexity.

Uploaded by

bonniemurithi95
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

SYSTEM ANALYSIS AND DESIGN METHODOLOGIES

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 Model - Design

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 −

 Requirement Gathering and analysis − All possible requirements of the system to be


developed are captured in this phase and documented in a requirement specification
document.
 System Design − The requirement specifications from first phase are studied in this phase
and the system design is prepared. This system design helps in specifying hardware and
system requirements and helps in defining the overall system architecture.
 Implementation − With inputs from the system design, the system is first developed in
small programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred to as Unit Testing.
 Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
 Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.
 Maintenance − There are some issues which come up in the client environment. To fix
those issues, patches are released. Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the customer environment.

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 −

 Requirements are very well documented, clear and fixed.


 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the product.
 The project is short.

Waterfall Model - Advantages

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.

Development moves from concept, through design, implementation, testing, installation,


troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds
in strict order.

Some of the major advantages of the Waterfall Model are as follows −

 Simple and easy to understand and use


 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.

2. Agile Methodology

 Description: Agile is an iterative and incremental approach that focuses on collaboration,


customer feedback, and small, rapid releases. It includes frameworks like Scrum and
Kanban.
 Advantages: Flexible, adaptable to changing requirements, and promotes active
stakeholder engagement. It delivers parts of the system quickly, allowing for regular
feedback.
 Disadvantages: Can lead to scope creep if requirements continually change, and it may
require more time from customers and end-users.

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.

Here is a graphical illustration of the Agile Model −


3. Spiral Model

 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.

 Evaluation and Risk Analysis

 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

1. Software is produced early in the software life cycle.


2. Risk handling is one of important advantages of the Spiral model, it is best development
model to follow due to the risk analysis and risk handling at every phase.
3. Flexibility in requirements. In this model, we can easily change requirements at later phases
and can be incorporated accurately. Also, additional Functionality can be added at a later
date.
4. It is good for large and complex projects.
5. It is good for customer satisfaction. We can involve customers in the development of
products at early phase of the software development. Also, software is produced early in the
software life cycle.
6. Strong approval and documentation control.
7. It is suitable for high risk projects, where business needs may be unstable. A highly
customized product can be developed using this.
Disadvantages of Spiral Model
disadvantages of Spiral Model
1. It is not suitable for small projects as it is expensive.
2. It is much more complex than other SDLC models.
3. Too much dependable on risk analysis and requires highly specific expertise.
4. Difficulty in time management. As the number of phases is unknown at the start of the
project, so time estimation is very difficult.
5. Spiral may go on indefinitely.
6. End of the project may not be known early.
7. It is not suitable for low risk projects.
8. May be hard to define objective, verifiable milestones. Large numbers of intermediate stages
require excessive documentation.

4. V-Model (Verification and Validation Model)

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.

Advantages: Emphasizes validation, leading to higher-quality outcomes. Issues are detected


early, reducing costs associated with bug fixes.

Disadvantages: It’s rigid, so changes are difficult to incorporate, making it less ideal for
projects with evolving requirements.

The V-model is an SDLC model where execution of processes happens in a sequential


manner in a V-shape. It is also known as Verification and Validation model.

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.

Has an Iterative process involving a close working relationship between the


designer and the users.

 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 Design

RAD model distributes the analysis, design, build and test phases into a series of short, iterative development
cycles.

Following are the various phases of the RAD Model −

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.

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
with complete test coverage. Since most of the programming components have already been tested, it reduces
the risk of any major issues.

The following illustration describes the RAD Model in detail.


.

Iterative model(when dealing with complex project)

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 Model - Design


Iterative process starts with a simple implementation of a subset of the software requirements and
iteratively enhances the evolving versions until the full system is implemented. At each iteration, design
modifications are made and new functional capabilities are added. The basic idea behind this method is to
develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental).

The following illustration is a representation of the Iterative and Incremental 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.

Advantage(Pros) of Iterative Model:


1. Testing and debugging during smaller iteration is easy.
2. A Parallel development can plan.
3. It is easily acceptable to ever-changing needs of the project.
4. Risks are identified and resolved during iteration.
5. Limited time spent on documentation and extra time on designing.

Disadvantage(Cons) of Iterative Model:


1. It is not suitable for smaller projects.
2. More Resources may be required.
3. Design can be changed again and again because of imperfect requirements.
4. Requirement changes can cause over budget.
5. Project completion date not confirmed because of changing requirements.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy