0% found this document useful (0 votes)
42 views20 pages

Unit 1 Prescriptive

The document discusses the Incremental Process Model of software development, which involves building systems in small, manageable increments, allowing for early functionality and customer feedback. It outlines the phases of the model, types such as Staged Delivery and Parallel Development, and highlights its advantages like faster delivery and flexibility, as well as disadvantages including the need for skilled teams and potential cost increases. Additionally, it covers the Rapid Application Development (RAD) model, emphasizing quick iterations and user involvement, while also noting its challenges and limitations.

Uploaded by

swathiachu02
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)
42 views20 pages

Unit 1 Prescriptive

The document discusses the Incremental Process Model of software development, which involves building systems in small, manageable increments, allowing for early functionality and customer feedback. It outlines the phases of the model, types such as Staged Delivery and Parallel Development, and highlights its advantages like faster delivery and flexibility, as well as disadvantages including the need for skilled teams and potential cost increases. Additionally, it covers the Rapid Application Development (RAD) model, emphasizing quick iterations and user involvement, while also noting its challenges and limitations.

Uploaded by

swathiachu02
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

UNIT 1

WATERFALL MODEL
Incremental Process Model
The Incremental Process Model is a method of software development
where the system is built step by step. Instead of delivering the whole
system at once, it is developed and delivered in small parts called
increments. Each increment builds upon the previous one by adding new
functionality, until the complete system is finished.

Key Characteristics of Incremental Process Model

 Partial System Delivery: The system is developed and delivered


in small, manageable pieces. Each part adds new features to the
previous version.

 Early Functionality: Basic functionality is available early in the


project. This allows users to start using and testing the system
quickly.

 Customer Feedback Loop: Feedback is collected after each part is


delivered. This helps improve the next version of the system.

 Flexible to Changes: Changes or new features can be added


between increments. This makes the model flexible to evolving
needs.

 Combination of Linear and Iterative Approaches: Combines


the structured approach of Waterfall with flexibility. Supports both
planning and ongoing improvements.

Phases of the Incremental Model

The phases of Incremental model is divided into the four parts which is
Requirement, Design, Testing phases and Implementation phase. In those
phase, the process continues until we got the expected output at the end.
Requirement Analysis

The first step in the Incremental Model is understanding what the software
needs to do. The team gathers the requirements from the product experts
and clearly defines the system’s functional needs. This phase is important
because it sets the foundation for everything else in the development
process.

Design & Development

Next, the team focuses on designing how the software will function and
starts developing it. They work on adding new features and making sure
the system works as expected. The design and development steps go
hand-in-hand to build the functionality of the software.

Testing

Once a feature is developed, it goes through testing. The testing phase


checks how the software performs, including both new and existing
features. The team uses different testing methods to make sure
everything is working correctly.

Implementation

This phase involves writing the final code based on the design and
development steps. After testing the functionality, the team verify that
everything is working as planned. By the end of this phase, the product is
gradually improved and updated until it becomes the final working
version.

Types of Incremental Model

The Incremental Model has two main types, each offers different
approaches to how software is developed in parts. Here are the two types:

1.Staged Delivery Model

The Staged Delivery Model develops software in a sequence of planned


stages, where each stage delivers a functional part of the system. Each
release brings the product closer to completion, allowing it to evolve
gradually. Working versions are delivered at regular intervals, making
progress visible and manageable throughout the development process.
2.Parallel Development Model

The Parallel Development Model divides the system into multiple modules
that are developed simultaneously at the same time by different teams.
By working on separate components in parallel, the development process
becomes faster and more efficient. This approach reduces overall project
time and allows teams to focus on specific functionalities concurrently.

Parallel Development Model


Use Cases of Incremental Process Model

 When the requirements are well-defined and clear


Because increments can be planned and developed step-by-step
with minimal requirement changes.

 If the project has a long development timeline


Incremental delivery helps manage complexity over time by
breaking the project into smaller, manageable parts.

 If the customer needs a quick product release


You can deliver the most critical features early in the first increment,
allowing the customer to start using the software sooner.

 When you want to develop the most important features first


This allows early feedback on key functionalities and better
prioritization for subsequent increments.

Advantages of Incremental Process Model

The Incremental Model of software development builds a system in small,


manageable sections (increments), making it a good choice for many
projects. Below are the key advantages:

 Faster Software Delivery

o Initial working versions of the software can be delivered


quickly.

o Early delivery increases customer satisfaction and feedback


opportunities.

 Clear Understanding for Clients

o Clients get to see parts of the system at each stage.

o This visibility ensures that the final product meets their


expectations.

 Easy to Implement Changes

o Requirements can evolve, and changes can be incorporated in


subsequent increments.

o It supports flexibility without heavily disrupting earlier stages.

 Effective Risk Management

o Risks can be identified and handled early due to the staged


approach.
o Each increment allows for testing and validation, reducing the
impact of unforeseen issues.

 Flexible Criteria and Scope

o Requirements can be adjusted without a major cost increase.

o Better scope management helps keep the project aligned with


business goals.

 Cost-Effective

o Compared to models like the Waterfall, the incremental model


is generally more cost-efficient.

o Budget is spread across stages, making it easier to manage


finances.

 Simpler Error Identification

o Since development is done in parts, it's easier to pinpoint and


fix errors within a specific increment.

o Testing each module separately enhances quality and


reliability.

Disadvantages of Incremental Process Model

Incremental Model comes with some limitations and challenges. Below are
the key disadvantages:

 Requires a Skilled Team and Proper Planning

o Successful implementation demands an experienced team.

o Poor planning or coordination can lead to confusion between


increments.

 Cost Can Increase Over Time

o Due to repeated testing, redesign, and integration in every


cycle, the overall project cost may rise.

o Continuous iteration involves added overhead

 Incomplete Requirement Gathering Can Cause Design Issues

o If all requirements are not identified early, the system


architecture may not support future needs.

o Inadequate upfront design can lead to rework and


architectural mismatches.
 Lack of Smooth Flow Between Increments

o Each iteration may function independently, which can create


inconsistencies.

o There might be integration challenges when combining all the


increments into a unified product.

 High Effort to Fix Repeated Issues

o A defect in one increment may exist in others.

o Fixing the same issue across multiple units can be time-


consuming and resource-intensive.
Rapid Application Development Model
(RAD)
The RAD model or Rapid Application Development model is a type of
software development methodology that emphasizes quick and iterative
release cycles, primarily focusing on delivering working software in shorter
timelines.

Unlike traditional models such as the Waterfall model, RAD is designed to


be more flexible and responsive to user feedback and changing
requirements throughout the development process.

The RAD model is a type of incremental process model in which there is a


concise development cycle. The RAD model is used when the
requirements are fully understood and the component-based construction
approach is adopted.

Various phases in RAD are Requirement


Gathering, Analysis and Planning, Design, Build or Construction, and
finally Deployment.
This model consists of 4 basic phases:

1. Requirements Planning - This involves the use of various


techniques used in requirements elicitation like brainstorming, task
analysis, form analysis, user scenarios, FAST (Facilitated Application
Development Technique), etc. It also consists of the entire
structured plan describing the critical data, methods to obtain it,
and then processing it to form a final refined model.

2. User Description - This phase consists of taking user feedback and


building the prototype using developer tools. In other words, it
includes re-examination and validation of the data collected in the
first phase. The dataset attributes are also identified and elucidated
in this phase.
3. Construction - In this phase, refinement of the prototype and
delivery takes place. It includes the actual use of powerful
automated tools to transform processes and data models into the
final working product. All the required modifications and
enhancements are to be done in this phase.

4. Cutover - All the interfaces between the independent modules


developed by separate teams have to be tested properly. The use of
powerfully automated tools and subparts makes testing easier. This
is followed by acceptance testing by the user.

When to use the RAD Model?

1. Well-understood Requirements: When project requirements are


stable and transparent, RAD is appropriate.

2. Time-sensitive Projects: Suitable for projects that need to be


developed and delivered quickly due to tight deadlines.

3. Small to Medium-Sized Projects: Better suited for smaller


initiatives requiring a controllable number of team members.

4. High User Involvement: Fits where ongoing input and interaction


from users are essential.

5. Innovation and Creativity: Helpful for tasks requiring creative


inquiry and innovation.

6. Prototyping: It is necessary when developing and improving


prototypes is a key component of the development process.

7. Low technological Complexity: Suitable for tasks using


comparatively straightforward technological specifications.

Objectives of Rapid Application Development Model (RAD)

1. Speedy Development

2. Adaptability and Flexibility

3. Stakeholder Participation

4. Improved Interaction

5. Improved Quality via Prototyping

6. Customer Satisfaction

Advantages of Rapid Application Development Model (RAD)

 The use of reusable components helps to reduce the cycle time of


the project.
 Feedback from the customer is available at the initial stages.

 Reduced costs as fewer developers are required.

 The use of powerful development tools results in better quality


products in comparatively shorter periods.

 The progress and development of the project can be measured


through the various stages.

 It is easier to accommodate changing requirements due to the short


iteration time spans.

 Productivity may be quickly boosted with a lower number of


employees.

Disadvantages of Rapid application development model (RAD)

 The use of powerful and efficient tools requires highly skilled


professionals.

 The absence of reusable components can lead to the failure of the


project.

 The team leader must work closely with the developers and
customers to close the project on time.

 The systems which cannot be modularized suitably cannot use this


model.

 Customer involvement is required throughout the life cycle.

 It is not meant for small-scale projects as in such cases, the cost of


using automated tools and techniques may exceed the entire
budget of the project.

 Not every application can be used with RAD.

Drawbacks of Rapid Application Development

 It requires multiple teams or a large number of people to work on


scalable projects.

 This model requires heavily committed developers and customers. If


commitment is lacking then RAD projects will fail.

 The projects using the RAD model require heavy resources.

 If there is no appropriate modularization then RAD projects fail.


Performance can be a problem for such projects.

 The projects using the RAD model find it difficult to adopt new
technologies. This is because RAD focuses on quickly building and
refining prototypes using existing tools. Changing to new
technologies can disrupt this process, making it harder to keep up
with the fast pace of development. Even with skilled developers and
advanced tools, the rapid nature of RAD leaves little time to learn
and integrate new technologies smoothly.
Prot
otyping models are super useful for refining ideas and testing concepts
early, but they’re not without their downsides. Here are some key
drawbacks:

- **Time and Cost**: While prototyping can save costs in the long run,
developing multiple iterations requires time and resources upfront.

- **Misleading Perception**: Stakeholders may mistake a rough prototype


for the final product and judge its flaws too harshly.

- **Scope Creep**: It’s easy to keep refining the prototype endlessly,


leading to delays in actual product development.

- **Over-Reliance on User Feedback**: While user input is valuable,


excessive reliance might result in design decisions that cater too much to
short-term opinions rather than long-term usability.

- **Technical Constraints**: Some elements might work well in a prototype


but become difficult or expensive to implement in the final version.

Prototyping is still incredibly powerful, but balancing creativity with


practicality is key! Are you working on a project where this might be
relevant?

You might also like