【技术实现步骤摘要】
本专利技术涉及设计阶段项目模型的分析与理解,主要涉及一种基于结构匹配的UML 模型查询方法。
技术介绍
随着软件工程技术的日益成熟,模型规模伴随着软件规模的发展而不断扩大,如 何利用现有软件资源提高软件生产效率已收到广泛关注。软件复用技术可借鉴现有成熟的 软件设计方案,降低软件设计和维护成本,提高软件生产效率,找出合适的模型或代码是复 用技术的难点。在模型库日趋庞杂的今天,模型驱动领域亟须对模型搜索相关技术展开研 究,帮助用户搜索模型库快速找出目标模型。目前模型搜索技术借鉴了文本搜索相关技术, 搜索效果和普及率均不甚理想,未能充分利用模型的结构信息和语义信息。近些来,随着模型驱动技术和UML建模支撑工具的逐步发展,UML模型查询技术逐 渐开始得到研究人员的关注(UML是通用的可视化建模语言,用于对软件进行描述、可视化 处理、构造和建立软件系统工作的文档,充分考虑了各种需求、方法和语言的特点)。目前与 UML相关的模型查询工作主要有元模型查询技术、基于对象约束语言(Object Constraint Language, OCL)的查询扩展以及基于信息检索技术的模型查询等。元模型是对建模语言进行描述的模型,其复杂度高,且难以消除,元模型查询主要 是针对元模型进行的查询。对象约束语言最初的雏形是IBEL (Integrated Business Engineering Language, IBM)和Syntropy,是IBM基于这两种语言进行设计而产生的。对象约束语言伴 随着UML1.1 一起发布,通过形式化的方法定义模型约束,对UML建模语言进行补充,进而 ...
【技术保护点】
一种基于结构匹配的UML模型查询方法,其特征包括步骤:步骤10:获取UML模型库模型文件;步骤11:利用模型查询语言编辑目标查询模式;步骤12:解析目标查询的模型模式;步骤13:利用结构匹配算法将步骤12解析好的目标查询模型模式与UML模型库中模型进行结构匹配;步骤14:显示匹配结果;按照模型查询语言编辑目标查询模型模式主要是将目标模型模式中包含的模型元素以及它们之间存在的关系表达出来;解析目标查询模型模式即步骤12,其中解析过程包括:步骤30:读取已经编辑完的目标模型模式文件;步骤31:开始读取文件内容;步骤32:识别关键字:[Class]、[Attribute]、[Operation]、[Parameter]、[Abstraction]、[Generalization]、[Dependency];步骤33:根据关键字创建相应对象元素,读取相应元素特征:name、visibility等,若其含有内部元素,则跳转至步骤32;步骤34:判断是否全部元素已经读完,若已经全部读完,则跳转至步骤35,否则,跳转至步骤32;步骤35:结束此次解析;步骤12是利用结构匹配算法将步骤12解析好的目标 ...
【技术特征摘要】
1. 一种基于结构匹配的UML模型查询方法,其特征包括步骤 步骤10 :获取UML模型库模型文件; 步骤11 :利用模型查询语言编辑目标查询模式; 步骤12 :解析目标查询的模型模式; 步骤13 :利用结构匹配算法将步骤12解析好的目标查询模型模式与UML模型库中模型进行结构匹配; 步骤14 :显示匹配结果; 按照模型查询语言编辑目标查询模型模式主要是将目标模型模式中包含的模型元素以及它们之间存在的关系表达出来; 解析目标查询模型模式即步骤12,其中解析过程包括 步骤30 :读取已经编辑完的目标模型模式文件; 步骤31 :开始读取文件内容; 步骤 32 :识别关键字[Class]、 [Attribute]、 [Operation]、 [Parameter]、[Abstraction]、 [Generalization]、 [Dependency]; 步骤33 :根据关键字创建相应对象元素,读取相应元素特征name、visibility等,若其含有内部元素,则跳转至步骤32 ; 步骤34:判断是否全部元素已经读完,若已经全部读完,则跳转至步骤35,否则,跳转至步骤32 ; 步骤35 :结束此次解析; 步骤12是利用结构匹配算法将步骤12解析好的目标查询模型模式在模型库进行结构匹配,需要先从模型库中抽取模型信息,然后再利用结构匹配算法进行匹配; 步骤40 :获取模型文件; 步骤41 :抽取模型元素信息; 步骤42 :将解析好的目标模型元素信息在模型库中对每个模型元素进行逐一的结构匹配; 抽取模型库信息即进行结构匹配之前的准备工作;其具体步骤包括 步骤50 :读取模型库文件; 步骤51 :抽取模型库文件中的类元素,如果类中嵌套有属性以及方法元素,则继续抽取嵌套的属性以及方法元素; 步骤52 :抽取模型库文件中的类之间关系元素; 步骤53 :判断是否模型文件中所有元素都已经读完,若读完,则停止抽取,否则跳转至步骤51 ; 模型库文件中的类、属性和方法元素的抽取算法;其算法具体步骤包含 步骤60:开始读模型文件; 步骤61 :如果当前节点元素为UML:Package,则将当前包的指针currentPackage赋给指针 paren...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。