Traditional Culture Encyclopedia - Traditional stories - Process model of software process model

Process model of software process model

It is sometimes called the traditional life cycle model or waterfall model. It puts forward a systematic and sequential software development method. Its process starts with the system, followed by requirements analysis, design, coding, testing and support. This model is the earliest and most widely used software process model (although it will cause "blocking state").

Disadvantages:

1, most of the actual projects are difficult to carry out in the order given by this model, and the iteration of this model is indirect, and it is easy to grow from small to large.

2. It is often difficult for customers to express their real needs, but this model needs it. This model does not welcome the existence of ambiguity.

3. Customers can't see the test version of the program until the later stage of the development cycle, and finding big mistakes at this time may cause customers to panic and the consequences may be disastrous.

4. Using this linear model, we usually wait for other members to complete the tasks they depend on at the beginning and end of the process, and then continue, which may be longer than the development time. We call it "blocking state".

Advantages:

1, which provides a template, so that the methods of analysis, design, coding, testing and support have a * * * guidance under the touch panel.

2. Although there are many defects, it is much better than the random state in software development. Starting from requirements collection, developers and customers work together to define the overall goal of the software, determine the known requirements and plan the areas that need further definition. Then there is "rapid design", which focuses on the representation of the software parts visible to customers, which will lead to the creation of prototypes, and customers will evaluate and further refine the requirements of the software to be developed. The process of gradually adjusting the prototype to meet the needs of customers is iterative. This process begins with listening to customers' opinions, then building/modifying the prototype, testing and running the prototype by the customer, and so on until the customer is satisfied with the prototype. Because this model can make customers feel the actual system quickly (although this system has no quality guarantee), both customers and developers prefer this process model (for companies that only demonstrate software functions or companies that never consider software quality and are not afraid of long-term maintenance).

Disadvantages:

1, regardless of the overall quality and long-term maintainability of the software.

2. In most cases, inappropriate operating algorithms are used to demonstrate functions, and inappropriate development tools are used only for its convenience, and inappropriate operating systems are selected.

3. Because the products that fail to meet the quality requirements may be abandoned, they are redesigned with new models.

Advantages:

1. If the customer and the developer reach an agreement that the prototype is only built to define the requirements and then abandoned or partially abandoned, then this model is very suitable.

2. Confusing customers to seize the market is the preferred mode. This is an incremental software development process model, which emphasizes a very short development cycle. It is a "high-speed" variant of linear model, and has won rapid development by using component construction method. If the requirements are well understood and the scope of the project is constrained, then a fully functional "information system" can be quickly created by using this model. Its process starts with business modeling, followed by data modeling, process modeling, application generation, testing and iteration. RAD process emphasizes reuse, reusing existing or developing reusable components. In fact, RAD uses the fourth generation technology.

Disadvantages:

1, which can only be used in information systems.

2. For larger projects, enough human resources are needed to establish enough RAD groups.

3. Developers and customers must complete a series of requirements analysis in a short time, and improper cooperation of either party will lead to the failure of RAD project.

4. This model needs to be highly modular. If any function cannot be modularized, there will be problems with the components needed to build RAD.

5. It is not suitable for this mode in the case of high technical risk.

Advantages:

1, the development speed is fast and the quality is guaranteed.

2. It is especially effective for information systems. This model combines the basic components of linear sequence model and the iterative characteristics of prototype realization model. The incremental model adopts linear sequence, which is staggered with the progress of scheduling time. Each linear sequence generates a publishable software "delta". When using the incremental model, the first increment is often the core product, that is, the first increment realizes the basic requirements, but many supplementary features have not been released yet. The customer's use and evaluation of each increment is regarded as the new features and functions released in the next increment. This process is repeated after each incremental release until the final perfect product is produced. Incremental mode emphasizes that every increment releases an operable product.

Disadvantages:

1. From beginning to end, developers and customers are struggling until the full version comes out.

Advantages:

1. Flexible personnel deployment. You don't need to invest a lot of human resources at first. When core products are very popular, you can increase manpower to achieve the next increment.

2. When the staff can't complete the product within the set time limit, it provides a way to launch the core product first, so that some functions can be released to customers first, which has a calming effect on customers.

It has a certain market. This is an evolutionary software process model, which combines the iterative characteristics of prototype implementation with the controlled and systematic aspects of linear sequence model. It makes it possible to quickly develop incremental versions of software. In the spiral model, software development is a series of incremental releases. In each iteration, a more perfect version of the development system is gradually produced. The spiral model is divided into several frame activities, also called task areas. Usually, there are 3 to 6 task areas:

1. Customer communication: the task required to establish effective communication between developers and customers.

2. Planning: define the tasks required for resources, schedule and other relevant project information.

3. Risk analysis: tasks required to evaluate technology and manage risks.

4. Engineering: One or more tasks required to build an application.

5. Build and Release: Tasks required for building, testing, installing and providing user support.

6. Customer evaluation: the task required to obtain customer feedback based on the evaluation of the software representation generated in the engineering stage or realized in the installation stage.

This is a relatively new model, and its efficacy needs to be determined after several years of use.

Disadvantages:

1 requires considerable expertise in risk analysis and assessment, and success depends on this technology.

2. It is obvious that a big undiscovered risk problem will lead to problems, which may lead to out-of-control evolutionary methods.

3. This model is relatively new and not widely used, and its curative effect needs further verification.

Advantages:

1. This model is a good way to develop large-scale systems and software. Developers and customers can better treat and understand the risks at each evolutionary level. The spiral model puts forward a framework activity that emphasizes customer communication. The goal of this activity is to summarize the project requirements from customers. Ideally, the developer simply asks the customer what he needs, and the customer provides enough details to continue. Unfortunately, this rarely happens. In fact, customers and developers have entered a negotiation process, and customers need to balance functions, performance and other product or system characteristics under the constraints of cost and market. The best negotiation pursues "win-win" results, that is, through negotiation, customers get most of the functions of the system, while developers get realistic and achievable budget and time constraints. The following activities are defined for customer communication:

1. Identification of key "stakeholders" of a system or subsystem.

2. Determination of "winning conditions" of risk takers.

3. Negotiate the winning conditions of the risk takers, so as to coordinate into a set of win-win conditions that meet the consideration of all parties.

Disadvantages:

1, which requires extra negotiation skills.

Advantages:

1, customers and developers reach a balance. The model focuses on the concurrent execution of multiple tasks, which is represented by a series of major technical activities, tasks and their related states. The parallel process model is driven by customer requirements, management decisions and review results. The model does not limit software engineering activities to a series of continuous events, but defines an activity network. Every activity on the network may occur at the same time as other activities. This model can provide an accurate view of the current state of the project.

Disadvantages: Not yet.

Advantages:

1, which can be used for all kinds of software development and is more effective for client/server structure.

2. You can check the development status at any time. Object-oriented technology provides a technical framework for component-based software engineering process model. The object-oriented model emphasizes the creation of classes, the encapsulation of data by classes and the algorithm of manipulating data. Generally speaking, with proper design and implementation, object-oriented classes can be reused in different applications and computer-based system architectures. Component-based development model combines many characteristics of spiral model, which is essentially evolutionary and needs iterative method of software creation. However, the component-based development model uses pre-packaged software components (sometimes called classes) to construct applications.

Development activities begin with identifying candidate classes and are completed by examining the data to be operated by the application system and the algorithm used to realize the operation. Related data and algorithms are encapsulated into a class.

Disadvantages:

1, too dependent on components, and the quality of component library affects the quality of products.

Advantages:

The 1. component can be reused. And the development efficiency is improved.

2. Using object-oriented technology. The formal method model contains a set of activities that lead to the mathematical specification of computer software. Formal methods enable software engineers to standardize, develop and verify computer-based systems by applying strict mathematical symbol systems. A variant of this method, called clean room software engineering, has been adopted by some organizations. When formal methods are used in development, they provide a mechanism to eliminate many problems that are difficult to overcome by using other software process models. Ambiguity, incompleteness and inconsistency can be found and corrected more easily, not through special evaluation, but through applied mathematical analysis. Formal methods offer the hope of producing defect-free software.

Disadvantages:

1, which is expensive to develop (developers need all kinds of training) and takes a long time.

2. This model can't be used as a communication mechanism with customers, because customers know nothing about these mathematical languages.

It's not popular yet.

Advantages:

The formal specification of 1. can be directly used as the basis for program verification, and errors (including those that cannot be found in other circumstances) can be found and corrected as soon as possible.

2. The developed software has high security and robustness, and is especially suitable for security departments or developers whose software errors will cause economic losses.

3. Commitment to develop defect-free software. The use of a series of software tools is the characteristic of the fourth generation technology. These tools have the same characteristics: they enable software engineers to specify certain characteristics of software at a higher level, and then automatically generate source code according to the developer's specifications. As we know, the higher the standardization of software, the faster the program will be built. software engineering

The 4GT model focuses on the ability to specify software: use a special language form or graphic symbol system to describe the problem to be solved in terms that customers can understand. Like other models, 4GT starts with the step of requirements collection. In order to turn the 4GT implementation into the final product, developers must also conduct thorough testing, develop meaningful documents, and complete all integration activities that are also needed in other models. In a word, 4GT has become an important method of software engineering. Especially when combined with component-based development model, 4GT model may become the mainstream model of current software development!

Disadvantages:

The source code generated by the 1. tool may be "inefficient".

2. The maintainability of the generated large-scale software is still in doubt.

3. In some cases, more time may be needed.

Advantages:

1, which shortens the software development time and improves the efficiency of building software.

2. It provides feasible ways and solutions for many different application fields.