新闻详情

NEWS DETAILS

软件企业成果标准化与复用

2020/12/30 11:24:57

  经过消费者验证的工作成果是企业宝贵的知识财富,要把它标准化(成为标准件),开发方通过“复用标准件”可以大大提升开发效率和质量。

  复用是指“利用现成的东西”,即“拿来主义”。被复用的对象可以是有形的物体,也可以是无形的成果。复用不是人类懒惰的表现而是智慧的表现,因为人类的进步是将前人的成果不断加以利用、改进或创新后的结果。所以当我们欢度国庆时,要明白祖国远不止几十岁,我们今天享用到的还有中国五千年的历史财富。进步是人类发展的必然。

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

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

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

  软件复用的好处是显而易见的,但是国内大部分企业在软件复用方面做得非常差。

  例如,手机领域的“标准化和复用”出现了两种极端现象。一方面,由于手机芯片和底层通信软件是标准化的,导致手机开发的门槛非常低。中国手机开发公司如雨后春笋般地诞生,创造了“山寨文化”,这是标准化带来的繁荣。另一方面,手机公司内部的应用软件开发却没有标准化,导致开发新款手机的效率和质量低下。

  有个手机开发商每年推出十余款手机。每款手机之间的相似度其实很高,可是平均每款手机项目的缺陷数量竟然达到3000-5000个,比我公司5年间软件产品的缺陷累计还要多!该公司花费了极高的测试代价和糾错代价,并年复一年地进行着。

  通过分析发现,每个项目的缺陷相似度也是很高的。为什么会产生如此多相似的缺陷呢?主要原因是:

  (1)过去没有进行缺陷分析总结,相同的错误重复发生。

  (2)很多成熟的软件功能没有标准化,每个程序员都搞点新花样,操作界面各式各样,甚至两款手机相同的功能竟然互不兼容,导致太多的缺陷。

  (3)每个项目开发都是匆匆忙忙的,在设计和实现过程中很少思考怎样使将来的开发工作做得更好更快,几乎不给将来留下可以复用的东西。

  解决上述问题的基本手段是:

  (1)要开展“缺陷分析总结”活动,反省过错不二过,消除重复的错误。

  (2)凡是消费者验证过的成熟功能,要提炼成为标准件,要有专人维护,不能随意篡改,新项目尽可能使用公司积累的标准件。

  (3)在每个新项目的开发过程中,既要考虑现在又要顾及将来,要设计出可以在将来复用的东西。

  企业要提倡复用知识财富,要有相应的激励措施,让人人养成复用习惯:每个人在干活的时候,先想想是否有可以复用的成果,如果有,自己就不要从零做起。同时尽可能使自己的成果具有复用性,将来可以让别人复用自己的成果。

  函数级别的复用,对程序员而言很有意义,对软件企业而言还不够,企业还需要“业务级别的标准件”,称之为“公共技术平台”。企业要舍得花精力不断建设、完善“公共技术平台”,这是大规模复用的根基。措施如下:

  (1)公司应当成立“公共技术平台”项目,把“公共技术平台”当做公司长期的产品来开发。该项目人员要少而精,并且要保持稳定。

  (2)公共技术平台的第一个实用版本极为重要,要让相关人员感受到复用的好处,才有信心。通常第一个版本要具备公共的技术架构,公共的“用户管理和权限管理”模块,公共的UI控件。做到这一步,至少可以减少30%的编程工作量。之后再逐步开发公共的应用模块。

  (3)公共技术平台和应用项目之间的关系如图4-3所示。应用项目应当在公共技术平台上面开发,应用项目只能调用平台功能,而不可修改平台的代码,确保平台升级后,所有应用项目都能无缝升级。应用项目完成之后,要提炼出“公共模块”纳入到公共技术平台,使平台越来越“强壮”,同时应用项目不断“瘦身”。

公司地址:天津市滨海新区豪威大厦B座

津ICP备2022007965号-2  版权所有,违者必究

小程序

微信