In: Computer Science
Using the library, Internet, and your course
materials, research information about software development
methodologies. Select at least 3 different development
methodologies. Write 400–600 words to address the
following:
Provide a brief description for each of your selected
methodologies.
Include at least 3 characteristics of each
methodology
Discuss the advantages and disadvantages of each
methodology
Cite all references using APA formatting.
Create a table to summarize your findings, as
follows:
Three software development methodologies are as follow:
Waterfall development method
Waterfall Development model was first SDLC Model to be used widely in Software Engineering to ensure success of the project. In "The Waterfall" approach, the whole process of software development is divided into separate phases. In this Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.
Characteristics of model:
Requirements are very well documented, clear and fixed.
Product definition is stable.
Technology is understood and is not dynamic.
There are no ambiguous requirements.
Ample resources with required expertise are available to support the product.
The project is short.
Some of the major advantages of the Waterfall Model are as follows −
Simple and easy to understand and use
Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well documented.
The major disadvantages of the Waterfall Model are as follows −
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
It is difficult to measure progress within stages.
Cannot accommodate changing requirements.
Agile Development Methodology:
Agile development method is develop to overcome the disadvantages of other models like structured or waterfall.
In all agile methods, teams develop the software in iterations that contain mini-increments of the new functionality.
There are many different forms of the agile development method, including scrum, crystal, extreme programming (XP), and feature-driven development (FDD).
Another good thing about it is that it minimizes peril by creating software in short time boxes, known as iterations, which happen to last from one week to one month.
Characteristics of agile method:
The advantages of the Agile Model are as follows −
Is a very realistic approach to software development.
Promotes teamwork and cross training.
Functionality can be developed rapidly and demonstrated.
Resource requirements are minimum.
Suitable for fixed or changing requirements
Delivers early partial working solutions.
The disadvantages of the Agile Model are as follows −
Not suitable for handling complex dependencies.
More risk of sustainability, maintainability and extensibility.
An overall plan, an agile leader and agile PM practice is a must without which it will not work.
Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. A prototype is a working model that is functionally equivalent to a component of the product.
In the RAD model, the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery. Since there is no detailed preplanning, it makes it easier to incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small teams comprising of developers, domain experts, customer representatives and other IT resources working progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that the prototypes developed are reusable.
Characteristics of Rapid:
RAD should be used only when a system can be modularized to be delivered in an incremental manner.
It should be used if there is a high availability of designers for Modelling.
It should be used only if the budget permits use of automated code generating tools.
RAD SDLC model should be chosen only if domain experts are available with relevant business knowledge.
The advantages of the RAD Model are as follows −
Changing requirements can be accommodated.
Progress can be measured.
Iteration time can be short with use of powerful RAD tools.
Productivity with fewer people in a short time.
Reduced development time.
The disadvantages of the RAD Model are as follows −
Dependency on technically strong team members for identifying business requirements.
Only system that can be modularized can be built using RAD.
Requires highly skilled developers/designers.
High dependency on Modelling skills.
Inapplicable to cheaper projects as cost of Modelling and automated code generation is very high.
Management complexity is more.
References:
Sr.no. | site |
1 | https://blog.planview.com/top-6-software-development-methodologies/ |
2 | https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/ |
3 | https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/ |