Rapid Application
Development (RAD)
Model
Rapid Application Development (RAD) is a software development
approach that focuses on quick development and delivery of
applications through frequent user feedback, prototyping, and
minimal upfront planning.
Instead of building the entire system at once, RAD creates multiple
working prototypes and continuously improves them based on user
input until the final product is ready.
Coming up: Evolutionary Models: Prototyping 1
Rapid Application
Development (RAD)
Model
Coming up: Evolutionary Models: Prototyping 2
Key Characteristics of the RAD
Model
Rapid Prototyping: Focuses on creating working models quickly and
refining them through user feedback.
Iterative Process: The product is developed in iterations, with feedback
incorporated at each stage.
Minimal Planning: Less emphasis on planning and more on
development and user involvement.
Component-Based Construction: Uses reusable components wherever
possible.
User Involvement: Continuous user feedback is integral throughout the
development lifecycle.
Coming up: Evolutionary Models: Prototyping 3
Phases of RAD
Requirements Planning
Gather broad requirements with user input.
Establish project scope and constraints.
User Design
Users and developers work together to design and prototype
interfaces.
Heavy focus on user feedback.
Rapid Construction
Coding and system integration take place.
Iterative prototyping is refined into a working system.
Cutover (Implementation)
Final testing, data conversion, and user training.
The system goes live.
Coming up: Evolutionary Models: Prototyping 4
RAD
Advantages
Fast development and delivery.
Flexible to changing requirements.
Continuous user feedback
improves usability.
Encourages reusability of components.
Disadvantages
Not suitable for large, complex systems.
Requires highly skilled developers and designers.
Dependence on strong user involvement.
Poor documentation due to speed.
Coming up: Evolutionary Models: Prototyping 5
Evolutionary Models:
Prototyping
The Prototyping Model is a software
development approach where a
prototype (sample version) of the Quick plan
Quick
system is built first to understand user Communication plan
communication
requirements clearly.
Modeling
The final system is developed after Modeling
Quickdesign
Quick
refining the prototype through user design
feedback.
Deployment
Deployment
Delivery
delivery & Construction
& Feedback
feedback Construction
of
of prototype
prototype
Coming up: Evolutionary Models: The Spiral 6
Prototyping
Requirement Gathering
Models
→ Basic requirements are collected from users.
→ Not all details are known at this stage.
Quick Design
→ A simple design is created to show the system’s main features.
Build Prototype
→ A working model (mock-up) of the software is developed.
User Evaluation
→ Users test the prototype and give feedback.
Refinement
→ Based on feedback, the prototype is improved.
Coming up: The Unified Process (UP) 7
Advantages
Helps understand unclear or changing
requirements
Encourages early user involvement
Reduces chances of major design mistakes
Quicker feedback and improvement
Disadvantages
Can be time-consuming if repeated too much
Users might confuse prototype with final product
Not suitable for complex or performance-critical
systems
aaza 8
Agile Model
The Agile Model is a software development approach
that focuses on fast delivery, customer collaboration,
and flexibility. It breaks the project into small parts
called iterations or sprints, and each part delivers a
working product.
Key Features of Agile
Development is done in small, manageable cycles
Frequent feedback from users
Welcomes changing requirements
Focus on working software over documentation
9
The Agile Model
Coming up: UP Phases 10
Agile Model
Plan→ Identify requirements, define goals, and plan what features will be
built in the sprint.
Design→ Create a simple, flexible design for the features to be developed.
Develop→ Write code and build the features based on the sprint plan.
Test→ Test the developed features to find and fix bugs or issues.
Deploy→ Release the working software to users or a staging environment.
Coming up: UP Work Products 11
Agile Model
Advantages of Agile Model
•Faster delivery
•Continuous customer feedback
•Flexible to changes
•Improved quality
•High transparency
•Better team collaboration
Disadvantages of Agile Model
•Requires active user involvement
•Hard to predict time and cost
•Not suitable for inexperienced teams
Coming up: UP Work Products 12
UP Work Products
Inception phase
Elaboration phase
Vision document
Init ial use-case model
Init ial project glossary Construction phase
Use-case model
Init ial business case Supplement ary requirement s
Init ial risk assessment . including non-funct ional Design model
Transition phase
Project plan, Analysis model Soft ware component s
phases and it erat ions. Soft ware archit ect ure Int egrat ed soft ware Delivered soft ware increment
Business model, Descript ion. increment Bet a t est report s
if necessary. Execut able archit ect ural Test plan and procedure General user feedback
One or more prot ot ypes prot ot ype.
I nc ept i o
Test cases
n Preliminary design model Support document at ion
Revised risk list user manuals
Project plan including inst allat ion manuals
it erat ion plan descript ion of current
adapt ed workflows increment
milest ones
t echnical work product s
Preliminary user manual
Coming up: Pick a model 13
Pick a model
Developing software to automatically drive
racecars through a track without crashing. This
has never been attempted before under software
control. The requirements are stable.
Waterfall, Incremental, Spiral, RAD?
Coming up: Pick a model 14
Pick a model
Developing software to track the financial
bailout. The software requirements are very
clear. You need to create a system to perform 3
distinct tasks:
Display where the money went
Display the amount of money left and how it’s allocated
Allow people to request funds from a particular subset
of the money
All functions will interface with each other and the
same underlying database.
Waterfall, Incremental, Spiral, RAD?
Coming up: Pick a model 15
Pick a model
Just checking if you were awake
Coming up: Prescriptive Software Models 16
Prescriptive Software Models
Variations of these models are VERY commonly used today
If you think about it, they are focused in different areas,
but have many similarities (all do the basic structure --
communication, planning, construction, testing,
deployment, maintenance)
You will almost definitely do some version of these
processes when you graduate
If you had never been to CS421, and never learned them,
and then started your own company, you would STILL do
your own version of these processes… they make sense!
Currently these processes are evolving into Agile methods
Lets have a look!
End of presentation 17