当前位置:网站首页>What development models did you know during the interview? Just read this one
What development models did you know during the interview? Just read this one
2022-07-07 09:32:00 【Software testing Xiaobai】
Preface
Software development model refers to the whole process of software development 、 The structural framework of activities and tasks . Generally, it includes requirements 、 Design 、 Coding and testing etc , Even the maintenance phase . The software development model clearly stipulates the main activities and tasks to be completed in the process of software development , It is used to guide the work in the whole development process . For different systems , According to the characteristics of the software 、 Different software development models are selected for the participation of project members .
As a test engineer , The work content of testing is closely related to the software development model , In different development models , The tasks and functions of testing will also be different . following , Introduce several common development models .
Waterfall model
Waterfall model is the earliest software development model , It provides the basic framework of software development , It lays the foundation for the subsequent development model . from 1970 By Winston in · Royce (Winston Royce) After the proposal , until 80 Early S , It has been widely used .
This model has clear stage activities , It is divided into 6 Stages : plan → Demand analysis → software design → code → test → Operation and maintenance . The sequence of stages is fixed , From top to bottom 、 Connect with each other , Like a waterfall, water falls step by step . This is also the origin of the name of waterfall model .
The essence of waterfall model is one pass , That is, each activity is executed only once , Finally get the software product , Also known as “ Linear order model ” perhaps “ Traditional life cycle model ”. The process is to complete the work of the previous stage, output the results and pass the audit , can “ flow ” To the next stage ; Otherwise, go back to the front , Even earlier stage activities .
shortcoming :
1) The division of each stage is completely fixed , A lot of documents are generated between stages , It greatly increased the workload .
2) Because the development model is linear , Single process , Irreversible , Users can only see the development results at the end of the whole process , This increases the risk of development .
3) Testing is just one stage , Lack of whole process testing idea . Early errors may not be discovered until later in the development testing phase , The later the problem is found, the higher the cost
4) In the software requirement analysis phase , It is difficult to completely determine all the needs of users , Unable to cope with projects with changing needs .
advantage :
1) Provide checkpoints for projects by phase .
2) After the completion of the current phase , You just need to focus on the next phase .
Applicable project scope :
1) Software development projects with clear requirements ;
2) There is little or no change in requirements during development time ;
3) Analysts and designers should be familiar with the application field ;
4) Low risk projects ( To the goal 、 The environment is very familiar );
5) The user environment is very stable ;
Rapid prototyping model
The rapid prototype model is opposite to the waterfall model , At the beginning of the project, a system prototype that can be run is quickly built according to the needs of users , Then show the user , Reviewed by the user , Make an opinion , Then gradually enrich the project requirements . When the demand is really determined , Before the formal project development .
advantage :
It helps to meet the real needs of users ; The prototype system has been verified through interaction with users , The specification document generated from this can correctly describe user requirements .
shortcoming :
Require developers to quickly build prototypes .
Applicable project scope :
It is applicable to software projects with unclear requirements .
Incremental model
Also known as iterative model or evolutionary model , It splits a complete piece of software into different components , Then develop tests component by component , Every time a component is completed, it is presented to the customer , Let the customer confirm whether the function and performance of this part meet the customer's requirements , The final determination is correct , Integrating components into the software architecture . The entire development effort is organized into a series of short-term 、 Simple small projects , It's called a series of iterations , Every iteration needs to go through requirements analysis → software design → code → Testing process .
advantage :
1) The first deliverable version of the software requires less cost and time
2) Be able to adapt to changes in customers' needs , As the demand changes , Just modify one component .
shortcoming :
1) If there is no overall plan for the change of user needs , It may change to " Develop while doing " The pattern of .
2) When finally integrating various components , There may be a risk of integration failure .
Applicable project scope :
Applicable to tight construction period 、 Functions can be divided 、 More complex software projects . Software engineers must have a high technical level , Be able to design an open software architecture .
Spiral model
This model combines the waterfall model 、 Rapid prototyping model , Youbali · Bohm (Barry Boehm) On 1988 Put forward in , The biggest feature of this model is the introduction of risk analysis that other models do not .
The spiral model divides the development process into several spiral cycles , Each spiral period is roughly consistent with the waterfall model , Risk analysis will be carried out before the beginning of each cycle . At each stage , First, build the software prototype , Complete the iteration process according to the rapid prototype model , Produce the final perfect product , Then move on to the next stage , Similarly, risk assessment should also be carried out before the next stage , This cycle continues until all stages of the task are completed .
The model has four quadrants , The meaning of each quadrant is as follows :
1、 Make a plan : Identify software goals , Formulate the implementation plan , And list the limitations of the project development .
2、 risk analysis : Evaluate the implementation plan formulated , Identify and eliminate risks .
3、 Carry out the works : Develop products and verify them .
4、 Customer assessment : The customer reviews and evaluates the product , Put forward suggestions for amendment , Make a plan for the next step .
advantage :
1) The emphasis on alternatives and constraints is conducive to the reuse of existing software , It also helps to make software quality an important goal of software development ;
2) Reduces the risk of over testing or under testing ;
3) In the spiral model, maintenance is just another cycle of the model , There is no essential difference between maintenance and development .
shortcoming :
The spiral model is risk driven , Therefore, software developers must have rich experience in risk assessment and expertise in this field .
Applicable project scope :
Applicable to large-scale software developed internally ( Long development cycle 、 Software projects that are relatively vulnerable to social factors ), Software developers have rich knowledge and experience in risk assessment .
V Model
V Model is also called RAD(Rapid Application Development, Rapid application development ) Model , It is an important model in the process of software development , Because its model composition looks like letters V, So it is called software testing V Model .V The model can be roughly divided into the following different stages and steps : Customer demand analysis 、 Software requirements analysis 、 Outline design 、 Detailed design 、 Software coding 、 unit testing 、 Integration testing 、 The system test 、 The acceptance test .
advantage :
The development phase includes the underlying tests ( unit testing ) And high level testing ( The system test ); Clearly identifies all phases of development and testing ; Clear division of labor in each stage , Easy to control the whole project .
shortcoming :
The top-down order leads to , Testing should be done after coding , As a result, the error cannot be modified in time ; In practice , Change requirements frequently , Lead to v The model steps are repeated , A lot of rework , Low flexibility .
Applicable project scope :
It is generally applicable to the development of some traditional information system applications , And some high-performance, high-risk systems 、 Internet software , Or when a system is difficult to be modularized , It's more difficult to make V The various components required by the pattern , Need more emphasis on iterative development model or agile development model .
Agile model
The agile model is 20 century 90 A software development model that arose in the s . In the development of modern society , Because the business will often change rapidly , Therefore, detailed and complete development requirements are often not available before software development , There are no complete development requirements , The traditional software development model cannot be applied . Agile development model is proposed to solve this problem . The model takes the customer's needs as the core , Use iterations , Develop step by step .
At the beginning of construction, a software project will be divided into several interrelated and independent sub projects , Then iteratively complete each sub project . When the customer has a change in demand , Agile model can quickly make changes to a sub project to meet the needs of customers . In the process , The software is always available .
advantage :
1、 Users will soon be able to see a baseline architecture version of the product
2、 Agility focuses on the market's ability to respond quickly , Face to face with customers
3、 Changes can be accepted at any time
shortcoming :
1、 Pay attention to personnel communication , Better teamwork is needed
2、 Ignore the importance of documents , Need experienced people in the project
3、 If the project personnel flow is too large , It will increase the difficulty of project maintenance
Applicable project scope :
Applicable to complex products , The demand is changeable , Hard to predict 、 Realize products with long cycle
welfare
边栏推荐
- **grafana安装**
- Pycharm create a new file and add author information
- STM32 and motor development (from stand-alone version to Networking)
- Difference between interface iterator and iteratable
- Information Security Experiment 3: the use of PGP email encryption software
- flex弹性布局
- 第一讲:鸡蛋的硬度
- 信息安全实验四:Ip包监视程序实现
- MongoDB怎么实现创建删除数据库、创建删除表、数据增删改查
- Leetcode daily questions (2316. count unreachable pairs of nodes in an undirected graph)
猜你喜欢
数据建模中利用3σ剔除异常值进行数据清洗
Jmeters use
NATAPP内网穿透
Kubernetes cluster capacity expansion to add node nodes
Sublime Text4 download the view in bower and set the shortcut key
Huawei hcip datacom core_ 03day
In fact, it's very simple. It teaches you to easily realize the cool data visualization big screen
華為HCIP-DATACOM-Core_03day
其实特简单,教你轻松实现酷炫的数据可视化大屏
Unity shader (to achieve a simple material effect with adjustable color attributes only)
随机推荐
Regular matching starts with XXX and ends with XXX
Jenkins+ant+jmeter use
信息安全实验一:DES加密算法的实现
The use of recycling ideas
十二、排序
细说Mysql MVCC多版本控制
Mysql:select ... for update
Jemter operation
LeetCode每日一题(2316. Count Unreachable Pairs of Nodes in an Undirected Graph)
Where is the answer? action config/Interceptor/class/servlet
答案在哪里?action config/Interceptor/class/servlet
牛客网——华为题库(61~70)
Add new item after the outbound delivery order of SAP mm sto document is created?
nlohmann json
Create an int type array with a length of 6. The values of the array elements are required to be between 1-30 and are assigned randomly. At the same time, the values of the required elements are diffe
进程和线程的区别
How to use clipboard JS library implements copy and cut function
【云原生】DevOps(一):DevOps介绍及Code工具使用
How does mongodb realize the creation and deletion of databases, the creation of deletion tables, and the addition, deletion, modification and query of data
Pytest installation (command line installation)