Software Engineering Practice

Source: Internet
Author: User
1. Strict management with phased Life Cycle plans

Statistics show that about half of unsuccessful software projects are caused by poor planning, it can be seen that the first basic principle of building a complete plan is based on the lessons learned by our predecessors.

In the long life cycle of software development and maintenance, many tasks of different nature need to be completed. This basic principle means that the software life cycle should be divided into several stages, and feasible plans should be developed accordingly, and the software development and maintenance work should be managed in strict accordance with the plan. Boehm believes that six types of plans should be developed and strictly implemented throughout the software life cycle. They are project outline plans, milestone plans, project control plans, product control plans, verification plans, run the maintenance plan.

Management personnel at different levels must manage software development and maintenance in strict accordance with the plan, and shall not deviate from the plan without authorization due to the influence of the customer or superior personnel.

2. Adhere to the stage review

At that time, it was realized that the quality assurance of software could not be completed after the completion of the coding stage. There are at least two reasons for this: first, most errors are caused before coding. For example, according to Boehm and others, design errors account for 63% of software errors and only 37% of coding errors; second, the later the error is found and corrected, the higher the price it will pay. Therefore, a strict review at each stage is an important principle that must be followed to identify errors made during software development as soon as possible.

3. Strict product control

In the software development process, the demand should not be changed at will, because changing a demand often requires a high price. However, it is inevitable to change the demand in the software development process. due to changes in the external environment, it is an objective requirement to change user requirements accordingly. It is clear that customers cannot be forced to propose requirements for changes, rather they can only rely on scientific product control technologies to meet such requirements. That is to say, when changing requirements, strict product control must be implemented to maintain consistency of the various configuration components of the software, mainly for baseline configuration management. Baseline configurations, also known as baseline configurations, are software configuration components (documents orProgramCode). Baseline configuration management, also known as change control: All suggestions for software modification, especially the modification suggestions for the baseline configuration, must be reviewed in accordance with strict procedures and approved before modification can be implemented. No one wants to modify the software (including the software that is still under development.

4. Adopting Modern Programming Technology

Since the concept of software engineering was proposed, people have been focusing on the research of various new programming technologies. The structure programming technology proposed at the end of 1960s has become an advanced programming technology recognized by most people. In the future, various structure analysis (SA) and Structure Design (SD) technologies will be further developed. Practice shows that adopting advanced technologies can not only improve the efficiency of software development, but also improve the efficiency of software maintenance.

5. Results should be clearly reviewed

Software products are different from physical products. They are logical products that cannot be found. The development process of software products is more difficult to evaluate and manage than the development process of general products. In order to improve the visibility and Management of the software development process, the responsibilities and product standards of the development organization should be specified according to the overall goal and deadline of the software development project, this allows the results to be clearly reviewed.

6. Developers should be less refined

This basic principle means that the quality of the members of the software development team should be good, and the number of members should not be too large. The quality and quantity of developers are important factors that affect the quality and efficiency of software products. The development efficiency of high-quality personnel may be several to dozens of times higher than that of low-quality personnel, moreover, errors in software developed by high-quality personnel are significantly less than those in software developed by low-quality personnel. In addition, as the number of developers increases, communication overhead increases dramatically due to discussion of communication issues. When the number of developers is N, there may be n/2 communication routes. As the number of developers increases, the communication overhead will increase dramatically. Therefore, a small and refined Development Group is a basic principle of software engineering.

7. acknowledge the necessity of constantly improving software engineering practices

In accordance with the above six basic principles, we can achieve engineering production of software in accordance with the basic principles of contemporary software engineering. However, only the above six principles cannot ensure that the software development and maintenance process can catch up with the pace of the times and keep up with the continuous technological advances. Therefore, Boehm proposes that the necessity of constantly improving software engineering practices should be considered as the seventh basic principle of software engineering. In accordance with this principle, we should not only actively adopt new software technologies, but also constantly sum up experience, such as collecting progress and resource consumption data, and collecting error types and problem report data. This data can be used not only to evaluate the effectiveness of new software technologies, but also to specify software tools that must be developed and technologies that should be prioritized

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.