文档介绍:第十七章软件复用
第一节软件复用概述
第二节软件复用相关案例分析
第三节生产者的软件复用技术
第四节复用管理技术
1
第一节软件复用概述
概念
软件复用(software reuse)是一种由预先构造好的、为复用目的而设计的软件构件来建立或者组装软件系统的过程。
其本思想
放弃那种原始的、一切从头开始的软件开发方式,而利用复用,由公共的可复用构件来组装新的系统。
一个可复用的组件不一定是一个模块或代码段,它可以是一个设计、一个用户手册的一部分、一组测试数据或一个周期和成本估算。
2
第一节软件复用概述
复用效益
抓住复用机会能使软件生产率、质量和成本得到巨大的改善。运用复用能得到的主要效益是:
提高软件生产率
缩短软件开发时间
以便更少的人员去开发软件
人员、工具和方法更易于从一个项目转移到另一个项目
3
第一节软件复用概述
降低软件成本
生产更高质量的软件
改善软件系统的交互性
提供竞争优势
复用的障碍
平均来说,软件产品只有大约平均15%真正符合最初的意图,而另外85%的产品理论上是可以标准化的,并可在未来的产品中复用。85%的数字是理论上的复用上限,而实际中一般能实现40%的复用率。
4
第一节软件复用概述
问题:如果实际中可以实现这样的复用率,而复用又不是什么新的思想,为什么很少有组织使用复用来缩短开发过程?
答案:复用有以下一些障碍:
大多数的软件专业人员宁愿从头编写例程也不愿意复用别人编写的例程;
许多开发者担心复用的例程存在错误;
一个大型的组织可能有几十万个潜在有用的组件,如何存储这些组件以备日后有效地检索也是一个存在的问题;
5
第一节软件复用概述
复用的代价问题
建造可复用组件的成本
复用它的成本
实现一个复用过程的成本
复用的合法性问题
6
第二节软件复用相关案例分析
案例一: Toshiba Fuchu Works, Tokyo
(东芝软件工厂)
案例二: NASA Software (NASA 软件)
案例三: GTE Data Services
(GTE 数据服务)
案例四: Hewlett-Packard
(惠普公司)
7
Toshiba Fuchu Works, Tokyo
Industrial process control systems
Accidental reuse of
Specifications
Designs
Modules
Contracts
Manuals
Standards
Reuse rate (1985)
33% design
48% code
8
NASA Software
Ground support system for unmanned spacecraft control
Management permitted (but did not encourage) accidental reuse
Accidental reuse of
Modules
Reuse rate (1982)
28% reused unchanged
10% reused with minor changes
9
GTE Data Services
Data-processing software
Strongly encouraged by management
Cash incentives when module was accepted for reuse
Cash incentive when module was reused
Accidental reuse of
Modules
Reuse rate
(1988) 15% reused code, $ million saved
(est. 1989) 20% reused code
(est. 1993) 50% reused code
10