W3 - Lecture 6-RAD and Agile
W3 - Lecture 6-RAD and Agile
W3 - Lecture 6-RAD and Agile
(Fall 2019)
Lecture 5
RAD and Agile Software
Development
11/5/19 CSC291 - Software Engineering Concepts 2
Outline
METHODOLOGY
• Combining the best available techniques
• Using evolutionary prototypes
• Using workshops instead of interviews for requirements and
review design
• Selecting a set of CASE tools for modeling, prototyping and code
reusability
11/5/19 CSC291 - Software Engineering Concepts 9
RAD(Rapid Application
Development)
PEOPLE
• Success is dependent upon the involvement of people with the
right skills and talents
• Must be carefully selected, highly trained, and highly motivated.
• At the Requirements Planning and User Design stages, key
end users must be available to participate in workshops.
• While the system is being constructed, the Construction Team,
which uses the CASE toolset must be available
• At the end of the development cycle, the Team, which handles
training, must also be ready to move quickly.
11/5/19 CSC291 - Software Engineering Concepts 11
RAD(Rapid Application
Development)
User review Board
• A team of users who review the system after construction and decide
whether modifications are necessary.
Training Manager
• The person responsible for training users to work with the new system.
Project Manager
• The person who oversees the development effort.
Construction Team
• The SWAT (Skilled Workers with Advanced Tools) Team is a small team
of two to six developers who are highly trained to work together at high
speed.
• Skilled in the RAD methodology and in using the chosen CASE toolset.
Workshop Leader
• The specialist who organizes and conducts the workshops for Joint
Requirements Planning and Joint Application Design.
11/5/19 CSC291 - Software Engineering Concepts 13
MANAGEMENT
• Management must be totally committed to RAD in order to
manage the change in culture.
An Agile Process
• Agile means being able to “Deliver quickly. Change quickly.
Change often”
Agile Methods
• These methods
• Focus on the code
• Are based on an iterative approach to software development
• Are intended to deliver working software quickly and evolve
this quickly to meet changing requirements.
Incremental delivery The software is developed in increments with the customer specifying
the requirements to be included in each increment.
People not process The skills of the development team should be recognized. Team
members should be left to develop their own ways of working.
Adapt change Expect the system requirements to change and so design the system to
accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and in the
development process. Wherever possible, actively work to eliminate
complexity from the system.
11/5/19 CSC291 - Software Engineering Concepts 21
Extreme Programming
• All tests must be run for every build and the build is only
accepted if tests run successfully.
11/5/19 CSC291 - Software Engineering Concepts 23
Small releases The minimal useful set of functionality that provides business value
is developed first.
Releases of the system are frequent and incrementally add
functionality to the first release.
Simple design Enough design is carried out to meet the current requirements and
no more.
Test-first development An automated unit test framework is used to write tests for a new
piece of functionality before that functionality itself is implemented.
Collective ownership The pairs of developers work on all areas of the system, all the
developers take responsibility for all of the code. Anyone can change
anything.
Continuous integration As soon as the work on a task is complete, it is integrated into the
whole system. After any such integration, all the unit tests in the
system must pass.
Sustainable pace Large amounts of overtime are not considered acceptable as the net
effect is often to reduce code quality and productivity
On-site customer A representative of the end-user of the system (the customer) should
be available full time.
In an extreme programming process, the customer is a member of
the development team and is responsible for bringing system
requirements to the team for implementation.
11/5/19 CSC291 - Software Engineering Concepts 26
First, you select the article that you want from a displayed list. You
then have to tell the system how you will pay for it - this can either
be through a subscription, through a company account or by credit
card.
After this, you get a copyright form from the system to fill in and,
when you have submitted this, the article you want is downloaded
onto your computer.
You then choose a printer and a copy of the article is printed. You
tell the system if printing has been successful.
If the article is a print-only article, you canÕ t keep the PDF version
so it is automatically deleted from your computer .
11/5/19 CSC291 - Software Engineering Concepts 28
Task Cards
Task 1: Implement principal workflow
Agile VS RAD
Chapter Reading
• Chapter 3, Agile Software Development,
Software Engineering by Ian Sommerville
11/5/19 CSC291 - Software Engineering Concepts 32
Reading Assignment
• Find the other methods used for Agile Software
Development.