Software Development through – RAD Model

What is RAD Model ?

Rapid application development (RAD) is an incremental software development process model that emphasizes an extremely short development cycle.
The RAD model is a ―high-speed adaptation of the linear sequential model in which rapid development is achieved by using component-based construction.

Situation When RAD Model is Useful:

RAD should be used when there is a need to create a system that can be required in 2-3 months of time.
It should be used if there‟s high availability of designers for modeling and the budget is high enough to afford their cost
enables a development team to create a ―fully functional system within very short time periods (e.g., 60 to 90 days).

Phases

1. Communication:

Communication phase is used to understand the requirements of the project.

2. Planning:

Planning is very essential because multiple project teams are working parallel in RAD model

3. Modeling:

a) Business modeling:

The information flow among business functions is represented.

b) Data modeling:

The information flow defined as part of the business modeling phase is refined into a set of data objects that are needed to support the business.

c) Process modeling:

The data objects defined in the data modeling phase are transformed to achieve the information flow necessary to implement a business function.

4. Construction:

RAD process model reuses the existing program components (when possible) or create reusable components (when necessary).

5. Deployment:

Modules developed by different RAD teams are integrated to develop final complete product.

Advantages


Faster implementation of Project
Parallel implementation
Increases re usability of components
Encourages customer feedback
Projects divided into small teams results into better implementation

Disadvantage


•Limited Time for system implementation results into inadequate analysis of project.
•Less time for testing.
•If user is unclear with the system project may fail.
•If developers and customers are not committed to the rapid model, the RAD project fails.
•Time is the major constraint in RAD.
•RAD has to be modularized in a proper way otherwise creates a lots of confusions and problems.
•In case of high performance requirement, RAD cannot be ideal model.

Conclusion

RAD Model is fast and is also based on Component Based Construction so, there is faster implementation of the project and increases re usability of the components. But also, if the user is unclear with the system the project may fail, this may lead to loss of time and cost.

Software Development through – Incremental Model

What is Incremental Model ?

The incremental model uses the “Linear and Parallel” process flow, uses linear sequential flow like waterfall model to develop working release of software.

Situation Where Incremental Model is Useful:

When customer needs limited set of features and functionalities quickly and then they want enhancement in functions in later releases of the software, then incremental model is useful.

Flow

Each linear sequence produces a deliverable “increment” of the software.
It should be noted that the process flow for any increment can uses the prototyping paradigm.
When incremental model is used, the first increment is often the core product (that is only basic requirements are implemented), the next increments are modifications of the core product.

Advantages:


This model is useful when staff required is unavailable.
This model is useful to handle technical risk.
Provide better support for process iteration.
Reduces rework in the software construction process.
Some decisions on requirements may be delayed.
Allow early delivery of parts of the system.
Support easier integration of sub-systems.
Risk of project failure is low.

Disadvantages:


Increments need be relatively small
Needs good planning and design.
Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Mapping of requirements to increments may not be easy.
Total cost is higher than waterfall

Conclusion

This model provides better support for iteration and the phases in this model goes on linearly as well as parallelly but their may cause confusion in the output of the phases if proper and sorted planning is not done. As well as, the total cost of this model is also higher than the waterfall model so, if their is any confusion among the output of different phases it may lead to wastage of time as well as cost.

Software Development through – Waterfall Model

What is a Waterfall Model ?

It is also known as the “Classic Life Cycle” model, follows the “Systematic, Sequential “approach of software development.

Situation Where Waterfall Model is Useful:

-When customer wants enhancement or adaptation in already existing software which is well developed then we can use waterfall model.
-Ex. Changes in the Accounting software because of the changes in the rules by government.
-Waterfall Model is also used to develop new software when requirements are completely understood and stable (will not change in the future).

Phases

  1. Communication:

Heavy communication and collaboration with stakeholders-to gather information and requirement of software and to define features and functions of software.

2. Planning:

Defines – schedule of the project, role of each team member, estimation of cost, deadlines or delivery dates of the working modules, what technical task to be performed, risk that can be occurred, and priorities of each module.

3. Modeling:

Design model of software is created to understand the requirements, features and functions of the software.

4. Construction:

Combination of code generation and testing.

5. Deployment:

Software is delivered to the customer, On the basis of the feedback from the customer, software development team makes changes to the software for better quality.

Advantages

•Systematic and Organized approach provides clear separation between different phases of software development.
•This model is simple and easy to understand and use.
•It is easy to manage due to the rigidity of the model – each phase has specific deliverable and a review process.
•In this model phases are processed and completed one at a time. Phases do not overlap.

Disadvantages

•Real projects rarely follows the sequential flow that waterfall model suggests.
•All real projects follow iterative approach indirectly. As a result of this, it causes the confusion among team members when the proceeds.
•It is difficult for the customer to state all the requirements at the beginning of the project.
•A working version of the product is available only late.
•So if there any bug in the software it becomes visible at late which is very dangerous.
•Waterfall Model has a problem of “Blocking States” means some team members has to wait for other team members to complete their dependent work.

Conclusion

Waterfall model is a perspective process model and it’s basically a classic model in which each phase is very sorted and separate from each other so,no confusion occurs but it is not suitable for the changing needs of the Industry as their are tremendous trends coming in the software industry which requires an advanced process of software development with fully defined phases.So, it is suitable for the freshers but they have to adapt and switch to the newer software development techniques.