您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页UML模型图自动比较方法的研究与应用

UML模型图自动比较方法的研究与应用

来源:好走旅游网
UML模型图自动比较方法的研究与应用 文章编号:1003-5850(201O)10—0072—03 UML模型图自动比较方法的研究与应用 Research and Application of Automatic Comparison Method Of UML Model Diagram 汪前进董剑利 222005) (淮海工学院计算机工程学院 江苏连云港【摘 要】介绍了不同类型试题的自动批改方法。分析了基于Microsoft Visio构建的UML模型图的组成和结 构,应用Visio二次开发技术,提出了一种基于图形元素比较的UMI 模型图的自动批改方法。该方法采用开放 性设计模式,基于组件方式实现,具有良好的可扩充性。 【关键词】UML模型,自动批改,Visio二次开发,组件开发 中图分类号:TP311.56 文献标识码:A ABSTRACT This paper discusses automatic assessment methods of test questions.An automatic assessment method is proposed by analyzing the composition and structure of UML model diagram based on Microsoft Visio with Visio automation.It base on open design patterns and software component SO that we can extend its function easily. KEYWORDS UML model,automatic assessment,Visio automation,component development 软件建模是学生从事软件开发的必备能力,在教 学过程中,无论是结构化开发方法,还是面向对象开发 和软件需求的一致性。从狭义的可操作的自动批改技 术看,正确的模型是指符合标准答案要求的模型。在软 件项目建模实训过程中,学生使用Visio完成UML建 模任务,提交绘图文件。教师提供标准绘图文件作为参 和评分标准,自动批改程序打开学生提交的绘 图文件,对比参,检查并判别图形元素的正确 性,根据评分标准,计算出得分。通过开发Microsoft Visio解决方案的Visio automation技术,可以实现上 述功能。 方法,建立软件模型能有效提高软件的可视化程度,是 工程化开发的核心。UML建模技术是一种总结了以 往建模技术的经验并吸收了当今优秀成果的标准建模 技术,利用UMI 表达的软件模型,可以直接将UMI 模型转化为某种程序设计语言的源代码框架口]。常用 的UML模型图有用例图、类图、对象图、顺序图、协作 图、状态图、活动图、组件图、部署图等类型,Microsoft Visio可以方便地建立UML模型,是最易使用的建模 工具。 2 Visio开发的关键技术 2.1 Visio对象模型 目前,试题自动批改技术的研究方兴未艾,对于客 观题(如选择题、判断题),处理比较简单。对于主观题, 也有较多的研究,但因为涉及到领域知识和语义理解, Visio对象模型表示Microsoft Visio引擎通过 Automation展示的对象、属性、方法和事件,描述了对 象之问的相关方式。模型中大多数对象对应于Visio 界面中看到和选定的项目。例如Shape对象表示选定 难于用同一种方法解决,文献[2]提蹬了一种基于带权 概念网络进行分层相似度计算的主观题自动批改的解 决方案,文献[3]对算法的验证和批改提出了解决方 法。这些能够在一定程度上解决一般性主观题和算法 设计题,但软件建模结果UML模型的自动批改技术 还是空白,本文研究UMI 模型的自动批改技术,是建 立软件工程实践环境的关键技术,可以有效地减轻教 的Visio绘图页中的内容(gO状、组合、连接线等)。有 些对象可以表示其它对象的集合,集合中包含0个或 多个对象。Visio对象模型(部分)如图1所示。 2,2加载CoM组件 Visio提供了COM对象、ActiveX控件支持,可以 师的工作压力和劳动强度。 1 UML模型自动批改技术 从广义上看,正确的UML模型是指符合软件需 求的模型,判断UML模型的正确性也就是验证模型 * 2010—06—05收到,2010—08—21改回 对UML模型进行图形控制,读取或写入信息到UML 模型的各种类型图[4]。在VS 2008环境中,在工具箱上 添加Microsoft Visio 11.0 Drawing Control组件,然 后就可以在Form中调用其对象。项目引用中会自动 增加AxVisOcx,VisOcx和Visio的引用。在项目中首 ** 基金项目:中国高等教育学会2010年专项课题(2010YHE009)资助。 ***汪前进,男,1971年生,硕士,副教授,研究方向:软件工程,UML及其支持环境。 第23卷第1O期 电脑开发与应用 图1 Visio对象模型(部分) 先添加Microsoft. Office. Interop.Visio 和 AxMicrosoft.Office.Interop.VisOcx 两 个 namespace。然后,就可以通过C#操作Visio对象。 2.3读取UML模型元素信息 为了读取UML模型元素信息,需要分析模型图 的结构组成。一个UML模型包括若干页。如图2,类 图在一个页中。其在Visio中的结构组成如图3所示, Shapes 集合有 Class、Classl 1、Compsition、 Watermark Title 4个元素。其中Class对应类 Employee的形状,Class11对应类Address的形状, Compsition对应Employee和Address之间的组合关 系,W atermark Title对应水印标题。每一个形状也是 一个集合。其中,类形状包含8个元素:Name为类名, Attributes为类的属性,Operations为类中操作, Parameters为参数,另外4个未定义。类图中 Composition(组合),Generalization(泛化),Binary Association(二元关联),Dependency(依赖)等形状 均包含若干元素。Employee Ad出ess -Empcode:int -HouseNumber:int -Name:siring -Sb'eetNurnber:stirng ddtess:Address -City:string —BirthDate:object -Zipcode:int 4C: ̄tEmployeeDetails() +GelAddres¥() +SetErnployeeDetails() +SetAddress() 图2 UML模型中的类图 每一个形状(元素)是一个对象,通过引用对象的 属性可以取得相应的值。设类图页为standardPage, standardPage.Shapes[i3.Text取得当前页第i个形 状的文本,standardPage.Shapes[i3.Name取得当前 页第i个形状的名称,对于类形状集合,其元素Shapes [4]表示Attributes,Shapes[5]表示Operations, Shapes[-63表示Parameters,Shapes[7]表示Name,返 回这些形状的Text属性值,黎 :: 。 ing 。 可以获得类的属性定义、操 窨 作定义、参数定义和名称。对 苦 s 于二重关联、泛化、组合、依 H懿 赖等连接形状,Shapes・ 譬嚣 Connects [ i ] 鎏sSheet.; 11l Sheet.5 .ToCel1.Shape.Name能够 : ̄蜡"Ccl ass….1 l 返回当前页形状的第 个连 , “ 接点所连接的形状的名字。 图3类图的结构组成 对于泛化形状,Connects[1]表示无继承符号(子类)的 一端,Connects[-2]表示有三角形继承符号(父类)的一 端;对于组合形状,Connects[1]表示有菱形符号(整 体)的一端,ConnectsEz3表示元菱形符号(部分)的一 端。 3 UML模型自动批改算法 3.1 UML模型图的比较 UML模型自动批改通过模型图的比较实现,算 法compDiagram()实现了两个模型图的比较, standardPage表示标准答案模型图中页,currentPage 表示需要批改模型图中页。算法调用compShape()方 法对两个页中的形状逐一扫描比较,判定两个形状的 是否相等。 int compDiagram(Page standardPage,Page currentPage) {for(i一1;i<一shapenuml;i++) {curname=standardPage.Shapes[i].NameU.Split (’.’); for(j一1;j<一shapenum2;j++) {standardname=currentPage.Shapes[i] .NameU.Split(’.’); if(compshape(i,j,standardname E03,curname 厂O])) (score+一wEi],break;) }//for )//for }//eompDiagram 其中,score表示得分。Split()方法将字符串以参 数字符为分界点划分成若干个子串。若模型图的当前 页包含n个元素,则问题的规模为n,其时间复杂度为 0(n )。 compShape(int i,int j,string sl,string s2)实现 类图中形状的比较,参数i,j指定了不同的形状,s1,s2 表示形状的类型。类图中,形状类型有Watermark Title, Generalization, Compositmn, Class, Binary Association,Dependency等。算法对同类型的两个形 状进行比较,根据形状的具体信息判断是否相等。 (下转第76页) ・76・ (总836) 遗传算法在粗糙集属性约简中的研究 0芷 20]据简约量为42.86 。 从上面的两组数据可以知道,算法的 4结束语 种用于求解决策表系统属性约简的遗传 遗传算法是一类可用于复杂系统优化 算法,经实验证明了该遗传算法解决粗糙 执行结果和运行效率直接受种群规模大 计算的鲁棒搜索算法,从而受到广泛关注。 集属性约简是有效可行的,能够得到正确 小的影响。种群规模越大,约简算法的约 简能力就越强,但却要花费大量的时间。 并且能找到所有最优解,提高了 由于遗传算法具有全局优化和隐含 的约简, 并行性的特点,因此用其求解属性约简, 效率。通常会减小计算的复杂性。本文设计的这 (上接第73页) Boolean compShape(int i,int j,string sl,string s2) f if(s1.Equals(s2)) 增加DLI 组件增加新的模型图批改功能,修改某个组 件不会影响其他组件。该方法结构稳定,可以推广到其 他模型图,具有良好的可扩充性和可修改性。 {switch(s1) {case Watermark Title”:return true; case Generalization”: 4结束语 本文论述的方法充分利用Visio软件提供的编程 接口,可以有效地实现UML模型的自动批改。该方法 实用性强,可以广泛用于作业系统、实验、实训系统中。 但UML模型的主观性很强,其正确性判断涉及到相 关的业务领域知识,如何从需求层面,检验模型的准确 性,需要在领域知识方面进一步研究。 参考文献 if(standardPage.Shapes[i].Characters.Text.Equals (currentPage.Shapes[j].Characters.Text)) …//泛化关系形状信息比较 case Composition”:… case Class”:… case Binary Association :… case Dependency :… )//switch else return false; [1] 郭宁.UML及建模[M].北京:清华大学出版社, 2007. }//if )//compShape [2] 王津,严蔚敏.基于服务器组件技术的在线练习环境 口].计算机应用与软件,2003,20(9):26—27. [3] 黄康,袁春风.基于领域概念网络的自动批改技术. 3.2基于组件的实现 将类图模具中所有形状的比较方法定义为 Class.dl1组件,以便动态调用。针对其它模型图,如功 能模型(数据流模型图),也可将模型图模具中的形状 计算机应用研究[J],2004,21(11):260—262. [4] 朱吴,雷鸣,高 山.Visio二次开发技术在电气 工程教学图形化中的应用[J].电气电子教学学报, 2006,28(1):95—97. (外部实体、处理、数据流、数据存储等)的比较方法定 义为DFD.dll组件,基于VS2008平台,通过C#动态 调用委托的DLI ,根据形状类型选择方法,完成自动 [5] Microsoft公司.开发Microsoft Visio解决方案[M]. 北京:北京大学出版社,2002. [6]Hejlsberg等.C#编程语言祥解(第2版[M]).北 京:电子工业出版社,2007. 比较嘲。这种开放性设计模式,使自动批改模块可通过 (上接第74页)  ①在accp.1com域中创建全局组 组;号加入到这个全局组中,当访问资源的用 testl,将财务部的用户账号加入全局组 ⑥赋予test组对“工资报表”文件夹 只读的权利。 参考文献 户发生变化时,也由本域的管理员负责更 新组里的成员关系,从而大大提高网络资 源管理效率。 test1; ②在hi.accp.Icom域中创建全局组 test2,将财务部的用户账号加入test2组; [1] [美]Mario Hewardt.Windows高级调 ⑧在sh.accp.1com域中创建全局组 AGDLP规则能够实现账户跨域进行 试[M].北京:机械工业出版社,2009. est3,将财务部的用户账号加入test3组; [2] 苏英如.局域网技术与组网工程[M].北 资源的访问,在多域的环境下管理资源需 t要合理地运用AGDLP规则,假设 ④在bj_benet.com.cn域中创建全局 京:中国水利水电出版社,2006.  徐祗祥.Windows网络服务[M].北京: Benet.com.cn域中有一个共享文件夹“工 组test4,将财务部用户账号加入test4组; [3]资报表”要提供给其他四个域的财务部的 员工查询。利用AGDLP规则如下: ⑤在benet.tom.cn域中创建域本地 组test,将test1、test2、test3、test4加入该 科学技术文献出版社,2008. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务