Since the term "software engineering" in 1968, experts scholars in research software projects have been proposed in succession of more than 100 guidelines or creeds on software engineering. The famous American software engineering expert Boehm integrated these experts and summed up the experience of TRW's many years of development software. In 1983, the seven basic principles of software engineering were put forward.
Boehm believes that these seven principles are minimal collection of principles of software product quality and development efficiency. They are independent of each other and is a minimum collection; at the same time, they are quite complete.
Of course, it is certainly impossible to use mathematical methods to strictly prove that they are a complete collection, but it can prove that more than 100 software engineering guidelines have been proposed before this, can have any combination of these seven principles or derived.
The following is a brief introduction to the seven principles of software engineering:
1 Strict management in the lifecycle plan
This is coming out by drawing the teachings of the former. Statistics show that more than 50% failure projects are caused by the plan. In the long life cycle of software development and maintenance, many properties are needed. This principle means that the software life cycle should be divided into a number of phases, and a practical plan should be developed accordingly, and then strictly manage the development and maintenance of the software in accordance with the plan. Boehm believes that the 6-class plan should be specified and strictly enforced in the entire software life cycle: the project profile, milestone plan, project control plan, product control plan, verification plan, and maintenance plan.
2 insist on stage review
Statistics show: Most errors are caused by coding, approximately 63%; <2> The more the error is found, the greater the price it is to pay, and the difference is 2 to 3 orders. Therefore, the quality assurance work of the software cannot wait until the end of the coding, and should be adhered to the strict phase review so as soon as possible to find errors.
3 Implement strict product control
One of the most hateful things that developers is to change demand. But practice tells us that the changes in demand are often inevitable. This requires us to adopt scientific product control technology to comply with this requirement. That is to use to use changes control and be called the benchmark configuration management. When the demand changes, the documents or code of the other phases changes corresponding to the consistency of the software.
4 adopt modern program design technology
From the Sixth, 7th, the structured software development technology has been fully recognized from the first, second generation language, from the first, second generation language, to the fourth-generation language: the method is like a gas. Advanced technology can improve the efficiency of software development and reduce the cost of software maintenance.
5 Results should be clearly reviewed
Software is a logical product that can't see it. The progress of the work of the software development team visible is poor, difficult to evaluate and manage. In order to better manage, the responsibility and product standards of the development team should be clearly stated in accordance with the total objectives and completion deadlines of software development, so that the standards obtained can be clearly reviewed.
6 Develop groups should be less
The quality and quantity of developers are important factors affecting software quality and development efficiency, should be less. This article is based on two reasons: high-quality developers' efficiency is several times higher than that of low quality developers, and there are few mistakes in development work; when the development team is n, it may The communication channel is N (n-1) / 2, which can be seen that the communication overhead will increase sharply with the increase of the number N.
7 Recognizing the need to continuously improve software engineering practice