是这样,本人目前正在做一个企业系统管理的软件,老板要求以后的在软件发布的时候可以按横块发布。比如。整个系统分进销存模块、人事管理模块、财务管理模块、维修管理模块等等模块。如果用户想购买全部模块那就就把所有横块以一个应用程序的方式出售。如果用户只购买其中一个横块如进销存模块。那么只把进销存模块以一个应用程序的方式出售给他!也就是即可分模块出售也可整个系统出售,而且对于某一横块无论是单独出售还是以整个系统方式出售,在功能上没有任何差别。
    还有如果有人用二个模块,对一些基本资料(在数据库的部分)是不是也要发布两次。还是一次把所有的表呀,存储过程呀这些东西全都给用户。因为某一个模块所用的表也可能是另一个模块也需要的!
    我在各个论坛上找过类似的问题,好象没有一个太好解决办法(也许是我查询的关键词不对)希望各路高手可以解答一二,先谢过了!!

解决方案 »

  1.   

    你的这个问题在于各个模块之间的耦合性太强,要独立当然很困难。一个办法是搞一些中间数据,比如修理完了之后要收费,那么如果客户要财务部分,那就在财务给他比较强的收费处理模块,如果客户不要财务部分,你就在修理模块中简单给个修理项目清单,让用户打印,该怎么收费就归他们自己处理了。这里就多出了一个修理模块中的修理项目清单,这个单可作为修理模块的输出,同时也是财务模块的输入,这样不就解决了吗。
    当然要做通用系统,肯定要多花工夫:设计、编码都增加许多工作量。
    按 humer的方法当然也可以,你的系统如果很大,这样做就不行了。
      

  2.   

    谢谢各位热心的回答,
    我基本上会采用ppilu的方法,实际上这两天我也一直和我的老板分析这个问题。(我老板是八十年代未九十年代初的程序员,C玩的十分好,呵呵)最后我们也决定将各个模块独立化,实际上对于整个系统可能只有财务部分是公共的。其它都可以狮立出来。而我说的财务部分也是统计之类的东西。如果用户没有财务部分。那独立的模块可以这际自身的简单统计。有财务部分了。就把各个子系统中有关财务的部分汇总到一起。呵呵。所以和ppilu的想法应该是一样的。
    对于humer的方法是我最开始考虑的。不过这样总是感觉不太好,客户端部分还好说,而后面的数据库部分就不好办了,如果用humer的方法好象用户如果只用一套模块就要把所有数据库部分的东西都给用户!另外对于用户新增模块的处理也不好办。
    ok!应该给分了,不过我还想听听其他朋友的意见!三天后结束之贴!!:)