软件开发的基本策略

发表于:2008-01-30来源:作者:点击数: 标签:开发
人们都有自己的世界观和方法论,能自然而然地运用于生活和工作中。同样, 程序员 脑子里的 软件工程 观念会无形地支配其怎么去做事情。软件工程三十年的发展,已经积累了相当多的方法,但这些方法不是严密的理论。实践人员不应该教条地套用方法, 更重要的是
人们都有自己的世界观和方法论,能自然而然地运用于生活和工作中。同样,程序员脑子里的软件工程观念会无形地支配其怎么去做事情。软件工程三十年的发展,已经积累了相当多的方法,但这些方法不是严密的理论。实践人员不应该教条地套用方法, 更重要的是学会“选择合适的方法”和“产生新方法”。有谋略才会有好的战术。几千年前,我们的祖先就在打闹之际写下了很多心得体会,被现代人很好地运用于工业和商业。 本节讲述软件开发中的三种基本策略:“复用”、“分而治之”、“优化——折衷”。

    复用就是指“利用现成的东西”,文人称之为“拿来主义”。被复用的对象可以是有形的物体,也可以是无形的成果。复用不是人类懒惰的表现而是智慧的表现。因为人类 总是在继承了前人的成果,不断加以利用、改进或创新后才会进步。所以当我们欢度国 庆时,要搞清楚祖国远不止 50 岁,我们今天享用到的财富还有上下五千年人民的贡献。 进步只是应该的,不进步则就可耻了。

    复用的内涵包括了提高质量与生产率两者。由经验可知,在一个新系统中,大部分 的内容是成熟的,只有小部分内容是创新的。一般地可以相信成熟的东西总是比较可靠 的(即具有高质量),而大量成熟的工作可以通过复用来快速实现(即具有高生产率)。 勤劳并且聪明的人们应该把大部分的时间用在小比例的创新工作上,而把小部分的时间 用在大比例的成熟工作中,这样才能把工作做得又快又好。

    把复用的思想用于软件开发,称为软件复用。据统计,世上已有 1000 亿多行程序,无数功能被重写了成千上万次,真是浪费哪。面向对象(Object Oriented)学者的口头禅就是“请不要再发明相同的车轮子了”  。

    将具有一定 集成度并可以重复使用的软件组成单元称为软构件 (Software Component)。软件复用可以表述为:构造新的软件系统可以不必每次从零做起,直接使 用已有的软构件,即可组装(或加以合理修改)成新的系统。复用方法合理化并简化了软件开发过程,减少了总的开发工作量与维护代价,既降低了软件的成本又提高了生产 率。另一方面,由于软构件是经过反复使用验证的,自身具有较高的质量。因此由软构件组成的新系统也具有较高的质量。利用软构件生产应用软件的过程如图 1.5 所示。

    软件复用不仅要使自己拿来方便,还要让别人拿去方便,是“拿来拿去主义”。面向 对象方法,Microsoft 公司的 COM 规范  [Rogerson 1999],都能很好地用于实现大规模的软 件复用。


图 1.5    利用软构件生产应用软件的过程


    分而治之是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。这种朴素的思想来源于人们生活与工作的经验,完全适合于技术领域。软件人员在执行分而治 之的时候,应该着重考虑:复杂问题分解后,每个问题能否用程序实现?所有程序最终 能否集成为一个软件系统并有效解决原始的复杂问题?

图 1.6  软件领域的分而治之策略

 

原文转自:http://www.ltesting.net