构件组装-支持构件组装的开发环境

第五章支持构件组装的开发环境

本章以上述相关理论与技术研究为基础,实现了一个支持构件组装的开发环境,MyWebFw,并详细说明了MyWebFw实现的指导思想、环境构成、关键技术以及开发流程等内容。MyWebFw是基于DSM的支持构件组装的开发环境,在实际应用中,可明显的提高软件开发效率与产品质量。

5.1MyWebFw指导思想

图5-1 MyWebFw概念层次

MyWebFw是一个支持构件组装的开发环境,以DSM作为开发环境技术实现的指导,以构件组装作为开发环境开发方法的指导,借助XML模式描述特定领域元模型,作为GMF输入并快速生成特定领域建模工具,包括数据建模、构件组装建模、UI建模、流程建模、对象建模以及代码生成等工具,通过SWT/JFace实现其他图形化开发工具。借助特定领域模型与建模工具生成的快速性,可以快速且灵活的对其进行调整以适应特定领域。同时,MyWebFw面向应用开发,以构件组装作为应用系统分析、设计以及实现的指导,指导系统架构与框架的搭建,以构件组装作为特定领域建模工具内容搭建的指导,指导建立相应的面向应用的特定领域建模工具,以辅助系统分析、设计以及实现。最后,通过通用代码生成引擎,结合特定领域模型与样例代码整体模板化后的代码模板,生成100%的程序代码,从而实现了从高层构件组装模型产生完整的程序代码的目标。

MyWebFw首先是一个开发环境,以Eclipse作为基础开发环境,借助Eclipse Plug-in架构,以GMF(GEF/EMF)、MDT/OCL、SWT/JFace等Plug-in支撑技术构建Eclipse之上的图形化辅助开发工具,而以构件组装作为辅助开发工具开发方法的指导。同时,MyWebFw面向应用开发,提供应用开发的基础,SA与SF,并提供将以SF为基础构建的覆盖不同业务类型的样例代码整体模板化后的代码模板。最后,MyWebFw通过辅助开发工具调用通用代码生成引擎,结合特定领域模型与代码模板,生成100%的程序代码。

因为代码级构件无法直接在接口处显式定义组装,所以构件组装主要体现在MyWebFw的辅助开发工具以及SA上,而SF则以面向对象技术作为其实现的支撑技术。但,构件模型与代码级一一对应,并且存在如下2种应用场景:

(1)已存在代码级构件,建立该代码级构件的构件模型;

(2)不存在代码级构件,建立构件模型,通过代码模板生成代码级构件。

同时,组装模型不与代码存在关联,存在如下3种原因:

(1)构件组装的本质是通过接口或连接件建立关联并协调行为;

(2)连接件是构件组装的具体表现,粘接代码是连接件的最终实现。构件组装产生新构件后,连接件生命周期即告结束。连接件只存在于构件组装的短暂过程中。MyWebFw中,连接件与粘接代码的代码模板一一对应;

(3)组装过程,即通过连接件连接不同构件提供服务的接口,并重新封装为新构件提供服务的接口。同时,声明被连接构件提供服务的接口为新构件引用服务的接口,暴露被连接构件某些属性为新构件属性,最终形成新构件模型以及通过粘接代码模板与构件模板生成新代码级构件的过程。

MyWebFw不再重点刻画描述SA的抽象ADL,因为从程序语言发展的角度,ADL作为更高级的程序语言应兼容低级语言,即构件组装通过构件组装模型显式定义后,可具体映射到任何低级程序语言上,即以构件组装模型为基础,任何低级程序语言均可进行构件组装,只存在与模型语言语义断层的距离而已,所以,本文认为SA仅指导SF的搭建,SA最终具体体现在SF上。以SF为基础,建立起样例代码,并以构件组装为指导通过整体模板化制作为代码模板,其中包括构件模板与连接件的粘接代码模板,以及其他各类模板,如界面模板、Sql模板、各种属性及配置文件模板等。

与SF、代码模板相对应,MyWebFw建立起各种高层的抽象模型,以构件组装模型为核心,其他各类模型辅助,形成各种辅助开发工具,覆盖了软件过程中的设计与实现,设计即为各种建模过程,实现即为代码生成,而体现分析阶段工作的ADL则不具体刻画。MyWebFw的重点在于生成100%的程序代码,而ADL仅是SF搭建的指导,代码中无法具体体现,所以本文不进行刻画。

图5-2 MyWebFw概念层次

由于以构件组装模型与代码生成为基础,任何低级程序语言均可进行构件组装,MyWebFw可适应多种系统框架,默认提供目前较为流行的SSH(Struts,Spring,Hibernate)框架、样例代码以及代码模板,并可更换为其他系统框架,如WSB(WebWork,NanoContainer,iBatis)、JSB(JSF,PicoContainer,iBatis)等,只需相应的更换样例代码以及代码模板即可,从而借助通用代码生成引擎与代码模板实现无需变动辅助开发工具,即可完成对各种系统框架的灵活应对。

MyWebFw实现了从高层构件组装模型产生完整的程序代码的目标,使得开发人员可更多的面向业务分析与设计,可尽可能多的与用户讨论、界定以至最后准确掌握需求,而面向模型开发更使得软件开发接近于开发人员的思考与使用习惯,消除了面向代码开发的学习曲线与技术障碍,并使得在传统软件开发中由于分析、设计、实现之间的语义断层,造成的分析、设计意图不能完整地在实现中表达的问题得以解决,从而有效的提高了软件开发效率与产品质量。

5.2MyWebFw环境构成

图5-3 MyWebFw环境架构

如图所示,MyWebFw以Eclipse作为基础平台,以DSM作为开发环境技术实现的指导,以构件组装作为开发环境开发方法的指导,通过定义各种应用开发相关的元模型提供给GMF/EMF作为输入,迅速生成面向应用开发的各种辅助开发与建模工具,并在SA指导下迅速建立起SF,形成各种样例代码,通过样例代码的整体模板化形成代码模板,最后,代码生成引擎读入建模工具建立的特定领域内具体的业务模型并结合代码模板生成100%的程序代码。

MyWebFw具体包括如下几个层次:

(1)Eclipse Platform

EclipsePlatform基于OSGi建立的Plug-in架构提供了强大的扩展机制,使得开发人员将所需功能开发成Plug-in,即可发布、部署到Eclipse Platform上进行使用。目前Eclipse社区提供了丰富的Plug-in资源,为基于Eclipse Platform的功能扩展开发提供了各种基础类库与工具。

(2)基础层

基础层,即可运行在Eclipse Platform上的各种Plug-in,主要来自Eclipse社区。包括:图形化编辑框架GEF(Graphical Editor Framework)、MOF实现框架EMF、重新封装了GEF与EMF的GMF、模型开发工具MDT/OCL、SWT/JFace以及其他第三方Plug-in。MyWebFw主要通过定义元模型的XML模式、由GMF生成各种拖拽式的图形化辅助工具,以SWT/JFace为

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值