复用就是指“利用现成的东西”,文人称之为“拿来主义”。被复用的对象可以是有形的物体,也可以是无形的成果。复用不是人类懒惰的表现而是智慧的表现。因为人类 总是在继承了前人的成果,不断加以利用、改进或创新后才会进步。所以当我们欢度国 庆时,要搞清楚祖国远不止 50 岁,我们今天享用到的财富还有上下五千年人民的贡献。 进步只是应该的,不进步则就可耻了。
复用的内涵包括了提高质量与生产率两者。由经验可知,在一个新系统中,大部分 的内容是成熟的,只有小部分内容是创新的。一般地可以相信成熟的东西总是比较可靠 的(即具有高质量),而大量成熟的工作可以通过复用来快速实现(即具有高生产率)。 勤劳并且聪明的人们应该把大部分的时间用在小比例的创新工作上,而把小部分的时间 用在大比例的成熟工作中,这样才能把工作做得又快又好。
把复用的思想用于软件开发,称为软件复用。据统计,世上已有 1000 亿多行程序,无数功能被重写了成千上万次,真是浪费哪。面向对象(Object Oriented)学者的口头禅就是“请不要再发明相同的车轮子了” 。
将具有一定 集成度并可以重复使用的软件组成单元称为软构件 (Software Component)。软件复用可以表述为:构造新的软件系统可以不必每次从零做起,直接使 用已有的软构件,即可组装(或加以合理修改)成新的系统。复用方法合理化并简化了软件开发过程,减少了总的开发工作量与维护代价,既降低了软件的成本又提高了生产 率。另一方面,由于软构件是经过反复使用验证的,自身具有较高的质量。因此由软构件组成的新系统也具有较高的质量。利用软构件生产应用软件的过程如图 1.5 所示。
软件复用不仅要使自己拿来方便,还要让别人拿去方便,是“拿来拿去主义”。面向 对象方法,Microsoft 公司的 COM 规范 [Rogerson 1999],都能很好地用于实现大规模的软 件复用。
图 1.5 利用软构件生产应用软件的过程
分而治之是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。这种朴素的思想来源于人们生活与工作的经验,完全适合于技术领域。软件人员在执行分而治 之的时候,应该着重考虑:复杂问题分解后,每个问题能否用程序实现?所有程序最终 能否集成为一个软件系统并有效解决原始的复杂问题?
图 1.6 软件领域的分而治之策略
文章来源于领测软件测试网 https://www.ltesting.net/