[发明专利]一种软件结构的层次化表达方法有效
申请号: | 201910509769.9 | 申请日: | 2019-06-13 |
公开(公告)号: | CN110334016B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 宋明秋;李旭 | 申请(专利权)人: | 大连理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 大连理工大学专利中心 21200 | 代理人: | 温福雪;侯明远 |
地址: | 116024 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种软件结构的层次化表达方法,属于软件工程领域。本发明使用分层结构对程序的整体逻辑进行描述,其描述方法直接与程序在调用过程中形成的分层特性相适应,极大的简化了对程序逻辑结构的表达;由于将子函数看作一个黑盒,弱化了函数的具体实现过程,凸显了函数功能及其在程序整体结构中位置,使得程序分析过程更加清晰明了。 | ||
搜索关键词: | 一种 软件 结构 层次 表达 方法 | ||
【主权项】:
1.一种软件结构的层次化表达方法,其特征在于,步骤如下:(1)定义HDG图是由控制依赖子图、数据依赖子图、过程依赖子图三部分组成,是由多个处于不同层级上的HDG图组成,是个层次依赖复合图;父函数和子函数:函数中存在对自定义函数的调用,则其中的被调用函数称为子函数,主调函数称为父函数;最小函数单元:函数中除了调用语言环境定义的函数和自身外,没有调用其他的自定义函数;函数距离:函数是一个父函数,该函数中的子函数距离该函数距离为1,若子函数也是父函数则子函数的子函数距离该函数距离为2,依此类推;HDG是一个层次依赖复合图,它具体由控制依赖图、数据依赖图、过程依赖子图、层次依赖子图组合而成;层次依赖子图:用函数所处的层级来描述函数间的调用关系;单独就每个层次依赖子图看,它是一个函数完整的逻辑描述,它与处于最低级的层次依赖子图共同组成一个HDG;整合所有层次依赖子图就构成程序的层次依赖图HDG,它是一个程序的完整逻辑描述;HDG图的构成,在HDG图中,语句和函数都被抽象为节点,控制关系和数据流抽象为边;形式上HDG图由表示函数、一般语句的节点、表示程序调用关系的边以及数据流向的边组成;HDG图中节点和边的含义如下:函数是一组一起执行一个任务的程序语句;每个程序至少有一个函数,即主函数main(),它是程序的入口节点,为了将主函数与非主函数区分开,在HDG中用圆角矩形框表示主函数;(1.1)在HDG中需要使用两类节点,第一类是函数节点,包含函数节点和子函数节点;第二类是一般节点,包含基本语句节点和参数节点;每种节点的语法含义为:(1.1.1)函数节点:代表函数的开始,是程序的主函数或是非主函数;函数节点:一个函数节点表示一个函数的开始,用矩形框表示;函数节点包含其函数体中数据成员、形参、子函数的信息,直接与函数体中的所有语句、形参相连接,表现为控制关系;子函数节点:一个子函数节点表示函数的调用,存在于父函数中,用带有两条竖线的矩形框表示;子函数节点表示该函数中输入参数、输出参数、函数功能的组合;子函数节点不描述该函数内部逻辑,只描述输入到输出过程中实参的数据变化;(1.1.2)一般节点基本语句节点:基本语句节点的语句完成变量声明、计算、赋值和调用系统内置函数,但不能导致自定义函数被调用或使用其返回值;参数节点:参数节点用来表示函数形参和实参的对应关系;若某个传入参数是可修改的,则为其设定一个输出参数与其对应;若函数存在返回值,则也为其设定一个输出参数,表示函数的输出;一般节点统一用椭圆表示;(1.2)HDG中需要用到两种边,为控制边和数据流边(1.2.1)控制边包括一般控制边、调用边和依赖边一般控制边,描述程序的逻辑顺序,方向是单向的;若存在条件、循环控制语句则其方向可逆;调用边,描述对函数的一次调用;依赖边,描述语句之间存在的控制依赖关系,由子函数指出;控制边统一用加粗的实线箭头表示;(1.2.2)数据流边包括一般数据流边和参数传递边一般数据流边,描述函数内变量之间的数据传递,用实线箭头表示;如赋值,简单运算,方向由程序语言表达式等号右边包含的变量指向左边包含的变量;参数传递边,描述函数调用时形参与实参的参数传递,用虚线箭头表示,方向由实参节点指向形参节点;若存在返回值,则其方向由输出节点指出;(2)获得源程序P及其控制依赖图和数据依赖图;(3)判断程序P中的每个函数F是否是最小函数单元,如果F是最小函数单元则将其加入到最小单元集合Fs中;如果F不是最小函数单元则继续查找P中的下一个函数;(4)对Fs中的每个函数F建立过程依赖图;(5)判断Fs中的每个函数F是否存在父函数,如果函数F存在父函数,则找到距离函数F最近的父函数PF,建立PF的过程依赖图;递归判断PF是否存在父函数,如果存在父函数则进行与函数F相同的操作;如果不存在父函数则结束递归判断;(6)经过上述步骤(2)‑(5)得出程序P中各个函数的过程依赖图,按离main函数的距离从小到大依次从高层向低层排列,距离相同的函数处于同一层,对于距离不同的函数则根据其距离大小形成函数的层次关系;最终主函数main处于层次依赖图的最顶端,最小函数单元处于层次依赖图的最底层。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910509769.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种白盒测试方法、装置、设备及介质
- 下一篇:测试脚本的生成方法及相关装置