📜  软件工程 |敏捷模型与其他模型的比较

📅  最后修改于: 2022-05-13 01:57:00.192000             🧑  作者: Mango

软件工程 |敏捷模型与其他模型的比较

敏捷模型与其他模型的特性比较如下:

敏捷模型与瀑布模型:

Agile modelWaterfall model
Agile model is an incremental delivery process where each incremental delivered part is developed through an iteration after each timebox.The waterfall model is highly structured and systematically steps through requirements gathering, analysis, SRS document preparation, design, coding and testing in a planned manner. These phases of the Waterfall model follow a sequential order.
While using an agile model, progress is measured in terms of the developed and delivered functionalities.In Waterfall model, progress is generally measured in terms of the number of completed and reviewed artefacts such as requirement specifications, design documents, test plans, code reviews, etc. for which review is complete.
With the agile model, even if a project is cancelled midway, it still leaves the customer with some worthwhile code, that might possibly have already been put into live operation.If a project being developed using the waterfall model is cancelled mid-way during development, then there is nothing to show from the abandoned project beyond several documents.
Agile model allows to change the requirements after the development process starts, so it is more flexible.Waterfall model is rigid, it does not allow to change requirements after the developments process starts.
Customer interaction is very high. After each iteration, an incremental version is deployed to the customer.Customer interaction is very less. The product is delivered to the customer after the overall development is completed.
Lack of proper formal documentation leaves ample scope confusion and important decisions taken during various phases can be misinterpreted at later phases.In Waterfall model proper documentation is very important, which gives a clear idea what should be done to complete the project and it also serve as a agreement between the customer and development team.
Agile team consists less members (5 to 9 people), but they coordinate and interact with others very frequently.In Waterfall model, team may consist more members but interaction between them is limited.
Agile model is not suitable for small projects as expenses of developing small projects using it is more compared to other models.This model is simple to use and understand but not suitable for developing large projects using Waterfall model.

敏捷模型与探索性编程:

Agile modelExploratory programming
Agile model is an incremental delivery process where each incremental delivered part is developed through an iteration after each timebox.Exploratory programming is an approach of writing programs in an unstructured way.
Agile teams, however, do follow defined and disciplined processes and carry out systematic requirements gathering, rigorous design.Exploratory programming does not follow the rules of software engineering and unstructured coding is done and tested.
The central idea of the Agile model is to deliver an incremental version to the customer frequently after each iteration.Whereas, after coding the software is tested and the founded bugs are fixed. This cycle of testing and bug fixing continues till the software works satisfactorily for the customer.

敏捷模型与 RAD 模型:

Agile modelRAD model
The Agile model does not recommend developing prototypes but emphasises the systematic development of each incremental feature at the end of each iteration.The central theme of RAD is based on designing quick and dirty prototypes, which are then refined into production quality code.
Agile projects logically break down the solution into features that are incrementally developed and delivered.The developers using the RAD model focus on developing all the features of an application by first doing it badly and then successively improving the code over time.
The Agile team only demonstrate completed work to the customer after each iteration.Whereas RAD teams demonstrate to customers screen mock up and prototypes, that may be based on simplifications such as table lookup rather than actual computations.
Agile model is not suitable for small projects as it is difficult to divide the project into small parts that can be incrementally developed.When the company has not developed a almost similar type of project, then it is hard to use RAD model as it is unable to reuse the existing code.

敏捷模型与增量开发模型:

Agile modelIncremental development model
Agile model is an incremental delivery process where each incremental delivered part is developed through an iteration after each time box. The main principle of the Agile model is to achieve agility by removing unnecessary activities that waste time and effort.The requirements of the software are divided into several modules that can be incrementally developed and delivered. The core features are developed first and the whole software is developed by adding new features in successive versions.
In the Agile model, end date for an iteration is fixed, it cannot be changed. The development team may have to decide to reduce the delivered functionality to complete that iteration on time.In the Incremental development model, there is no fixed time to complete the next iteration.

敏捷模型与螺旋模型:

Agile modelSpiral model
The main principle of the Agile model is to achieve agility by removing unnecessary activities that waste time and effort.The main principle of the Spiral model is risk handling.
The Agile model focuses on the delivery of an increment to the customer after each Time-box, so customer interaction is more frequent.Spiral model mainly deals with various kinds of unanticipated risks but customer interaction is less.
Agile model is suitable for large projects that are easy to divide into small parts that can be easily developed incrementally over each iteration.The Spiral model is suitable for those projects that are prone to various kinds of risks that are difficult to anticipate at the beginning of the project.
Agile model does not rely on documentation.Proper documentation is required for Spiral model.