Introduction
Software Engineering linear sequential model, sometimes known as "traditional life cycle" or "waterfall model", linear sequential model proposes systematic, sequential methods of software development (Although the earliest waterfall model proposed by Winston Royce [Roy70] supports a feedback cycle, most of the organizations that use the process model are considered strictly linear), starting from the system level, then analyzing, Design, coding, testing, and maintenance.
Model core thinking
The core idea of the waterfall model is to simplify the problem according to the process, and the implementation and design of the function will be separated, which is easy to divide and cooperate. Separate logic implementation with physical implementation. The software life cycle is divided into six basic activities such as planning, demand analysis, software design, program writing, software testing and operation maintenance, and specify their own fixed order, such as waterfall, step by step. whereabouts.
The waterfall model is the earliest software development model that plays an important role in software engineering, which provides the basic framework for software development. The process is to receive the work object of the event as an input from the previous activity, and use this input to implement the content of the event to be completed to give the event's work results, and transmit it to the next activity as an output. At the same time, the implementation of this activity is reviewed. If you confirm, continue the next event; otherwise return the event in front, even more. The waterfall model is worthless for the currently changing items.
System / Information Engineering and Modeling
Because software is always a large system (or business) component, you should establish the needs of all system components, and then Some subsets are assigned to the software. The entire system is based on software as other components such as hardware, people and database interfaces. System engineering and analysis include demand for system-level collection, as well as a small part of top layer analysis and design. Information projects include demand for strategic business grade and business sectors.
Software Demand Analysis
The demand collection process is particularly centralized to the software. To understand the essence of the program, the software engineer ("Analyst") must understand the information of the software and the functionality, behavior, performance, and interface of the demand. System requirements and software requirements are subject to documentation and review with users.
Design: Software design is actually a multi-step process, focusing on the four completely different properties of the program: data structure, software architecture, interface representation and process (algorithm) details. The design process converts the demand into software representation, and its quality can be assessed before encoding. Like demand, design also documentation and is part of the software configuration.
code generation: Design must be converted into machine readable form. This step is to complete this task. If the design has been expressed in detail, the code generation can be done automatically.
Test: Once a code is generated, you can start program testing. The test process focuses on the internal logic of the software - guarantees that all statements are tested, as well as external features - that is, boot the test to discover errors, and ensure that the defined input can produce the same output as expected.
Maintenance: The software inevitably wants to modify after delivery (a possible exception is embedded software). Modifications will occur in the following cases: When an error is encountered; when the software must adapt to changes in the external environment (for example, because the new operating system or peripherals); or when the user wants to enhance the function or performance. Software maintenance repeats the previous phases, differences in it is for existing procedures, not new programs.
The sequential and dependence between the linear sequential model
1) The sequence and dependence between the stage, the project is executed in a certain order from the beginning to the end; the waterfall model is driven by documents, each The stage is not intersitiveing.
2) Strict phase assessment must first strict evaluation to enter the next stage.
3) The initial period of development needs to be clearly referred to.
4) Long development cycle, risk.
Disadvantages of linear sequential model
1) Most of the actual projects are difficult to perform in the order given in this model, and this model is an iterative, which is easy. It causes a big chaos from tiny changes.
2) In many cases, the customer is difficult to express real demand, and this model is required, this model is not "welcome" to have an erliness problem.
3) The customer wants to wait until the end of the development cycle can see the test version of the program running, and when you find a big error, it may cause a panic of the customer, and the consequences of the result may be catastrophic. of.
4) often encounters the task waiting for other members to complete their dependence on the beginning and end of the process, it is possible to spend a long time than the development time. To "block the state".
Advantages of linear sequence model
1) It provides a template that makes analysis, design, encoding, testing, and support methods can have a common in this template. guide.
2) Although there are many defects, it is much better than presenting a random state in software development.