最近在看一些关于基于组件的软件开发的资料,有一些收获和看法。
组件并不是指VCL类库形式的东西,组件应该是后期绑定的二进制程序。
组件是封装成独立的二进制单元并且可复用的自描述程序。可以通过面向对象的方式进行访问,组件是语言无关的,组件是后期绑定的(相对于编译时链接),在最终产品环境中,组件是可以通过不同部署策略而实现部分替换的。
实行基于组件的软件开发模式(CBD)能带来以下优点:
1、提高产品资源的可复用性。
CBD最大程度的适应软件开发平台的迁移以及软件体系架构的变化,使已有的产品资源得到充分的利用。
2、版本控制更为简单
基于组件的软件开发,使我们只需要维护核心组件代码的版本更迭,而这一部分的版本管理相对比较简单,它可以避免出现很多的版本分支或者其他复杂情况。
而将组件连接在一起的项目代码,仅仅是可以工作就可以了,没有很高的重用价值,也没有太多精心维护的必要。很多的版本分支甚至不需要考虑合并。
3、有效利用人力资源
开发人员的实际水平良莠不齐,CBD使人力资源分配更加合理。只需要少数人员来进行核心组件的开发和维护,降低多数项目实施人员的人力资源成本,使人力资源得到合理利用。
此外,由于只有少数人员参与,CBD还可以有效的保证核心代码的质量。
4、从销售软件到销售软件实施,从做项目和做产品之间找到平衡点
实际项目的功能将仅仅是已有组件产品的一个功能子集,项目的实施实际上只需要根据客户的要求进行二次开发。而在不断维护中的组件产品资源使项目的实施越来越方便。
5、开发效率提高,编译调试更加方便
组件的使用,使软件开发过程中的编译链接过程更加快速。
实行基于组件的软件开发模式的缺点:
没想出来。现有可见的问题都不是致命的,都可以通过一定手段避免,可参照后面的“要求”部分。
实行基于组件的软件开发模式的前提:
在一定时期内,企业有数个相同业务领域的项目需要实施,并且有计划在这个领域内发展,就可以在这个领域内实施一定程度的CBD。
实行基于组件的软件开发模式的要求:
1、拥有一个具有较强设计实现能力的核心团队,设计良好的软件接口,保证组件的高可用性和版本兼容性。并可以对项目实施团队进行一些关键性的培训。
2、有较多数量进行项目实施的初级软件开发人员。
3、要发挥CBD的优势,积累很重要,需要一个过程。