软件复用(Software Reuse)是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程,[4]它是提高软件生产力和质量的一项重要技术。[5]软件复用技术可以在应用系统开发中充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动。[3] 软件复用由D·麦克罗伊(D·Mcllroy)在1968年国际首次讨论软件工程的会议上正式提出,作为解决“软件危机”的一种可能方法。[6]早期的软件复用主要是代码级复用,后来逐步扩大到需求、设计代码、文档、领域知识、体系结构等与软件产品相关的各方面。[5]软件构件技术、软件体系结构技术、领域工程技术等是常见的软件复用技术,[3]软件复用可以依据复用对象、可复用信息、复用方法等多个角度来进行分类,常见的分类有产品复用、过程复用、黑盒复用、白盒复用等。 [3] 软件复用技术在雷达数据处理、[7]嵌入式开发等领域应用广泛。[8]软件复用的应用不仅是一种技术革命,更是一种社会化的行为,是一种大众化的软件开发方法。它使得更多人能够参与到软件开发的行列中来,共同推动软件产业的发展。[9]要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径。[4] 发展沿革
背景