What is software reuse

Software products are different from other products in that they are abstract and can be copied without restriction once produced. Therefore, the reuse of software products is of great significance and can save a lot of manpower and material resources. Software reuse refers to the use of existing software elements to build new software systems. The software elements can be software products, source programs, documents, design ideas or even domain knowledge. Software reuse can directly improve software development efficiency, reduce software development costs, shorten software development cycles, and improve software quality.
Common forms of software reuse include:
(1) Source code reuse. This is the simplest and most common form of reuse, but due to the complexity of software systems, it is difficult to reuse existing source code on a large scale.
(2) Architecture reuse. Architecture reuse is also very common. With the promotion and application of software architectural styles and design patterns, architecture reuse has had a significant impact on software development.
(3) Reuse of application framework. With the development of software technology, the reuse of application frameworks has become more and more common, and many mature software companies have established their own development frameworks. In the open source community, technology enthusiasts from all over the world are also constantly launching development frameworks that apply various new technologies, such as Spring using AOP (Aspect Oriented Programming) technology.
(4) Reuse of business modeling. Although the business areas of different software are different, people have summarized some common domain modeling methods. Reusing these domain models can reduce the demand risk caused by insufficient domain knowledge.
(5) Reuse of documents and processes. Software documents and software processes are also indispensable elements in software development. Effective reuse of these documents and processes can also help improve development efficiency and software quality, and reduce development costs.
(6) Reuse of software components.
(7) Reuse of software services. With the introduction of Web services, people are paying more and more attention to the reuse of services. SOA (Service-Oriented Architecture) proposes a service-oriented software architecture and defines corresponding standards. But SOA is not yet mature enough, and I believe this field will make greater progress in the next few years.

Guess you like

Origin blog.csdn.net/miachen520/article/details/134909112