对项目软件产品化的思考

来源:互联网 发布:可视化软件 编辑:程序博客网 时间:2024/05/21 17:24

1      背景

什么是软件产品化,引用网上较好的定义:“软件产品化,即客户无需为软件添加或调整代码和语句即能完成软件的安装配置、应用初始化、系统管理、用户使用的全过程,并且软件至少能满足80%以上的用户某一组应用需求。”

根据软件是否定制,可将软件分为产品软件和项目软件。如国外的MircosoftOracle等他们的产品如windowsofficeoracle数据库等都是优秀产品软件的代表,国内的如用友、金蝶等公司的财务软件在国内也是做的比较好的产品软件。产品软件在市场营销、销售、维护等配套服务体系建立后,便可一次投入,无须变动,长期受益,此后利益的获取不再需要投入巨大的成本。项目软件的公司的产品是一般需要满足客户的个性化需求,产品不能复用,造成项目的重复开发,产品质量不稳定,人力和时间巨大的浪费,维护费用和维护成本很高,如我司就是典型的项目软件的公司。显而易见产品软件能充分利用软件重用的天然优势,大幅度降低企业成本,在综合的资源投入和利益回报上有巨大的优势。

项目软件产品化,可以像产品化软件运作一样的低成本复制,同时像项目软件一样满足不同用户的个性化要求。项目软件产品化是对项目软件的通用功能按照产品软件的方式一次开发,产品组装、交付,快速实现个性需求,满足行业用户要求,这对于公司节省资源投入,提高产品质量,缩短产品交付时间,提高市场认知度有重大意义。

2      项目软件产品化的实施

1)        建立产品化的思想

软件产品化的核心思想是复用。对于项目软件而言,由于常常面对客户的特性需求,开发人员接到任务首先想到不是复用(而是重新从头设计开发)或者低层次的简单复用(简单的copy源代码,然后在其基础上加以重构),这样就导致了公司资源重复投入,产品的稳定性未能延续,增加了项目的成本、周期和风险。建立产品化的思想之后,开发和设计人员应该首先想到的是,基于需求分析提炼和规划产品模型,注重和公司项目间的差异化和通用性,在本次项目开发中是否可以复用公司已有的产品构件,或者本次开发可以向公司提供几个优质的产品构件。

2)        建立领域模型

复用的前提是抽象。在某个具体行业中项目软件发展一定程度后,必定会有大量相似的需求,所以首先应分析项目领域特点,提炼项目间的共性,抽象出领域模型。从领域模型涵盖的范围来看有两种:垂直型和水平型。

垂直型:定义一个通用模型,该模型可满足多个项目的可行的解决方案,也可称并集模型。

水平型:满足多个项目间共有部分的在功能,是每个项目的一个子集,也可称交集模型。

垂直型的领域模型常用于“前瞻性”的产品开发,它是利用应用领域的经验,对市场和技术的发展趋势的了解以及商业判断力等进行设计,通常是自上而下的进行。水平型的领域模型常用于“反应性”的产品开发,它是根据企业已有的产品家族,并随着新项目的建立,扩展架构和设计,它的核心资产库是根据“已经证明”为共有,而非“预先计划”为共有的元素构建,通常是自下而上的进行。结合我司的业务特点,建立水平模型是比较常见而且是易于实施的一种方案。例如计费系统、清帐单中心的网络模块、分布式数据库等等它们都是很多项目中通用的子系统。

3)        建立产品构件库

项目软件产品化的基础是构件。抽象出领域模型后,便是建立产品构件库,形成公司的软资产,产品构件形式上可以是可执行文件、中间件、库文件、类、头文件等多种方式,进入产品构件库的元素应进行全面细致的单元测试和文档化工作。

已上线的、稳定运行的项目软件,应根据领域模型,提炼出通用产品构件。即将开展的项目软件,应根据领域模型做好业务模块与构件模块的解耦,定义好业务模块与产品构件模块的接口,若产品构件库中不存在相应的元素,需要在此项目着手开发,若已存在相应元素,项目软件在设计和开发商则可以完全复用。

4)        产品组装与测试

产品构件库的元素一旦丰富,项目产品在通用功能上,则可像堆积木式的方式进行搭建、组成然后进行集成测试,对于特性化的需求根据项目的特点单独开发。这样的项目软件同时具备的产品软件一次开发多次复用的特性,又具备满足客户特性化需求的优势。

3      结束语

项目软件产品化是IT行业的发展趋势,产品化当然不是上述几段文字能描述清楚,本文只是抛砖引玉,期望能引起同行对今后开发工作方式的思考。产品化不仅仅是技术方面的革新,更是思想方面的变革,在实施项目软件产品化的过程中应避免就事论事,编程是王道的程序员式的思想,应加强抽象设计方面的指引,同时产品化的程度还与市场发展状况、企业产品形态的成熟度以及人员职业化程度等因素有关。项目软件产品化,我们任重道远。

4      参考文献

[1] http://blog.csdn.net/harrymeng/article/details/5254415:《软件产品化,国内IT人之痛

[2] 温昱.软件架构设计.电子工业出版社,2007.12

[3] http://wenku.baidu.com/view/ec34c9f4ba0d4a7302763adb.html:《软件项目产品化之路》

 

原创粉丝点击