当前位置:网站首页>Software development life cycle -- waterfall model
Software development life cycle -- waterfall model
2022-07-02 02:03:00 【Lao Xiao of Buddhism】
List of articles
The classic waterfall model is basic Software development lifecycle Model . It's very simple , But idealism . This model used to be very popular , But now it is not used . But it's very important , Because all other software development lifecycle models are based on the classic waterfall model .
The classic waterfall model divides the life cycle into a set of stages . This model believes that a phase can be started after the last phase . in other words , The output of one stage will be the input of the next stage . therefore , You can think of the development process as a sequential flow in a waterfall . ad locum , These stages do not overlap . The different sequential stages of the classic waterfall model are shown in the figure below :
Stage Introduction
Now? , Let's take a brief look at each stage :
feasibility study : The main objective of this stage is to determine whether the development software is financially and technically feasible .
The feasibility study involves understanding problems , Then determine various possible strategies to solve the problem . Analyze the advantages and disadvantages of these different solutions , Choose the best solution , And perform all other phases according to this solution strategy .Requirements analysis and specification : The purpose of the requirements analysis and specification stage is to understand the exact requirements of customers and record them correctly . This phase consists of two different activities .
- Requirements collection and Analysis : First , Collect all requirements about software from customers , Then analyze the collected requirements . The goal of the analysis section is to eliminate imperfections ( Incomplete requirements omit some parts of the actual requirements ) And inconsistent ( Inconsistent requirements are requirements that contradict some parts of the requirements with some other parts ).
- Requirement specification : The requirements of these analyses are documented in the software requirements specification (SRS) In the document .SRS The document acts as a contract between the development team and the customer . Any future disputes between customers and developers can be checked SRS Document to solve .
Design : The goal of this stage is to SRS The requirements obtained in are converted into a format that can be encoded in a programming language . It includes high-level and detailed design and overall software architecture . Software design documents are used to record all these works (SDD)
Coding and unit testing : In the coding phase , Use any suitable programming language to convert the software design into source code . therefore , Every designed module is coded . The purpose of the unit test phase is to check whether each module works properly .
Integration and system testing : The integration of different modules takes place shortly after coding and unit testing . The integration of various modules is carried out step by step . In each integration step , Add previously planned modules to the partially integrated system , And test the generated system . Last , After all modules have been successfully integrated and tested , Get a complete working system and test it .
System testing consists of three different testing activities , As follows :
- Alpha test : Alpha Tests are system tests performed by the development team .
- Beta test : Beta The test is a system test performed by a group of friendly customers .
- The acceptance test : After software delivery , The customer performs acceptance tests , To determine whether to accept or reject the delivered software .
maintain : Maintenance is the most important stage in the software life cycle . The energy used for maintenance accounts for% of the total workload spent on developing complete software 60%. There are basically three types of maintenance :
- Corrective maintenance : This type of maintenance is performed to correct errors not found during product development .
- Integrity maintenance : This type of maintenance is carried out according to the requirements of customers to enhance the function of the system .
- Adaptive maintenance : It usually requires adaptive maintenance to migrate software to a new environment , For example, working on a new computer platform or a new operating system .
Advantages of classic waterfall model
The classic waterfall model is an idealistic model of software development . It's very simple , Therefore, it can be regarded as the basis of other software development life cycle models . Here is this SDLC Some of the main advantages of the model :
- This model is very simple , Easy to understand .
- The phases in this model process one phase at a time .
- Each stage in the model is clearly defined .
- The model has very clear and easy to understand milestones .
- The process , Actions and results are well documented .
- Strengthen good habits : Define first, design first ,
Post design code . - This model is suitable for small projects and requirements
Understand the project .
Disadvantages of classical waterfall model
The classical waterfall model has various shortcomings , Basically , We can't use it in real projects , But we use other software development lifecycle models based on the classic waterfall model . Here are some of the main drawbacks of this model :
No feedback path : In the classic waterfall model , The evolution of software from one stage to another is like a waterfall . It assumes that developers will not make any mistakes at any stage . therefore , It does not contain any error correction mechanism .
Difficult to adapt to change requests : This model assumes that all customer requirements can be defined exactly at the beginning of the project , But in fact, customers' needs will change over time . After the requirements specification stage , It's hard to adapt to any change request .
There is no overlap of stages : This model suggests that the new phase can only be started after the completion of the previous phase . But in the real world , This is unsustainable . In order to improve efficiency and reduce costs , The stages may overlap .
边栏推荐
- Matlab uses resample to complete resampling
- Sword finger offer 29 Print matrix clockwise
- What style of Bluetooth headset is easy to use? High quality Bluetooth headset ranking
- 医药管理系统(大一下C语言课设)
- 人工智能在网络安全中的作用
- 2022 Q2 - Summary of skills to improve skills
- Deep learning: a solution to over fitting in deep neural networks
- How to use a product to promote "brand thrill"?
- MySQL主从延迟问题怎么解决
- 剑指 Offer 47. 礼物的最大价值
猜你喜欢
leetcode2310. The one digit number is the sum of integers of K (medium, weekly)
Develop those things: how to use go singleton mode to ensure the security of high concurrency of streaming media?
城市选择器组件实现原理
SQLite 3 of embedded database
734. Energy stone (greed, backpack)
Sword finger offer 62 The last remaining number in the circle
Golang lock
With the innovation and upgrading of development tools, Kunpeng promotes the "bamboo forest" growth of the computing industry
Redis有序集合如何使用
How to build and use redis environment
随机推荐
花一个星期时间呕心沥血整理出高频软件测试/自动化测试面试题和答案
Learn basic K-line diagram knowledge in three minutes
剑指 Offer II 031. 最近最少使用缓存
Matlab uses audiorecorder and recordblocking to record sound, play to play sound, and audiobook to save sound
Failed to transform file 'xxx' to match attributes
[deep learning] Infomap face clustering facecluster
Quatre stratégies de base pour migrer la charge de travail de l'informatique en nuage
AR增强现实可应用的场景
* and & symbols in C language
Software No.1
leetcode2310. 个位数字为 K 的整数之和(中等,周赛)
MySQL主从延迟问题怎么解决
734. Energy stone (greed, backpack)
pytest 测试框架
Six lessons to be learned for the successful implementation of edge coding
New news, Wuhan Yangluo international port, filled with black technology, refreshes your understanding of the port
leetcode2309. The best English letters with both upper and lower case (simple, weekly)
Makefile simple induction
479. Additive binary tree (interval DP on the tree)
如何用一款产品推动「品牌的惊险一跃」?