基于GEF的统一用户界面插件设计
1. 用户界面是电力管理软件的重要组成部分,它负责与用户交互,完成接收用户的输入信息,并显示输出系统运行的结果等工作。随着电力管理软件的普及应用,系统规模越来越庞大,开发用户界面所耗费的时间和投入成本也成倍增加[1],构造复杂交互式系统的用户界面是非常费时费力的,据统计,用户界面在应用软件中平均占开发量的48%和运行时间的50%[2]。
2. 提高用户界面的开发效率,无疑是提高整个软件开发效率非常有效的手段,因此需要为设计者提供可视化、规范化的、与具体编程语言无关的开发工具,以实现从用户需求到实际界面的映射,使用户和软件开发者的主要精力集中在对业务的理解和应用功能的提升上,从而最大限度地发挥管理软件在企业的应用价值。
3. 综合分析现有各种应用软件中界面设计部分的结果文件,发现用户界面的设计主要由界面控件的属性、控件的控制脚本构成,控件的控制脚本又区分为控件之间的控制脚本和控件与后台服务交互的脚本:
4. 本文利用Eclipse GEF技术开发了用户界面设计插件,使得开发的用户界面结果与计算机开发语言无关,应用程序界面部分的升级工作是平滑无缝过渡的。同样也是与开发语言无关性,通过编写不同语言的模板,使得不同编程语言之间的界面代码进行转换有效复用。应用本插件,最终用户也可以通过系统提供的界面修改工具进行可视化修改,同时可以扩充自己的控件、定义控件的属性,丰富界面的表现形式,提高应用系统的生命周期,提升软件的应用效果。因此,利用本文所开发的统一用户界面插件进行界面的设计,将有效地提高软件界面开发效率。
《基于ECLIPSE图形插件开发的研究》
1. Eclipse是一个开源软件开发项目,其主要任务是为开发高集成性工具提供一个健壮的、功能齐全的平台。特别是在Eclipse平台中使用GEF框架,来实现图形化编辑器被广泛采用,比较典型的应用包括IBMRose、普元的EOS平台的集成开发环境(包含工作流平台)、中创软件的InforFlow工作流平台等。正是基于此,本论文对Ecelipse图形插件开发进行了研究和探讨
2. GEF(Graphical Editor Framework)最早是Eclipse的一个内部项目,后来逐渐转变为Eclip
se的一个开源工具项目,Eclipse的不少其他子项目都需要它的支持。GEF是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。GEF的优势是提供了标准的MVC(ModelViewContro1)结构。
3. GEF的具体实现的步骤如下:
1 建模型Model
②创建模型对应的控制器Editpart
⑧创建连接模型和控制器的工厂,EditPartFactory
④在Editor中创建Graphicalviewer,并且显示图形,如图1所示。
⑤创建规则,Policy
⑥把一个或多个Policy安装给控制器Editpart
⑦根据需求创建执行的命令Command
⑧在每个Policy的框架下执行一个或多个Command;如图2所示:
⑨创建Palette
4. 在控制器中只是调用父类的getModel()方法,来得到该控制器对应的模型,但gef框架是怎么知道模型和控制器的对应关系呢,要让gef框架知道模型和控制器的对应关系,还必须建一个工厂类,来建立模型和控制器的映射。
5. 与其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受开发框架的局限。随着Eclipse平台插件技术的发展,Eclipse作为一个开源的业界平台的重要性更加显现。越来越多的开源软件爱好者也投身于Eclipse图形化插件开发应用中,众多的商业开发工具供应商(例如IBM)Eclipse GEF的支持和使用,对于基于Eclipse GEF框架的开发将有着更广泛的前景。
Eclipse RCP菜单实现的研究》
瀑布图插件
1. Eclipse RCP简介:Eclipse RCP是一项位于Eclipse平台核心的功能。大多数人想到Ecli
pse时,他们会想到Java集成开发环境(IDE)。如果将Eclipse中关于IDE的内容剥去.剩下的就是一个提供基本工作台功能的核心.这些功能包括对可移动和可叠加的窗121组件(编辑器和视图、、菜单、工具栏、按钮、表格、树形结构等等的支持。这个核心功能就是Eclipse RCP
2. 菜单与动作(Action):菜单是应用程序中常见的控件.菜单有放置在窗口上方的系统菜单.也有单击鼠标右键时弹出的快捷菜单。在处理菜单前,还需了解Action对象。顾名思义,Action就是动作.也就是单击菜单、工具栏图标按钮或者按键时执行某项处理。从Action的性质来说有两种,一种是Eclipse内置的,即ActionFactory工厂中定义的Action.开发者可以直接拿来使用。另外一种自然是开发者自定义的动作.需要扩展Action类或创建一个Command对象。并将这个对象注册到系统服务中,等待被菜单调用。
3. 菜单实现原理:RCP应用中菜单的实现.实际上所做的操作就是设置菜单(设置菜单的界面表现内容),设置动作,最后将菜单和动作做好关联即可。菜单实现原理如图(1)所示。
《软件工程方法的演进》
4. 软件工程的起源:出现了“软件危机”现象;传统软件工程方法:。软件的生命周期主要分为需求分析、概要设计、详细设计、编程、测试和使用过程中的维护几个阶段,由软件定义、软件开发和软件维护3 个时期组成。传统的软件工程方法提出了瀑布模型思想,使用了结构分析和结构设计技术。面向过程和面向模块程序设计是这一时期软件开发的特点,诸多结构化的程序设计语言和结构化方法等被开发出来,结构化程序设计方法被作为主流的软件设计方法。结构化设计技术的主要思想是按照自顶向下、逐步求精的思路,对现实的复杂系统实行功能分解,把软件系统逐级地划分成若干子系统,子系统再分成若干模块,通过使用一批简单的结构化的模块来组合成一个复杂的软件系统, 完成预定的功能。这样, 结构化方法能较好地驾驭软件复杂性, 从而成为实用的、易操作的软件方法, 在中小规模软件开发中应用获得成功。传统的生命周期方法学的主要缺点有:
5. 面向对象的软件工程方法:为了克服传统方法的缺点,提高软件系统的稳定性、可修改性和可重用性,人们在实践中逐渐创造出了软件工程的新途径—面向对象方法学。面向对象的方法将世界看成是相互联系着的各种对象的组合,对象将数据和操作封装在一起,对外界提供一些接口,其内部的实现细节和数据结构对于外部的对象是不可见的,对象之间通过消息相互通信。这种方法具有通用性,适用于广泛应用领域的大规模软件系统设计。
有助于提高软件的重用性、扩展性和移植性,提高编程效率和程序自动化水平。
6. 基于组件的软件工程方法:对软件复用的不懈追求,对面向对象技术的充分融合,组件技术应运而生。组件是可用来构成软件系统的即插即用的软件成分, 是可以独立地制造、分发、销售、装配的二进制软件单元。基于组件的编程技术是大型软件工程化开发的重要手段,组件化软件设计思想规范了工程化、工厂化的软件设计方法,提供了明晰可靠的软件接口标准,使软件组件可以像工业零件一样生产制造,零件可用于各种不同的适应软件系统上。软件组件具备如下优点:
7. 软件工程方法的发展前景与趋势:传统的软件工程方法将被面向对象的方法所取代 ,组件技术必将越来越倍受重视。同时更加新颖、更加先进的方法也必将会出现,软件工程的发展趋势是永远不会停滞的。
《传统的软件工程方法与面向对象的软件工程方法比较》
1. 软件危机: 自然语言和编程语言之间的鸿沟,是软件开发过程中最难跨越的阶段。早期的软件开发所面临的问题域比较简单。从认识清楚要解决的问题,到把这种认识用程序
表达出来,还不是很困难的事情。随着计算机应用领域的拓广,问题域的复杂性急剧膨胀,系统的规模和复杂度空前扩大。无论是对问题域的认识和理解,还是用一种编程语言来描述,其难度都很大,软件的复杂性和其中包含的错误达到了开发人员无法控制的程度,因此出现了“软件危机”。
2. 需求分析:传统的软件工程方法学中的需求分析在上述两方面都存在不足。它在全局范围内以功能、数据或数据流为中心来进行分析。这些方法的分析结果不能直接地映射问题域,而是经过了不同程度的转化和重新组合。因此,传统的分析方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难。
3. 总体设计和详细设计:但是传统的软件工程方法中设计文档很难与分析文档对应,原因是二者的表示体系不一致。所谓“从分析到设计的转换”,实际上并不存在可靠的转换规则,而是带有人为的随意性,从而很容易因理解上的错误而埋藏下隐患。
4. 编程和测试:但是由于分析方法的缺陷很容易产生对问题域的错误理解,而分析与设计的鸿沟很容易造成设计人员对分析结果的错误转换,所以在编程时程序员往往需要对分析员和设计人员已经认识过的事物重新进行认识,并产生与他们不同的理解。在实际开发过
程中常常看到,后期开发阶段的人员不断地发现前期阶段中的错误,并按照他们的新的理解进行工作,所以每两个阶段之间都会出现不少变化,其文档不能很好的衔接。
5. 软件维护:无论如何,各种传统的软件工程方法都为自然语言和编程语言之间的鸿沟铺设了一些平坦的路段。它们的优点和缺点,也为面向对象方法提供了有益的借鉴。
面向对象的软件工程方法
6. 面向对象的分析OOAOOA 强调直接针对问题域客观存在的各项事物设立OOA 模型中的对象. 问题域有哪些值得考虑的事物,OOA 模型中就有哪些对象. OOA 对问题域的观察、分析和认识是很直接的, 对问题域的描述也是很直接的. 它所采用的概念及其术语与问题域中的事物保持了最大程度的一致, 不存在语言上的鸿沟.
7. 面向对象的设计OODOOD 是针对系统的一个具体的实现运用OO 方法. 它与OOA 采用相同的表示法和模型结构. OOA OOD 采用一致的表示法是面向对象的分析与设计优于传统的软件工程方法的重要因素之一.这使得从OOA OOD 不存在转换, 只有很局部的修改或调整, 并增加几个与实现有关的独立部分, 因此OOA OOD 之间不存在传统方法中分
析与设计之间的鸿沟, 二者能够紧密衔接, 大大降低了从OOA OOD 的难度、工作量和出错率.
8. 面向对象的编程OOPOOP 工作就是用同一种面向对象的编程语言把OOD 模型中的每个成分书写出来。即用具体的数据结构来定义对象的属性,用具体的语句来实现服务流程图所表示的算法。
9. 面向对象的测试OO TOOT 指对于用OO 技术开发的软件, 在测试过程中继续运用OO 技术, 进行以对象概念为中心的软件测试. 在测试过程中发掘并利用与OO 方法的概念、原则及技术机制有关的语法与语义信息. 可以更准确地发现程序错误并提高测试效率.对于用OOA OOD 建模并由OO PL 编程的软件,OO T 可以通过捕捉OOA /OOD 模型信息, 检查程序与模型不匹配的错误. 这一点传统的软件工程方法很难达到。
10. 面向对象的软件维护:面向对象的软件工程方法为改进软件维护提供了有效的途径. 程序与问题域是一致的, 各个阶段的表示是一致的, 从而大大减少了理解的难度.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。