Software engineering concept-what is it? What is the PDCA process of software engineering? What are the life cycle models?

table of Contents

What is software engineering?

What can software engineering help us?

What are the software engineering processes? (PDCA)

Software life cycle

What are the life cycle models?

to sum up


 

What is software engineering?

It is a discipline that studies the construction and maintenance of effective, practical and high-quality software using engineering methods.

In the computer room just finished, it is a piece of software. How do we make this software available to more people and how to standardize the software requires the use of software engineering ideas!

                      


What can software engineering help us?

Suppose a company wants to develop a software for learning English. At the beginning, the customer must understand the target audience of the software, what language to use to write it, what benefits and risks the software will bring, and evaluate all aspects; in the development stage, the program The staff develops through the needs put forward by the customer, and continuously adjusts until the final completion; the software needs to be maintained in the later stage.

Its ultimate goal is to obtain software products that are easy to maintain, easy to understand, reliable, and efficient with less investment


What are the software engineering processes? (PDCA)

P: plan, software rule description

D: do, software development

C: check, software confirmation

A: advancement, software evolution

This series of processes also involves the life cycle


Software life cycle

What stages does a software go through from its definition to development, application and maintenance, to its final obsolescence ? There are three stages in total:

         

 

Note: The abandonment of this software does not mean that it is unusable, but that it has been replaced by new software


What are the life cycle models?

<**Waterfall type**>

Idea: From the production time to simplify the problem according to the process, separate the function realization from the production to facilitate the division of labor and cooperation

Advantages: 1. Lay the foundation of software engineering methods;

           2. Dependence on flow, convenient for division of labor and collaboration;

           3. Postponed physical implementation, easy to modify documents, and quality assurance for review;

Insufficiency: late meeting with users, low success rate, generally 25%

Scope of application: applicable to systems with clear system requirements, applicable to the development of various application software

                             

 

<**Rapid prototype model**>

Idea: Software developers quickly develop a prototype according to the basic software requirements put forward by users, so as to show users some or all of the functions and performance of the software system. After soliciting users’ comments on the prototype, they can further refine the requirements. Complete, and improve and perfect the prototype accordingly, and iterate until the software developer and user both confirm the requirements of the software system and reach a consistent understanding position

Advantages: It is more in line with the process and law of people's understanding of things than the waterfall model, making a more suitable development framework

Applicable: suitable for the development of software systems whose requirements cannot be precisely defined in advance

                                   

 

<**Incremental Model**>

Develop one module at a time. When the customer is satisfied with this module, the next module is developed. So the product is developed in a way of building one at a time.

                               

 

<**Spiral Model**>

The combination of waterfall model and prototype model.

Four parts: planning, risk analysis, implementation and development, customer evaluation

Application: Need to have considerable risk assessment experience and expertise,

Expensive, suitable for large-scale software development

                           

 

<**Fountain Model**>

A model based on object-oriented software development methods, driven by user needs, and object-driven

                                      

 

<**b model (waterfall + loop)**>

                               

 


mind Mapping

 

to sum up

Software engineering can make our software more standardized, high-quality, and reduce unnecessary troubles in the development process through preliminary planning. The above models are all evolved through the waterfall model, we can choose different models through different developments

Guess you like

Origin blog.csdn.net/weixin_43319713/article/details/106478180