软件适航加油站

 找回密码
 成为会员
搜索
查看: 10272|回复: 0

下一代软件开发模式――系统可视化配置生成

[复制链接]
smuyuyu 发表于 2009-7-2 10:54:24 | 显示全部楼层 |阅读模式
随着技术的进步与社会的发展,应用系统也日益复杂化,系统升级也成家常便饭。
  由于开发系统使用技术过于旧,与现在的技术兼容性不好,如果升级可能要重新来过,以前的工作就这样白费了。
  由于开发系统时过于急,没来得及考虑使用什么技术就动工,已经开发了相当一部分之后突然发现其实用另一种技术更适合开发本系统,你会是怎么样作呢?

  由于系统生命周期过长,文档也对不上,如果有一天要修改某些地方,这时要修改的某数据是什么来,经过什么处理,也许要摸索得很久都无法完全了解,如果修改了这个地方会 不会影到系统的其它地方的使用,这无形中给我们带来了巨大的工作量。
  由于客户的需求不断地更改,往往修改一个小小需求,开发人员可能要修改好几个地方,并且还要对修改一次又一次的测试,无形增加了开发成本。
  由于系统开发都时限,面对着巨大的任务,我们又是如何解决呢?选择增加人员?选择要求员工加班?
… …
  目前软件开发模式的问题不断的出现,促使新的开发模式的出现――系统可视化配置生成。乍看,很多人觉得不是一个新鲜的事情,并觉得这种开发模式不大现实。这也是不可否认的事情,因为这种开发模式需要一个比较强大的工具――配置引擎作支撑,而目前尚未或极少这类型的产品。配置引擎的作用是用于可视化形式配置,描述出整个系统。另外还需要一个代码生成引擎,将根据配置引擎配置生成XML和选择使用的技术(如使用JAVA 的SSH2 ――Struts2+Spring+hibernate),便可生成对应的系统.也许很多人觉得不大现实,如果这么神奇,我们还要开发人员吗?其实目前阶段由于这方面的技术尚未成熟和极少人去研究,所以复杂性一般的系统生成代码大概也只是70%(目前),接下来需要开发人员完善。

现在讨论一下系统可视化配置生成优缺点.
  系统可视化配置生成有如下的优点:
  (1)可以粗略配置,可生成Demo,如果初步了解了客户的需求之后,我们可以用生成 的Demo与客户进一步沟通,确认,由于可模仿真实系统效果,这样客户会更明确自己要求的系统是什么样子,系统能作什么的事。只有这样,需要分析更加深入,返工的机会便少了。
  (2)由于配置完成之后,可以生成相应的文档,给与客户沟通或者对生成代码修改带来极大的方便。
  (3)开发周期缩短,因为从需求阶段到开发阶段都很大程度上方便我们工作,开发周期缩短是不用说的了。
  (4)配置时可以不考虑采用什么技术实现,等专心配置好之后,我们可以选择任何一种或者多种技术的系统,接着我们还可以对不同技术生成的相同系统进行对比,再最终确定系统实现是采用什么技术。
  (5)如果系统升级,我们可以在之前配置(配置结果是通过XML保存下来)的基础上配置,同时我们可以选择用新技术,生成整套系统。
  (6)代码规范性好,容易维护。
  (7)系统健壮性好。生成系统存在的BUG相对更少,因为代码生成引擎生成的代码可以说是通过测试了。生成代码同时还会生成测试用例和测试数据。这样我们只要验证一下报告结果,针对存在问题,再修改配置。

   系统可视化配置生成有如下的缺点:
  (1)系统使用技术相对限制,因为代码生成引擎不可能有任何种技术组合,如果一个生成代码引擎,有JSP+BEAN、 Struts2+Spring+Hibernate这二种组合代码引擎。就不可以选择用Struts+Spring+Ibatis这种技术组合,但你可以自己开发相应的生成引擎或者在网上找对应的技术组合下载回来,然后集成到代码引擎,供以后使用。
  (2)系统的框架也会限制,由于不同的公司,就算是用相同结合技术,但系统的框架风格也是不一样的。但如对现有的框架风格不满意,可以自行开发自己风格的生成引擎 ,就可以避免了这种问题。
  (3)生成系统局部性能不佳,由于生成代码考虑是比较大众的方式,而某一些细节可能采用另一种方式实现,性能更佳,这时需要开发人员自行修改。
  (4)再次生成时,对先前开发人员修改后的代码,可能覆盖了。这个问题是最大的问题、也是目前还要探讨一方面。因为如果配置文件修改了而开发人员在之前配置的基础上生成代码进行的修改,涉及到的问题是比较复杂,所以有待探讨,完善这一缺点。

  大概地讲一下生成引擎的优缺点,接下来,讨论一下本人开发的配置生成引擎(SSX Config)是基本部分组成:
  (1)数据库配置。
  (2)数据库中表结构读取,对比和刷新功能。因为是基于表进行配置,表结构读取功能是必要;刷新和对比功能并行使用的,用于对现在数据库的变更的检测,对变更的,可以可视调整。如我们之前编号是用ID,现在要修改成EID,刷新与对比之后,就配置引擎显示让ID已经删除,新增了EID,我们可以对ID的配置,替换成EID,替换之后,不用再对EID与ID 相同其它配置,EID将持有ID所有配置。
  (3)数据库中的表查看,表名,表字段等显示名配置,在页面上我们一般有数据有说明,如一个接收姓名的输入框,我们会它的前面加显示名――“姓名”,有这个显示名,配置时也比较容易清楚某个表或者某一个字段是什么意思。
  (4)表关系的配置,这个功能是针对用持久层框架设计的,如用Hibernate,Xml配置文件中有表之间的关系,这样如果设计表时没有表关系也无所谓,可以通过这种方式配置,效果也差不多。
  (5)表的表单全局配置,本功能针对页面层对应某字段显示的形式(如是输入框,还是下拉框等),验证(如:长度,EMAIL等),配置新增、编辑时,读取这里的信息作为默认信息。
  (6)添、编、删、看的配置,支持多表复杂的添加、编辑、查看。
  (7)查询列表配置,支持多表复杂的查询,查询页面条件配置等。
  (8)下拉框,多选框等数据配置

  对(6)(7)(8)在本文不详细讨论,因为比较难用二三句话说得清楚,搞不好,反而让人一头雾水。本人日后将会有会针对性详细讨论的文章。

  代码生成引擎部分,本人针对SSH2(J2EE)组合技术正在开发引擎,也即将开发完成。有时间,再详细与大家探讨一下这方面的技术。因为这种技术将会在很多软件公司使用,并且有针对性的开发出自己风格和需求的代码生成引擎,方便新系统的开发。

   谢谢大家的关注,系统可视化配置生成技术。由于本人水平有限,难免一些遗漏、不足地方,希望大家指出,如有对这方面感兴趣,可以与我继续讨论,联系方式:按规定删除
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|Archiver|手机版|软件适航加油站 ( 沪ICP备13019901号-3 )

GMT+8, 2018-1-23 14:04 , Processed in 0.124800 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表