[Software Engineering] common comparison of several software process models

Comparison of several common software process model

First, the waterfall model (Waterfall Model) #

Waterfall model (classical life model) proposed software development systematic, sequential approach. Its processes from the user requirements specification began by planning, modeling, build and deployment process, and ultimately provide a complete software and provide ongoing technical support.

 

Model Features :

  • After the previous stage must wait for completion of the work to start after a period of work;
  • Each stage must complete the required documentation, failure to produce documents is not eligible to complete this phase of the mission.
  • The previous stage of the output document is the input document of a stage after, so only the previous stage of the output document correctly, work to a later stage to get the right result.
  • The document must be completed before the end of each review stage for early detection of problems, correct the error. In fact the more errors committed by the early stages, the more exposed later time required to correct the error troubleshooting the costs higher. Therefore, timely review is to ensure software quality, an important measure to reduce software costs.

Model advantages :

  • It emphasizes the development stage, each stage having an order and dependence
  • Emphasis on early research and needs analysis, coding postpone implementation point of view
  • It provides a template that makes the analysis, design, coding, testing, and support the method can have a common guidance on this template.

Model limitations :

  • The waterfall model is a linear model, requires strict accordance with procedures to promote the project, in order to obtain software product must be delivered until after all the development work is completed. Can not quickly create software systems for the development of some software system rush delivery is very convenient.
  • The waterfall model is suitable for specific needs, and no big change requests in software development (compilation system, operating system, etc.). As for the vague initial project needs analysis, waterfall model does not fit.

Applicable scene :

Suitable for requirements determination, no big demand for change, work can be employed in a linear fashion to complete the software.

Second, the incremental model (Incremental Model) #

Iterative incremental model combines the features of the basic ingredients and prototype implementation of the waterfall model, considering its software process are: implementation of the project development process in accordance with the waterfall model as a whole, in order to facilitate the management of the project; but in the actual development of software , the software system will be functionally divided into a number of changes in members, and members one by one in order to create and deliver the unit, until all the incremental component is created, and are integrated into the system in delivered to users.

 

Model Features :

  • When using incremental model, the first increment is often the core of the product;
  • For each increment of customer use and evaluate all the new features and functionality as the next incremental release;
  • This model uses With the progress of time schedule of staggered linear snow hunting, each generating a linear sequence of a software release "incremental."

Model advantages :

  • The cost and time of the first version of deliverables required very little;
  • The system developed by a small incremental risk is not represented undertaken;
  • Because soon released the first version, it is possible to reduce the change of user needs;
  • Run an incremental investment, ie at the beginning of the project, can be only one or two incremental investment;

Model limitations :

  • The complexity of cost management occurs, schedule, and configuration may be beyond the capacity of the organization;
  • Without the user's request to change the plan, then the resulting incremental accident may result in subsequent increment of instability;
  • If you do not want to demand that the stability and integrity of the early thinking, then some increment may need to re-develop and re-released.

Applicable scene :

Project impossible to find enough cases of developers before the deadline established business requirements.

Third, the evolution model (Evolutionary Model) #

Rapid Prototyping (Rapid Prototype) Model #

The software development process, early development is difficult to get a complete and accurate requirements specifications, application developers tend to obscure the problem to be solved, so as to form requirements specification is often incomplete, inaccurate, sometimes ambiguous. In addition, throughout the development process, users may generate new requirements, resulting in the demand for change. In order to adapt to this change and uncertainty demand, (Rapid Prototype) so there is a development methodology for rapid prototyping.

 

Model Features :

  • Rapid prototyping was used to obtain the user's needs, or to test the validity of the design. Once finalized the requirements or design, prototype will be abandoned. Thus, rapid prototyping member require fast, easy to modify, to save costs of prototyping, faster development;
  • Rapid prototyping is being applied, used, and therefore does not require complete. It tends to establish a special prototype, such as prototype interface, workflow and other prototype for a local problem;
  • Rapid prototyping can not throughout the life cycle of the software, and it requires a combination of other process models can have an effect. For example, the application of rapid prototyping in the waterfall model, the waterfall model to address the lack of requirement analysis period exist.

Model advantages :

  • We can inspire customers to progressively introduce new requirements or tasks, prompting developers and users to reach a consensus;
  • Reduce development risk, because to avoid the uncertain demand and waste a lot of resources in the development process.

Model limitations :

  • Without taking into account the overall and long-term maintainability of the software;
  • Probably due to meet quality requirements cause the product to be abandoned, so the introduction of new model redesign;

Applicable scene :

Prototype method is more suitable for user needs is not clear, the situation is constantly changing demand. When the system is not large in scale is not very complicated, this method is better.

Spiral Model (Spiral the Model) #

For large and complex software, to develop a prototype is often below standard. The waterfall model and the spiral model evolution model combining the two models were added to the risk analysis ignored, up for the lack of these two models.

 

Four steps :

  • Plan: to determine the target software, project development restrictions explicitly selected embodiments;
  • Risk assessment: analysis of selected programs, identify risks, eliminate the risk;
  • Implementation of the project: the implementation of software development, product validation stage;
  • User Evaluation: evaluation and development work, propose amendments, the next cycle of the establishment of a development plan.

Model Features :

  • Compared with the waterfall model, the spiral model to support dynamic changes in user requirements, providing convenience for users involved in software development for all key decisions;
  • Using a spiral model of software development, developers need to have a wealth of experience and expertise in risk assessment.

Model advantages :

  • Focus on software reuse;
  • Focused on early error elimination;
  • The quality objectives in the first place;
  • Combines the development phase and maintenance phase.

Model limitations :

  • Developers need to have strong experience in risk assessment;
  • Contract development process model is usually required to specify in advance and publishing products.

Applicable scene :

Spiral model emphasizes risk analysis, allowing developers and users risk level appears to understand the evolution of the US and Russia, in order to make proper response. Thus, the model is suitable for large, complex systems and have a high risk.

Fourth, the fountain model (Water Fountain Model) #

Fountain model is designed for object-oriented software development methods proposed. The word "fountain" is used to express the image of the object-oriented software development process is iterative and seamless transition.

In object-oriented method, the object is both abstraction of a real entity in question, but also the basic elements of construction software systems. Thus, the object model established in the object-oriented approach, both for the analysis, design can also be used, and the object model framework analysis phase can be obtained by seamless transition into the design stage, as a basis of software.

Fountain process approach model under consideration is based on a convenient object-oriented approach brings the analysis of software, design and implementation of alternate iterative manner, and by way of evolution, the software gradually phased complete, stepwise fine.

 

Model Features :

  • Fountain model is a user demand driven, driven object as a model adapted to the object oriented development;
  • Fountain model enables iterative development process and non-intermittent, iterative development activities often means that the model needs to be repeated several times in an iterative process continue to improve software systems, seamless refers to development activities (such as analysis, design, there is no obvious boundary between coding).

Model advantages :

  • The various stages of the fountain model of no clear boundaries, developers can simultaneously. The advantage is that you can improve development efficiency as Ken project. Saving development time.

Model limitations :

  • Since the fountain model in various stages of development are overlapping, requires a lot of developers in the development process, is not conducive to the management of the project;
  • Fountain model requires strict management documents, making the audit more difficult to increase.

Fifth, the development model based component (the Component-baseed the Model Development) #

Development of component-based approach is the use of pre-packaged component application system is constructed. Member can be developed by an internal member, the finished member may be commercialized. Model-based development member having a number of characteristics of the spiral model, which is essentially evolution model, the software component needs to be iteratively. The difference is that, in software development applications member prepackaged component based development model.

Sixth, the formal method model (Formal Methods Model) #

Formal methods is a software development methodology based on strict digital basis, and its main activity is to generate a mathematical specification of computer software formal

Seven, Unified Process (UP) Model #

Unified Process model is a "use cases and risk-driven, architecture-centric, iterative and incremental" development process, supported by the UML methods and tools. Iteration means that the entire software development project is divided into many small "pocket project," each "pocket item" contains all the elements of a normal software project: planning, analysis and design, construction, integration and testing, as well as internal and external release.

Eight, Agile (Agile Development) #

The overall goal of agile development is by "as much as possible, and continuous delivery of valuable software of" customer satisfaction. By adding the flexibility in the software development process, agile methods enable users to add or change demand late in the development cycle.

There are many typical method of agile processes, each method based on a set of principles to achieve an agile process claimed the idea (Agile Manifesto).

Extreme Programming (XP) #

XP is a typical method of agile development, it is a lightweight (agile), high efficiency, low-risk, flexible, predictable, scientific software development methodology, which consists of values, principles, practices and behaviors of 4 parts .

  • Four values: communication, simplicity, feedback and courage.
  • Five principles: rapid feedback, simplicity assume gradually modify, change and promote high-quality work.
  • 12 Best practice: planning game, small releases, metaphor, simple design, test first, refactoring, pair programming, collective ownership of code, continuous integration, working 40 hours a week, on-site customer and coding standards.

Crystal Act (the Crystal) #

Crystal XP system and method, as has the concept of a people-centered, but in fact different. Crystal methodology taking into account it is generally difficult to strictly follow a highly disciplined process that each project requires a different set of strategies, conventions and methodology. Therefore, highly disciplined XP different methodologies to explore the crystal with the least disciplined and still successful method to achieve a balance in the output efficiency and ease of operation.

Seeking scrum (Scrum) #

Using an iterative approach, in which every 30 days once the iteration is called a "sprint", and demand-driven priorities to achieve product. In parallel to achieve incremental goods more self-organization and self-government groups. Coordination is carried out by a brief daily meetings.

Adaptive Software Development (ASD) #

The core of ASD are three non-linear, overlapping phases of development: speculation, collaboration and learning.

Author:  Tuesday

Source: https://www.cnblogs.com/jojop/p/11801241.html

Published 46 original articles · won praise 18 · views 30000 +

Guess you like

Origin blog.csdn.net/IGGIRing/article/details/105025067