The term "Software engineering" was first proposed at the NATO conference, hoping to use engineering principles and methods to overcome the software crisis. Since then, people have carried out the research of software development model, development method, tool and environment, put forward the development models such as waterfall model, evolutionary model, spiral model and fountain model, and developed methods, such as data flow method, object-oriented method, OO, and a batch of case (computer aided Software Engineering, computer-aided software engineering) tools and environments.
I. Software life cycle
| Stage |
Task |
Participating personnel |
The main documents produced |
| Feasibility Analysis and project development plan |
Determine the development objectives and feasibility of the software |
User, project leader and system analyst |
Feasibility Analysis report and project development plan |
| Demand analysis |
The function, performance, data and interface of the software system are required to determine the logical model of the system. |
User, project leader and system analyst |
Software Requirement Specification |
| Overview design |
Design the structure of the software, but also to design the project's application system and the overall data structures and database structure. |
System Analyst and software designer |
Overview Design Manual |
| Detailed design |
Transform the functional description into a precise, structured process description. |
Software designers and programmers |
Detailed design Documentation |
| Coding |
Write the control structure of each module into a specific programming language |
Programmers |
SOURCE program Manifest |
| Test |
Check every part of the software on a test case basis |
A software designer or system analyst in another department |
Software Test Plan Test Cases Software Test Report |
| Maintenance |
For various reasons, the software is modified. |
—— |
—— |
Two. Software Process
The roadmap followed in software development is called a "software process."
1. Competency Maturity Model (CMM)
The software Process Capability Maturity Model (Capability Maturity Model of SOFTWARE,CMM), which is designed to provide a way to evaluate the ability of a software recipient ,
It can also help software organizations improve their software processes.
The CMM divides the software process into 5 levels of maturity.
(1) The initial level of chaos, the successful completion of the project is entirely dependent on individual efforts and the role of heroic core characters.
(2) Repeatable levels have the necessary process guidelines to repeat previous successes in similar projects.
(3) The software process has been documented and standardized in both defined level management and engineering.
(4) The management level has developed a detailed measurement of software processes and product quality.
(5) The optimization level strengthens the quantitative analysis, through the feedback enables the process to continue to improve continuously.
2. Competency Maturity Model (CMMI)
CMMI is the synthesis and improvement of several process models, and it is a systematic and consistent process improvement framework that supports multiple engineering disciplines and fields.
The CMMI provides two presentation methods, a phased model that focuses on the maturity of the Organization, and a continuous model that focuses on the capabilities in each process domain.
3. Unified Process (UP)
The unified Process model is a "use case and risk driven, architecture-centric, iterative and incremental" development process supported by UML methods and tools.
Initial phase: Life cycle objectives
Essence stage: Life cycle framework
Component stage: preliminary operation function
Handover phase: Product launch
Basic knowledge of software engineering 1