Although software reuse is the best software engineering practice, it can greatly improve software development efficiency and software product quality.
However, the acquisition of these benefits is also conditional.
For improving software development efficiency, it is not possible to improve it by using reusable components.
In fact, it depends on whether the cost of using reusable components is less than the time saved.
The cost of using reusable components can include cognitive cost and learning cost.
The former is to know what functions the reusable components have achieved and whether they can be used by me; How is the latter used.
To reduce the cost of using reusable components, it is necessary to reduce cognitive and learning costs, that is, to improve their usability when developing reusable components.
This may require us to take the following measures: encapsulating reusable components should meet the principle of encapsulation, which is to hide the properties and implementation details of objects as much as possible, and only provide concise public interfaces to the outside world.
This will enable users to easily use it as long as they provide an interface that meets the requirements.
Testing reusable components must be tested and verified to be correct, and there will be no bugs during use.
This can avoid modification costs during use.
Each reusable component should provide a concise and accurate usage manual to explain its functions and interfaces, so that each user can quickly get started and reduce learning costs.
The reuse library for retrieving and storing reusable components should support multiple retrieval methods, allowing users to quickly retrieve reusable components that can be used according to their own needs, reducing cognitive costs.
In short, when developing reusable components, attention should be paid to their ease of use, and people should not be deterred by their high usage costs, making it impossible to use them, thus causing software reuse to lose its due role in improving development efficiency.
This is exactly: despite the good practice of reuse, ease of use is the key.
If the cost of use is too high, the benefits of reuse will disappear.
Number of references: The Way of Software: Analysis of Software Development Disputes, by Andy OramGreg Wilson, the publisher: People’s Posts and Telecommunications Publishing House.
About the author: Wang Xiaoshuang, who has been engaged in the promotion, implementation, evaluation and improvement of GJB5000 for a long time, and created the WeChat official account of Thoughts on Software Engineering, I have been sharing knowledge and insights on GJB5000, CMMI, and software engineering in “Software Engineering Thoughts”.
We are currently committed to research on GJB5000 training, internal and external evaluation, software process improvement, and software engineering capability enhancement.
.