Software Engineering: Theory, Method and practice

Source: Internet
Author: User

In the software process, from the preface we know that the vast majority of software companies have long faced many quality, progress, cost problems, so there are people thinking and process thinking two ways, and now we have a definition: the software process for the construction of high-quality software needs to complete the task of the framework, This is a series of steps to form a software product, including intermediate products, resources, roles and methods, tools in the process and other categories. Its basic activities are: issues, software Requirements specification, software design, software implementation, software validation and software evolution activities.

In the second section we learned about the software process model, which is mainly as follows:

1. Waterfall Model is the first software development model, which occupies an important position in software engineering, and it provides the basic framework of software development. The nature of the waterfall model is one pass, that is, each activity is executed only once, and finally the software product, also known as the "linear sequential model" or "traditional life cycle". The process is the input of the work object that received the activity from the previous activity, and the content that the activity should be implemented by using this input gives the results of the activity and passes it as output to the next activity. At the same time review the implementation of the activity and, if confirmed, continue with the next activity, otherwise return to the previous, or even earlier, activity.

Waterfall Model is beneficial to the organization and management of large-scale software development process, and is beneficial to the research and use of software development methods and tools, thus improving the quality and efficiency of large-scale software project development. However, the practice of software development shows that the above activities are not completely top-down and linear schema, so the waterfall model has serious defects.

① because the development model is linear, users cannot see the effect of the software when the development results have not been tested. This allows the software to meet the user for a long time interval, but also increased a certain amount of risk.

② errors found during the end of software development are propagated to later development activities, which can potentially lead to a failure in the development of the entire software project.

③ in the software requirements analysis phase, it is difficult or even impossible to fully determine the needs of all users.

2. The rapid prototyping model requires the rapid construction of a software prototype that can be run to understand and clarify issues, to enable developers to agree with users, and ultimately to develop customer-satisfied software products based on identified customer requirements. The rapid prototyping model allows for a preliminary rather than a complete analysis and definition of the requirements of the software during the requirements analysis phase, and quickly designs and develops a prototype of the software system that presents the user with all or part of the functionality and performance of the software being developed, and the user tests and assesses the prototype to provide specific improvements to enrich the software requirements The software is modified and perfected by the developers, and the software is fully realized and tested and maintained after the user's satisfaction. It is another form of the incremental model; it is to construct a prototype before the real system is developed, and on the basis of the prototype, the development of the whole system is gradually completed. The first step in a rapid prototyping model is to build a rapid prototype that enables customers or future users to interact with the system, and the user or customer evaluates the prototype to further refine the needs of the software to be developed. By gradually adapting the prototype to meet the customer's requirements, the developer can determine what the customer really wants, and the second step is to develop customer-satisfied software products based on the first step. This is also one of the most common models, but its advantages and disadvantages are as follows: Advantages: Overcoming the shortcomings of the waterfall model and reducing the development risk due to unclear software requirements.

This model is suitable for the development of software systems that cannot define requirements beforehand.

Disadvantage: The chosen development technology and tools do not necessarily conform to the mainstream development; the rapidly established system structure coupled with continuous modifications may lead to poor product quality.

The premise of using this model is that there is a demonstration of a product prototype, which may limit the developer's innovation to some extent.

3. The incremental model incorporates the basic components of the waterfall model (repeated application) and the iterative characteristics of the prototype implementation, which uses a linear sequence that is staggered with the progress of the schedule, and each linear sequence produces a published "increment" of the software. When using the incremental model, the 1th increment is often the core product, that is, the 1th increment implements the basic requirements, but many of the supplemental features have not yet been released. The customer's use and evaluation of each increment is a new feature and feature for the next incremental release, which repeats every incremental release until the final product is produced.

It is characterized by: the incremental model is characterized by the introduction of the concept of incremental package, no need to wait until all the requirements come out, as long as a demand for the incremental package out can be developed. While an incremental package may need to be further adapted to the customer's needs and changes, the impact is affordable for the entire project as long as the incremental package is small enough.

Advantages: 1) due to the ability to submit some useful work products to users in a short period of time, it is able to solve some of the user's emergency functions.

2) The user has more time to learn and adapt to the new product because it only submits the user part of the function each time.

3) The maintainability of the system is a great improvement, because the whole system is integrated by a component, when the requirements change only parts of the change, without affecting the entire system.

The disadvantages are: 1 because each component is gradually merged into the existing software architecture, the component must not break the already constructed part of the system, which requires the software to have an open architecture.

2) in the development process, the change of demand is unavoidable. The flexibility of the incremental model can make its adaptability to this change much better than the waterfall model and the rapid prototyping model, but it is also easy to degenerate into a side-by-side modification model, so that the control of the software process loses its entirety.

3) If there is an intersection between the delta packages and is not well handled, then the overall system analysis must be done, the model will be refined after the development of the method is more appropriate to the requirements of the software development process changes frequently.

4. Spiral model is an evolutionary software development process model, which takes into account the iterative characteristics of rapid prototyping and the systematization and strict monitoring of waterfall model. The biggest feature of the Helix model is the introduction of risk analysis that is not available in other models, so that the software has the opportunity to stop when significant risks are not eliminated in order to reduce losses. At the same time, building prototypes at each iteration stage is the way the Helix model reduces risk. The helical model is more suitable for large, expensive system-level software applications. The Spiral model emphasizes risk analysis, which allows developers and users to understand the risks of each evolution layer and then respond accordingly, making them particularly suitable for large, complex and risky systems. The spiral model has several iterations along the Helix, and the four quadrants in the diagram represent the following activities:

Four quadrants

(1) Make a plan: Determine the software objectives, select the implementation plan, clarify the constraints of project development;

(2) Risk Analysis: Analysis and evaluation of the selected program, consider how to identify and eliminate risk;

(3) Implementation of the project: the implementation of software development and validation;

(4) Customer Evaluation: evaluation of development work, the proposed amendments to make the next plan.

The Helix model, driven by risk, emphasizes the option and constraints to support software reuse, and helps to integrate software quality into product development as a special goal.

Frequently asked questions are:

rigid system (overwhelming architectures)

Td>

solution for spiral model

user needs are not sufficient

allow and encourage user feedback

/td>

communication unknown

development first focus on important business and issues

judgmental

objective evaluation through testing and quality assurance

potential inconsistencies

poor testing and quality assurance

td>

using waterfall method development

The constraints are: (1) The Spiral model emphasizes risk analysis, but it is not easy for many customers to accept and believe this analysis and to make relevant responses, so this model is often adapted to internal large-scale software development.

(2) If performing risk analysis will significantly affect the profitability of the project, then the risk analysis is meaningless, so the spiral model is only suitable for large-scale software projects.

(3) Software developers should be good at looking for possible risks and accurately analyzing risks, otherwise they will lead to greater risk

The first stage is to determine the objectives of the phase, to complete the selection of these objectives and constraints, and then from the perspective of risk analysis of the development strategy of the program, and strive to eliminate the potential risks, sometimes need to build prototypes to complete. If certain risks cannot be excluded, the scenario terminates immediately, otherwise the next development step is initiated. Finally, evaluate the results of this phase and design the next phase.

The advantages are: 1) design flexibility that can be changed at all stages of the project.

2) build large systems with small segments, making cost calculations easy and easy.

3) Customers always participate in the development of each stage, ensure that the project does not deviate from the correct direction and the project controllability.

4) As the project progresses, the customer always has the latest information on the project so that he or she can interact effectively with management.

5) The customer acknowledges that the internal development of this company brings good communication and high quality products.

The downside is that it's hard to convince users that the results of this evolutionary approach are controllable. Long construction cycle, and software technology development is relatively fast, so often appear after the software development, and the current technical level has a large gap, can not meet the current user needs.

The project of the Helix model applies:

In the case of new development and unclear requirements, it is suitable to develop with spiral model, which is convenient for risk control and requirement change.

Its core components are: the "spiral model" has just begun to be very small, and when the project is defined better and more stable, gradually unfold.

The core of the spiral model is that you don't have to define everything at the beginning. You take it easy, define the most important features, implement it, and then listen to the customer's comments before moving on to the next stage. So keep repeating the cycle until you are satisfied with the final product.

Each cycle consists of the following six steps:

1. Determine the target, optional, and mandatory conditions.

2. Identify and mitigate risks.

3. Evaluate the optional options.

4. Develop and test the current phase.

5. Plan the next phase.

6. Determine the method steps to enter the next phase.

This is a better model.

The third section introduces the Microsoft development process, through which we know that technology is not the only determinant of the success of the project, its development process model by planning, design, development, stability and release 5 processes, but each process is a milestone driven. It has many notable features: 1. The timeliness of problem solving. 2. Uncertainty and the controllability of the change factors. 3. Shorten the time-to-market of products.

Software Engineering: Theory, Method and practice

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.