Software Process Model
The software process model is also known as the Software development model, which is the structural framework of the whole process, activity and task of software development. Waterfall Model:
A waterfall model is a model that prescribes various activities in the software life cycle as a linear connection, including requirements analysis, design, coding, testing, operation, and maintenance. A fixed sequence of connections from the front to the back, like a cascade of water falling down.
Waterfall model is a model of a software project that is driven by documents and is suitable for software requirements. v Model
The V model is a variant of the waterfall model. The V model provides a way to apply validation confirmation activities to early software engineering work.
Waterfall Model Advantages: Easy to understand, low management costs. Emphasis on the development of phased early planning and demand surveys and product testing.
the downside of the waterfall model: customers must be able to express their needs completely, correctly, and clearly to start 2 or 3 stages, and it is difficult to assess real progress. At the end of the project, there was a lot of integration and testing work. Errors in demand or design are often found only later in the project, with weak control over project risk, resulting in projects often postponed and development costs exceeding budget. Incremental Model:
The incremental model incorporates the basic components of the waterfall model and the iterative characteristics of the prototype implementation, assuming that the requirements can be segmented into a series of incremental products, each of which can be developed separately.
With an incremental model, the 1th increment is often the core product. Each increment is used and evaluated by the customer as a new feature and feature of the next incremental release, which repeats continuously after each incremental release until the final product is produced. The incremental model emphasizes that each increment publishes an actionable product.
Advantages of incremental models: easy to understand, low management costs. Emphasis on the development of phased early planning and demand surveys and product testing. The first deliverable version requires little cost and time. The development of small systems represented by increments is less risky. Reduce changes in user requirements. Run an incremental investment, that is, at the start of a project, you can invest only one or two increments.
disadvantages of the incremental model: If the user's change requirements are not planned, the resulting initial increment may result in later incremental instability. If the requirements do not want to be as stable and complete as early thinking, some of the increases may need to be re-developed and republished. The complexity of managing the costs, schedules, and configurations that occur can exceed the organization's capabilities. Evolutionary Models:
Evolutionary models are iterative process models that enable software developers to progressively develop more complete software versions. The evolutionary model is especially suitable for the lack of accurate understanding of software requirements. Typical evolutionary models are prototype models and helical models. prototype model of evolutionary model:
A prototype is an executable version of an expected system that reflects a selected subset of the system's nature. A prototype does not have to meet all the constraints of the target software, and is designed to build prototypes quickly and cost-effectively.
The prototype model begins with communication, which is designed to define the overall objectives of the software, identify the requirements, and then quickly develop a plan for prototyping, determine the target and scope of the prototype, model it in a fast-firing manner, and build prototypes.
according to the prototype, there are three types: Exploratory prototypes: The aim is to clarify the requirements of the target, to determine the desired characteristics, and to explore the feasibility of various schemes. Experimental prototype: The purpose is to verify the rationality of the scheme or algorithm, is to examine the suitability of the scheme and the reliability of the specification before large-scale development and implementation. Evolutionary prototypes: The aim is to prototype the prototypes as part of the target system and evolve them into the final target system through several improvements to the prototype. Spiral Model of evolutionary model:
The spiral model combines the waterfall model and the evolutionary model, and adds the risk analysis which both models ignore, and makes up the deficiency of the two models.
The Helix model divides the development process into several helical cycles, each of which is roughly consistent with the waterfall model:
Plan: Determine the target of the software, select the implementation plan, and clarify the constraints of the project development. Risk Analysis: Analyze the required scenarios, identify risks, and eliminate risks. Implementation of the project: the implementation of software development, verification of phased products. User evaluation: Evaluate the development work, propose the amendment proposal, establish the next cycle development plan.
The Helix model emphasizes risk analysis, which allows developers and users to understand the risks of each evolution layer and thus react accordingly. Therefore, the model is particularly suitable for large, complex and high-risk systems. Comparison of spiral models and waterfall models:
The Helix model supports the dynamic change of user requirements, facilitates the user's participation in all key decisions of software development, helps to improve the adaptability of software, and facilitates the timely adjustment of management decisions by project managers, thus reducing the risk of software development. When using spiral models for software development, developers are required to have considerable experience and expertise in risk assessment. Additionally, an excessive number of iterations increases development costs and delays the submission time. Fountain Model:
Fountain model is a model based on user's demand, which is driven by object, and is suitable for object-oriented development method. It overcomes the limitations that waterfall models do not support software reuse and integration of multiple development activities. The fountain model makes the development process iterative and non-interstitial.
Advantages: Improve the development efficiency of software projects, save development time.
Disadvantage: The development phase is overlapping, the development process needs a large number of developers, not conducive to project management. Strict management documents are required to make the audit more difficult. component-based development model:
Component-based development refers to the use of pre-packaged components to construct application systems. The component-based development model has the characteristics of many spiral models, which are essentially evolutionary models and need to build software iteratively.
Component-based development model, including domain Engineering and application Systems engineering two parts.
The goal of Domain engineering is to build domain models, domain benchmark architectures, and reusable component libraries.
The purpose of application Systems engineering is to assemble application systems using reusable components. Formal method Model:
Formal method is a software development method based on strict mathematics, and its main activity is to generate the mathematical specification of computer software formalization.
Formal methods use strict mathematical language and semantic description function specification and design specification, through mathematical analysis and derivation, it is easy to find ambiguity, incompleteness and inconsistency of requirements, and it is easy to verify the analysis model, design model and program. One variant of this approach is the Cleanroom software engineering. End:
I am Heng Zhao Qing, a member of the North Drift.
Life motto: [Make a decision, not difficult, difficult is to put into action, and adhere to the end]
Today's bitter pill, is the foreshadowing of yesterday, the present pay, is the flower of tomorrow. Come on... Come on...