RAPID APPLICATION DESIGN (RAD)
It is a development methodology that provides advanced developments tools, prebuilt, objects, and collaboration tools. These tools include; interative prototyping (at any stage of development), graphical user interfaces builder, computer aided software engineering (CASE), fourth-generation programming languages, database Management System (DBMS), code generators, object-oriented techniques. The key is to target steps that can be overlap and be
performed by multiple teams. It is successful at quickly producing thousands of applications. It is most suitable on projects where functionality of the system is clearly visible and whereby the project is of small-medium scale and of short duration.
Rapid Application Development (RAD) is an effective methodology to provide much quicker development and higher-quality results than those achieved with the other software development methodologies. It is designed in such a way that; it easily takes the maximum advantages of the software development. The main objective of this methodology is to accelerate the entire software development process. The goal is easily achievable because it allows active user participation in the development process.
Stages of RAD
There are four phase/stages of RAD
i. Requirement Planning Phase / Concept Definition stage.
This phase is similar to the preliminary-analysis, system-analysis, and design phases of the SDLC. In this phase, the overall requirements for the system are defined, a team is identified, and feasibility is determined.
It defines the business functions and data subject area that the system will support and determine the subject scope. Users, managers and managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorizations to continues.
ii. User Design Phase / Functional Design
In this phase, representatives of the users work with the system analysts, designers, and programmers to interactively create the design of the system. One technique for working with all of these various stakeholders is the so-called JAD session. A JAD session gets all of the stakeholders together to have a structured discussion about the design of the system. Application developers also sit in on this meeting and observe, trying to understand the essence
of the requirements. In this stage the user interacts with the systems analyst s and develop models and prototypes
that represent all system process, inputs, and outputs. The RAD groups or subgroups typically use a combination of Joint Application Development (JAD) techniques and CASE tools to translate user needs into working models.
iii. Construction phase / Development stage.
In the construction phase, the application developers, working with the users, build the next version of the system. This is an interactive process, and changes can be made as developers are working on the program. This step is executed in parallel with the User Design step in an iterative fashion, until an acceptable version of the product is developed. It focuses on program and application development task similar to the SDLC. In RAD, however users continue to participate and can still suggest changes or improvements as actual screen or reports are developed. It completes the construction of the physical database and application system. It builds the conversion system and develops users aids and deployment works plans.
iv. Cutover Phase / Deployment Stage
In this step, which is similar to the implementation step of the SDLC, the system goes live. All steps required to move from the previous state to the use of the new system are completed here. Includes the final user training and testing, data conversion and implementation of the application system. Just like the final tasks in the SDLC implementation Phase, it includes data conversion, testing, changeover to the new system, and user training. Compared with
traditional methods, the entire process is compressed. As a result, the new system is built, delivered, and placed in operation much sooner.
Advantages of the RAD model:
i. Rapid Application development model helps to reduce the risk and required efforts on the part
of the software developer
ii. This model also helps clients to take quick reviews for the project
iii. This methodology encourages customer feedback which always provides improvement scope for any software development project
iv. The operational version of an application is available much earlier than with waterfall, incremental or spiral framework.
v. Because RAD produces systems more quickly and to a business focus, this approach tends to produce system at a lower cost.
vi. Concentrates on essential system elements from user view point.
vii. Provide the ability to rapidly change system design as demanded by users.
viii. Produces a tighter fit between user requirement and system specification.
ix. Generally, produces a dramatic savings in time, money and human effort.
Disadvantages RAD model:
i. This model depends on the strong team and individual performances for clearly identifying the exact requirement of the business
ii. It only works on systems that can be modularized can be built using this methodology
iii. This approach demands highly skilled developers and designer’s team which may not be possible for every organization
iv. This method is not applicable for the developer to use in small budget projects as a cost of modeling and automated code generation is very high.
v. More speed and lower cost may lead to lower overall system quality.
vi. Danger of misalignment of developed system with the business due to missing information.
vii. Project may end up with more requirements than needed.
viii. Potential for features creep where more features are added to the system over the course of development.
ix. Potential for inconsistence designs within and across system.
x. Potential for violation of programming standards related to inconsistence naming conventions and inconsistent documentation.
Situation Where most appropriate: –
i. Project scope is focused, such that business objectives are well defined and narrow.
ii. Functionality of the system is clearly visible at the user interface.
iii. Users possess detailed knowledge of the application area.
iv. Senior management commitment exists to ensure end user involvement.
v. Requirements of the system are unknown or uncertain.
vi. It is not possible to define requirements accurately ahead of time because the situation is new or the system being employed is highly innovative.
vii. Developers are skilled in the use of advanced tools.