项目管理资源网

您的位置:项目管理资源网 >> 研发制造项目管理

快速适应项目中的需求变化与软件复用

2008/9/22 8:41:26 |  3748次阅读 |  来源:网友转载   【已有0条评论】发表评论

ponents)是软件提供业务或技术功能的基本单元或元素,这些单元可以独立地被部署、他们可以自我管理并且被虚拟部署到网络的任何地方,业务组件((Business components)执行业务逻辑、遵循一定的业务规则并且管理相应的数据(数据库操作称为manage corporate data);而技术组件(Technical components)则提供相应的平台以便业务组件可以依赖其上运行,例如权限、组件管理等。
  JdonFramework/Spring都属于一种技术组件框架,而我们具体项目的业务层代码如果能够提炼可以复用,则是业务组件;JdonFramework/Spring则都提供了业务组件赖于运行的一些核心底层机制,特别是组件的管理,如组件的创建、组件的获得、组件的资源管理、组件的消亡等生命周期支持,所以,我们可以在JdonFramework/Spring中加入自己的业务组件,当然,JdonFramework还提供了Session等状态管理的支持功能,为业务组件提供了更广阔的生命周期支持。
  组件复用技术以前是停留在编译前期,也就是说:我们在编程时,导入所需要的其他组件Jar包,然后混同我们的项目编译部署,但是这需要通过专业技术人员实现,很显然是不能适应原则中第一句:给予人们可以裁剪他们系统的能力应适应需求变化,这里的“人们”应该是指软件最终用户,应该给予用户自己改变系统的能力,也就是说:需要提供软件系统运行时能够动态改变自身的能力。
  组件复用技术以前停留在软件编译阶段,现在则更靠前,必须在软件运行阶段,当然对技术要求相当高,需要语言支持RTTI(简单又神秘的Class.forName发挥作用了),这在"Evolution, Architecture, and Metamorphosis"一文中被认为是Metamorphosis,现在由于AOP技术出现,AOP有一种动态Weaving技术,实际就是在软件运行时实现动态拦截,这样给予终端用户更大的改变系统能力,他们基本可以以动态插拔的概念实现多个组件的组合运行。在"AOP vs Decorator"一文中,我把编译阶段的组件组合方式(我更愿意称为静态组合)和运行时组合等两种处理方式,合并称为过滤器模式,如果你希望采取组件可插拔式的复用,就可以使用过滤器模式。
  组件可插拔更换
  为什么说组件的可插拔非常重要?
  组件重用目的是为了更好地适应需求变化,但是有了组件重用不代表就快速适应需求变化,因为组件本身也会产生设计错误(提炼得不够抽象或者组件很难以替代),这就必然导致软件系统得维护成本提高,那么快速适应需求变化的目标也就成为一纸空文。实践证明:组件设计问题已经成为导致软件开发失败的一个主要因素。
  组件设计有两个主要风险:组件提纯的纯度和组件的替代方式。提炼的纯度也就是抽象的高度,组件的抽象程度越高,当然可重用范围越广,但是往往我们只有经历多个项目后,才发现自己的组件提炼还欠火候,这实际是组件的提炼过程成本。
  组件提练虽然取决于人为设计因素,但是在实现手段上也依赖于组件的替换方式,通过经常反复频繁的微调和更换,才能将组件不断提炼向理想状态靠拢,所以,必须有一种方便的组件替换方式提供频繁更换支持,我们总不希望更换组件象以前更换汽车发动机火花塞一样,需要拆开汽车,打开发动机那样麻烦吧?
  参考PC电脑硬件设计:更新CPU或内存条,只要直接插拔就可以,这些部件和母版都是一种松散的、可插拔的关系,如果软件组件替换是动态的可插拔更加方便终端用户在软件系统交付后,根据需求改变他们的系统。组件可插拔

    项目经理胜任力免费测评PMQ上线啦!快来测测你排多少名吧~

    http://www.leadge.com/pmqhd/index.html

“项目管理生根计划”
企业项目经理能力培养和落地发展方案下载>>

分享道


网站文章版权归原作者所有,如有认为侵权请联系我们,将于1个工作日内作出处理!
网友评论【 发表评论 0条 】
网友评论(共0 条评论)..
验证码: 点击刷新

请您注意护互联网安全的决定》及中华人民共和国其他各项有关法律法规或间接导致的民事或刑事法律责任
·您在项目管理资源网新闻评论发表的作品,项目管理资源网有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款