Last week, the company trained new people on programming specifications. During the training, my brother on the third floor asked me what the main steps of the waterfall model were. I really wanted to ask him what the waterfall model was -. -Of course, as an adult, I hold on to it, and then start all of my own nonsense capabilities. When I was so worried about it, I calmly told him that it was just a way to go. Haha, I was impressed by my wit on the spot. Just as I was intoxicated with this feat, the boss said, you have no idea, are you not a computer professional? Hahahahahahahahahahaha .... Yes, I am not a computer professional. =
To some extent, the software development model is a methodology that refers to the structural framework of the entire process, activity, and task of software development. I personally think we should pay attention to several points. The process is to determine the direction, determine multiple customs nodes, and set the route. Activities are what we do on this road, take, run, jump, shame, and so on; the task must be achieved through the activity, the direction of the software development activity; the structure framework is a clear provision of the above three; finally, all, of course, only the scope of the software development model, from 0 to all the scope of the application is subject to its jurisdiction. The development process includes the stages of demand, design, coding, testing and maintenance. The development model clearly and intuitively expresses the entire process of development and clearly defines the activities to be carried out and the tasks to be completed, used as the basis for software project work. I don't think it is defined by the software development model.
After a brief understanding of the software development model, we will focus on the waterfall model, the main character of the problem. The English name of the waterfall model is Waterfall Model (WM). To put it bluntly, the development process is like a waterfall development process ). So there is a bit of truth to say that I have been talking about it before. The boss said that I don't know at all. Although this is the case, can it be a bit euphemistic?
Regardless of the model history, let's look at how WM guides development. Looking at least 20 WM introductions on the Internet, 18 of them copied each other, which left me sad. Therefore, in the age of information explosion, the meat was found in the minced eggplant in the canteen. In this case, WM divides the software life cycle into six, and also eight. We are more helpful. WM divides the life cycle of the software into the following eight. as obsessive-compulsive disorder, I must minimize the word variance of each step: problem definition, feasibility analysis, project requirement analysis, overall system design, specific function design, coding and unit testing, system integration testing, deployment, operation, and maintenance. So a person who has read the online materials will find that I have changed them. That's right, I am hanging like this. I can't find anything like the original description of WM proposed by Winston Royce in 1970.
These eight stages are clearly included by Party A and Party B. The definition of a problem, that is, when a demand arises, we define what we want to solve and what we want to implement. This is often not clear in one sentence, but can be considered as the skeleton of the demand. The Feasibility Analysis is just something that can't be done. Party A often says, isn't it easy? Just implement it at will... Believe it or not, cut you down in minutes =. = project requirement analysis. This is detailed because it involves the specific design and implementation at the end and serves as a bridge connecting Party A and Party B, for example, I am currently working on a demand book for this project, there are few pages on 20 or 30. The overall system design includes the architecture (MVC, etc.) and the physical database model (table structure) design. Here, you will find many terms in it tend to be abused. These terms do not have a specific application scenario or context, and often lead to the illusion of mongodani. For example, there is no need to strictly define models, frameworks, architectures, and so on. If you speak too much, you will know Ding Mao. Specific Functional Design: as a programmer, I need to know how to write code, for example, what interface does a group give him and how to implement a historical group. I have written code and unit tests together. This is the same thing. I hope to learn more about the importance of unit tests in programming practice. As a matter of fact, you will find that writing code is only a small part of the time it takes for all jobs. System integration testing should have a deep understanding in the near future. The legendary joint debugging is crucial and time-consuming when the project involves process-based things. In addition, I am not sure that the test package does not include UAT. Finally, deployment, operation, and maintenance, that is, delivery and use, after-sales services. WM has eight stages.
The essence of WM is a pass, that is, the activities of each stage are only executed once, and finally the software product is obtained, which is obviously a linear sequence structure. The process is to receive the work object of the activity from the previous activity as the input, and use this input to show the work results of the activity for implementation of the activity, and send it as output to the next activity. Review the implementation of the activity at the same time. If confirmed, the next activity will be continued; otherwise, the previous or even more previous activities will be returned. So for frequently-changing projects, the waterfall model has no value. Do not change the fucking needs. Of course, it can also be used flexibly, but it doesn't make sense to generalize the concept. For example, agile development is a bit about splitting a waterfall into a waterfall. This will be studied later and will not be expanded.
The advantage of WM is that it has a very clear division of the software life cycle. We can clearly determine the completion of each stage of work, and because of the linear sequence structure of WM, only after the previous step is completed can we proceed to the next step. After the previous step is completed, we can devote ourselves to the next step. Just like a bus, the driver can clearly determine whether the bus is arriving at the station. If the bus is not arriving at the station, arrive at the station and arrive at the next stop until the end.
When judging the advantages and disadvantages of a thing, we are actually interpreting its most critical traits or characteristics from different perspectives. WM features a top-down linear order, so its biggest drawback is that it cannot cope with demand changes, and users can only see the development results at the end of the entire process, increasing the development risk. In addition, once the development process is formatted using WM, PM may track various project phases and control the project progress through a large number of forced completion dates and milestones. Finally, the division of each stage is completely fixed, and there will be a large number of documents between stages, resulting in a dramatic increase in workload.
As an old generation of the software development model, WM is no longer able to keep up with the trend of the times, but it is very important that the various variants of WM and many new models derived from WM are well-formed. So we need to know WM.
At the end of this article, the main steps of the waterfall model can be divided into eight stages: problem definition, feasibility analysis, requirement analysis, overall system design, specific function design, coding and unit testing, system integration testing, deployment, operation, and maintenance. The rough score can be six: requirements, architecture, design, code, testing, and maintenance.
3. Waterfall Model