首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 软件套件 / 一种软件系统的代数构件表示方法和装置

一种软件系统的代数构件表示方法和装置

阅读:2发布:2020-10-17

专利汇可以提供一种软件系统的代数构件表示方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 软件 系统的代数构件表示方法和装置,将软件系统根据功能区分成不同的模 块 ,每个模块表达为一个代数构件;所述表达为:用ADL语言对代数构件进行描述,形成XML文件;以代数构件为 节点 ,以代数构件间的运算关系为边,获得软件系统的代数拓扑图。本发明适用于面向对象和面向过程程序语言设计开发的软件系统,且表达清晰,解决了后续开发人员理解上的困扰。,下面是一种软件系统的代数构件表示方法和装置专利的具体信息内容。

1.一种软件系统的代数构件表示方法,其特征在于,
将软件系统根据功能区分成不同的模,每个模块表达为一个代数构件;所述表达为:
用ADL语言对代数构件进行描述,形成XML文件;
以代数构件为节点,以代数构件间的运算关系为边,获得软件系统的代数拓扑图。
2.如权利要求1所述的方法,其特征在于,所述代数构件采用六元组表示:逻辑行为集合、连接关系集合、控制器、内部数据、聚合运算、检测器。
3.如权利要求2所述的方法,其特征在于,所述用ADL语言对模块进行描述,形成XML文件为:
标签对软件系统所描述的模块进行表示,然后分别用标签和标签对于模块中的功能件和连接件进行划分;
在功能件标签组中:用标签表示逻辑行为,标签中又包含了n个不同的逻辑行为子集、…、,用标签表示模块的内部数据,用标签表示模块间的聚合运算;
在连接件标签组中:用标签表示连接关系,标签中又包含了n个不同的连接关系子集…….,用表示检测器,用表示控制器。
4.如权利要求1所述的方法,其特征在于,以代数构件间的运算关系为边包括:调用运算、包含运算和嵌套运算;
调用运算是指:假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA使用的是代数构件PMB所提供的服务,那么就可以称代数构件PMA和代数构件PMB之间是调用关系,记作PMA⊕PMB;
包含运算是指:假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA的执行是以代数构件PMB的执行为前提的,即代数构件PMB的输出是数构件PMA的输入,代数构件PMA包含在代数构件PMB中,那么就可以称代数构件PMA和代数构件PMB之间是包含关系,记作PMA⊙PMB;
嵌套运算是指:假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA和PMB嵌套在一起共同完成同一个功能,那么就可以称代数构件PMA和代数构件PMB之间是嵌套关系,记作 嵌套包括同步嵌套和异步嵌套。
5.一种软件系统的代数构件表示装置,其特征在于,包括代数构件表达模块和拓扑图构建模块;
所述代数构件表达模块,用于将软件系统根据功能区分成不同的模块,每个模块表达为一个代数构件;所述表达为:用ADL语言对代数构件进行描述,形成XML文件;
所述拓扑图构建模块,用于以代数构件为节点,以代数构件间的运算关系为边,获得软件系统的代数拓扑图。
6.如权利要求5所述的装置,其特征在于,所述代数构件表达模块采用六元组表示代数构件,所述六元组包括逻辑行为集合、连接关系集合、控制器、内部数据、聚合运算、检测器。
7.如权利要求6所述的装置,其特征在于,所述代数构件表达模块用ADL语言对模块进行描述,形成XML文件为:
标签对软件系统所描述的模块进行表示,然后分别用标签和标签对于模块中的功能件和连接件进行划分;
在功能件标签组中:用标签表示逻辑行为,标签中又包含了n个不同的逻辑行为子集、…、,用标签表示模块的内部数据,用标签表示模块间的聚合运算;
在连接件标签组中:用标签表示连接关系,标签中又包含了n个不同的连接关系子集…….,用表示检测器,用表示控制器。

说明书全文

一种软件系统的代数构件表示方法和装置

技术领域

[0001] 本发明涉及一种软件系统的代数构件表示方法和装置。

背景技术

[0002] 为了提高软件系统的开发效率,改善软件系统的质量,增加软件系统的重用率,减少软件系统开发所需的费用,人们开始逐渐采用构件化的方式来进行软件系统的开发,基于软件构件开发的软件系统的灵活性和标准化程度都得到了极大的提高。
[0003] 目前,对软件构件的定义简单来说指的是具有一定功能,并且能够独立工作或与其他构件组装起来协同进行工作的程序结构体,从结构上说它指的是语义描述、实现代码和通讯接口复合体
[0004] 为了实现对软件构件的抽象描述,目前,国际上相关研究机构提出了许多不同的软件构件模型,主流的三个分别是对象管理集团(OMG)提出的通用对象请求代理结构(CORBA)、微软提出的分布式构件对象模型(DCOM)和Sun公司提出的EJB模型。这三种模型将软件构件的接口和实现进行有效地分离,构件之间只通过接口进行交互,从而提高了构件的复用能。国内许多研究人员也对软件构件模型进行了相关研究,并取得了一定的研究成果,其中被研究人员广泛接受的是北京大学杨芙清院士等人提出的一种“青构件模型”,该模型结合了国外三种模型的优点,将构件结构分为外部接口和内部结构两大部分。
[0005] 基于杨芙清院士提出的“青鸟构件模型”,湖南大学张友生等人在基于构件运算的软件演化研究一文中提出了软件构件的代数表示方法,文中将软件构件分为功能件和连接件两大部分,然而这种表示方法以类作为描述对象,并且将软件系统的功能件和连接件分隔开了,只适用于面向对象程序语言设计开发的软件系统,并不适用于面向过程程序设计语言开发的软件系统。
[0006] 此外,上述方案采用代数表示方式作为软件构件的最终表达形式,表达不够清晰,给后续的开发人员造成理解上的困扰。

发明内容

[0007] 有鉴于此,本发明提供了一种软件系统的代数构件表示方法和装置,适用于面向对象和面向过程程序语言设计开发的软件系统,且表达清晰,解决了后续开发人员理解上的困扰。
[0008] 为了解决上述技术问题,本发明是这样实现的。
[0009] 一种软件系统的代数构件表示方法,包括如下步骤:
[0010] 将软件系统根据功能区分成不同的模,每个模块表达为一个代数构件;所述表达为:用ADL语言对代数构件进行描述,形成XML文件;
[0011] 以代数构件为节点,以代数构件间的运算关系为边,获得软件系统的代数拓扑图。
[0012] 优选地,所述代数构件采用六元组表示:逻辑行为集合、连接关系集合、控制器、内部数据、聚合运算、检测器。
[0013] 优选地,所述用ADL语言对模块进行描述,形成XML文件为:
[0014] 用标签对软件系统所描述的模块进行表示,然后分别用标签和标签对于模块中的功能件和连接件进行划分;
[0015] 在功能件标签组中:用标签表示逻辑行为,标签中又包含了n个不同的逻辑行为子集、…、,用标签表示模块的内部数据,用标签表示模块间的聚合运算;
[0016] 在连接件标签组中:用标签表示连接关系,标签中又包含了n个不同的连接关系子集…….,用表示检测器,用表示控制器。
[0017] 优选地,以代数构件间的运算关系为边包括:调用运算、包含运算和嵌套运算;
[0018] 调用运算是指:假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA使用的是代数构件PMB所提供的服务,那么就可以称代数构件PMA和代数构件PMB之间是调用关系,记作
[0019] 包含运算是指:假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA的执行是以代数构件PMB的执行为前提的,即代数构件PMB的输出是数构件PMA的输入,代数构件PMA包含在代数构件PMB中,那么就可以称代数构件PMA和代数构件PMB之间是包含关系,记作PMA⊙PMB;
[0020] 嵌套运算是指:假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA和PMB嵌套在一起共同完成同一个功能,那么就可以称代数构件PMA和代数构件PMB之间是嵌套关系,记作 嵌套包括同步嵌套和异步嵌套。
[0021] 本发明还公开了一种软件系统的代数构件表示装置,包括代数构件表达模块和拓扑图构建模块;
[0022] 所述代数构件表达模块,用于将软件系统根据功能区分成不同的模块,每个模块表达为一个代数构件;所述表达为:用ADL语言对代数构件进行描述,形成XML文件;
[0023] 所述拓扑图构建模块,用于以代数构件为节点,以代数构件间的运算关系为边,获得软件系统的代数拓扑图。
[0024] 优选地,所述代数构件表达模块采用六元组表示代数构件,所述六元组包括逻辑行为集合、连接关系集合、控制器、内部数据、聚合运算、检测器。
[0025] 优选地,所述代数构件表达模块用ADL语言对模块进行描述,形成XML文件为:
[0026] 用标签对软件系统所描述的模块进行表示,然后分别用标签和标签对于模块中的功能件和连接件进行划分;
[0027] 在功能件标签组中:用标签表示逻辑行为,标签中又包含了n个不同的逻辑行为子集、…、,用标签表示模块的内部数据,用标签表示模块间的聚合运算;
[0028] 在连接件标签组中:用标签表示连接关系,标签中又包含了n个不同的连接关系子集…….,用表示检测器,用表示控制器。
[0029] 有益效果:
[0030] 湖南大学张友生的方案以类为对象,采用四元组+三元组进行描述,最终表达为表达式的形式。其缺陷是,以类为对象,仅仅适用于面向对象程序设计语言开发的软件系统,采用表达式为最终表达形式不够易于理解,表达不够清晰,给后续的开发人员造成理解上的困扰。
[0031] 而本发明以模块为描述对象,相当于以功能作为节点划分依据,无论是以类为基本单元的面向对象的程序设计语言,还是以方法/结构体为基本单元的面向过程的程序设计语言,都具备不同功能的模块,因此该方法适用于各种程序设计语言开发的软件系统。
[0032] 针对这样的模块,采用六元组表达其功能和连接关系,能够实现全面、清晰的描述。
[0033] 此外,本发明最终采用ADL语言对模块进行描述,形成XML文件,表达清晰,易于理解,增强了代数构件的可理解性和构件复用性。附图说明
[0034] 图1为软件系统组成框架
[0035] 图2为软件系统的代数构件模型。
[0036] 图3为调用关系的拓扑基本复形。
[0037] 图4为包含关系的拓扑基本复形。
[0038] 图5为嵌套关系的拓扑基本复形。
[0039] 图6为宿舍管理系统的逻辑试图。
[0040] 图7为spring security登录模块的ADL表示。
[0041] 图8为宿舍管理系统的软件拓扑复形图。

具体实施方式

[0042] 为了实现软件分析的定量建模,必须“跳出系统看系统”,摆脱“软件设计与实现逻辑等价”的羁绊,从认识上寻求新的视野,寻找支配软件逻辑过程的新的规律,迫切需要通过多学科交叉与有机融合实现技术突破创新。目前大多数的软件系统抽象都是基于系统的包、类或者方法,缺少从系统整体的视野对系统进行抽象。
[0043] 因此本发明的关键点之一就是以软件系统的模块作为划分依据,将每一个模块表达为一个代数构件,最终获得软件系统的代数拓扑图。软件系统中,模块是以功能作区分的。以模块为描述对象,相当于以功能作为节点划分依据,无论是以类为基本单元的面向对象的程序设计语言,还是以方法/结构体为基本单元的面向过程的程序设计语言,都具备不同功能的模块,因此该方法适用于各种程序设计语言开发的软件系统。
[0044] 本发明的关键点之二是,用ADL语言对代数构件进行描述,形成XML文件。XML文件是规范表达,增强了代数构件的可理解性和构件复用性。
[0045] 下面结合附图并举实施例,对本发明进行详细描述。
[0046] 本发明认为软件系统的每一层次的行为、甚至细化到每一最底层的操作行为,都可以表述成代数构件的结构形式,整个软件系统是通观软件代数构件的“合纵连横”所构成的整体,其中,上层的代数构件是下层代数构件的组合体。然后,基于软件系统的组合框架提出了软件系统的代数构件模型,如图1所示。本发明将软件系统的代数构件采用六元组表示。对于构件间的运算,在对张友生等人提出的三种运算的基础上,将代数构件的调用运算和嵌套运算进行细化,将调用运算扩展成激发运算和带有反馈的激发运算,将嵌套运算扩展成同步嵌套和异步嵌套。之后针对具体的程序,将代数构件以及构件间的运算,用ADL语言进行描述,详细划分每一段程序所对应的功能键及连接件并对所得到的xml文件进行代数拓扑复形的表示。
[0047] 一、将软件系统中的模块用代数构件六元组表示
[0048] 本发明认为软件系统的代数构件是一个六元组,由功能件和连接件组成,将功能件和连接件组合在一起来表示软件系统的代数构件,用PM=(X,Y,D,C, η)表示。其中X表示逻辑行为集合,它是由n个逻辑行为x1,x2,x3,…,xn构成,即X={x1,x2,…,xn},其中xi表示一个逻辑行为,Y表示连接关系集合,它是由n个连接关系y1,y2,y3,…,yn构成,即Y={y1,y2,…,yn},其中yi表示一个连接关系;C表示控制器;D表示内部数据;表示聚合运算,指把代数构件连接关系集合Y作用在代数构件逻辑行为集合X后所得的结果,也就是Y中的每个连接分别作用在X中各自逻辑行为对上的结果,即Y中每个连接对X中相应代数构件行为同时施行聚合运算的结果,称为τ的解,定义为Θ,即τ(X,Y)=Θ;η表示检测器,检测器包括输入判别器和输出判别器两部分。输入判别器针对有效连接关系,按照该代数构件的数据及传输格式要求进行转换,并把转换结果传输给控制器和数据存储器;输出判别器针对控制器、数据存储器、运算器的输入结果,控制向不同代数构件的输出。本发明用ηpre表示用于输入检测的信息,ηpost表示输出检测的结果。如图2所示。
[0049] 二、定义代数构件间的运算
[0050] 1、调用运算
[0051] 假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA使用的是代数构件PMB所提供的服务,那么就可以称代数构件PMA和代数构件PMB之间是调用关系,记作 对应软件结构拓扑图中的形式如图3所示,代数定义见定义3。这里的 实际上是代数构件PMA和代数构件PMB之间连接关系的抽象符号表示,它的作用是将代数构件PMA中提供的服务提供给代数构件PMB使用。
[0052] 定义1设构件PMA,PMB是论域Dom(U)中的两个构件
[0053] 若
[0054] 使得
[0055] 则称构件A通过发送一个消息“激发”构件B。
[0056] 定义2设构件PMA,PMB是论域Dom(U)中的两个构件,若 使得 则称构件A与构件B进行了一次带有“反馈”的“激
发”运算。
[0057] 定义3设构件PMA,PMB是论域Dom(U)中的两个构件若使得 即构件A与构件B进行了一次带有“反馈”的“激发”运算且
构件B反馈给构件A的信息可以由构件A进行运算则构件A,B进行了一次“调用”运算。记做[0058] 2、包含运算
[0059] 假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA的执行是以代数构件PMB的执行为前提的,即代数构件PMB的输出是数构件PMA的输入,代数构件PMA包含在代数构件PMB中,那么就可以称代数构件PMA和代数构件PMB之间是包含关系,记作PMA⊙PMB,如图4所示。这里的⊙实际上是代数构件PMA和代数构件PMB之间连接关系的抽象符号表示,它的作用是让代数构件PMA和代数构件PMB之间在功能上存在依赖关系,但是代数构件PMA和代数构件PMB的功能实现却可以是独立的。代数定义见定义4。
[0060] 定义4设构件PMA,PMB是论域Dom(U)中的两个构件若 当CA是CB的先决条件且 时,有ηpost(A)=ηpre(B),则称构件A和构件B进行了一次包含运算。记作PMA⊙PMB。
[0061] 3、嵌套运算
[0062] 假设软件系统S中存在两个不同的代数构件PMA和PMB,如果代数构件PMA和PMB嵌套在一起共同完成同一个功能,那么就可以称代数构件PMA和代数构件PMB之间是嵌套关系,记作 对应软件结构拓扑图中的形式如图5所示。其中PMC和PMA之间为同步嵌套,PMC和PMB之间为异步嵌套。这里的 实际上是代数构件PMA和代数构件PMB之间连接关系的抽象符号表示,它的作用是让代数构件PMA和代数构件PMB之间能够进行嵌套共同完成同一项功能。其中又可以分为异步嵌套运算和同步嵌套运算,异步嵌套运算我们用表示,代数定义见定义6;同步嵌套运算用 表示,代数定义见定义7。由于嵌套运算的共性,这里在进行软件系统拓扑的代数表示时不对同步嵌套和异步嵌套做具体的区分。
[0063] 定义5设构件PMA,PMB是论域Dom(U)中的两个构件,若存在当 时,CA是CB先决条件, 时,CB是CA的先决条件,且
则称构件PMA,PMB并行,记作PMA||PMB,即PMA,PMB可以相互调用,也可以相互独立实现功能。
[0064] 定义6设构件PMA ,PMB ,PMC是论域Dom (U)中的三个构件,若使 得
则称并
行构件PMA,PMB进行了一次异步嵌套运算。记作
[0065] 定义7设构件PMA ,PMB ,PMC是论域Dom (U)中的三个构件,若使得
则称并行构件PMA,PMB进行了一次同步嵌套
运算,记作
[0066] 三、代数构件完整性证明
[0067] 软件系统是一个完整的系统,因此,用来描述软件系统代数构件间的调用、嵌套和包含三种运算关系同样必须构成完整的代数系统,只有这三种运算关系够成的是一个完整的代数系统,才能利用调用、嵌套和包含三种运算关系,来将任意的软件系统抽象成代数构件表达式的形式。因此,这一部分主要用来证明调用、嵌套和包含三种运算关系能够构成完整的代数系统。
[0068] 定义8构件运算的封闭性
[0069] 若软件系统S中的任意代数构件对调用、包含和嵌套三种运算关系所生成的代数构件依然属于这个软件系统,则称构件运算是封闭的。
[0070] 定义9构件运算的完整性
[0071] 如构件运算满足以下两个条件:
[0072] (1)构件运算具有封闭性;
[0073] (2)任意软件系统的结构拓扑图均能用代数构件和代数构件间的调用、包含和嵌套三种运算关系表示;
[0074] 则称构件运算具有完整性。
[0075] 定理1:设PMA,PMB是论域Dom(U)中的两个构件,如果A,B满足下列条件:
[0076]
[0077] 则称构件PMA,PMB相等,记作PMA=PMB
[0078] 定理2:假设软件系统S中存在任意两个不同的代数构件PMA和PMB,那么这两个代数构件的调用运算 嵌套运算 包含运算(⊙)也都是软件系统S的代数构件,即PMA⊙PMB组成的代数构件均属于软件系统S。
[0079] 证明以调用运算为例,两种运算同理可证。
[0080] 根据定义,如果把 当成是一个整体,有
[0081]
[0082] 根据定理2可知, 仍输入软件系统S,证毕。
[0083] 定理3:假设软件系统S中存在任意n个不同的代数构件PM1,PM2…PMn,那么这n个代数构件的调用运算 嵌套运算 包含运算(⊙)也都是软件系统S的代数构件,即PM1⊙PM2⊙…⊙PMn组成的代数构件均属于软件系统S。
[0084] 根据,由于对于任意的代数构件Oi,Pj,Qk均有Oi∈SC,Pj∈SC,Qk∈SC,所以由上述性质可知, Oi ⊙ Pj, Oi ⊙ Qk, Pj ⊙ Qk,证毕。
[0085] 定理4任意一个软件系统的结构拓扑图的代数表达式都可以表示成下面的标准型:
[0086]其中,PMi,PMj∈PM,PMi≠PMj,i,j=1,2,3,....,n
[0087]
[0088] 证明:用归纳法证明,假设m=0时,假设m=0时,k0=1,km=0,m=1,2,3,…,n成立,此时 系统由两个构件组成,构件间的运算是调用运算,符合标准型。
[0089] 特别的,若 系统由一个构件组成,初始情况下,若PM1、PM2、PM3是嵌套运算 则系统由三构件组成,也
符合标准型。
[0090] 假设m=n-1,km=1,m=0,1,…,n-1时公示成立,证明m=n时公式也成立。
[0091] 即
[0092]成立时,证明
成立
[0093] 1)当PMi,PMj间是调用、包含和同步嵌套运算或时,显然成
立,因为他们就是标准型中的运算
[0094] 2)当PMi,PMj间是异步嵌套运算时,根据公式,因为
[0095] 所以
[0096] 所以可以转换成标准型,等式依然成立。
[0097] 证毕。
[0098] 由定义9可知,若想证明构件运算的完整性,需要证明构件运算具有封闭性且任意软件系统的结构拓扑图均能用代数构件和代数构件间的调用、包含和嵌套三种运算关系表示,由定理3、4可证明构件运算的完整性,由定理5可证明任意一个软件系统的结构拓扑图的代数表达式都可以表示成一个标准型,所以得证构件运算具有完整性。
[0099] 四、具体表示时,将软件系统根据功能区分成不同的模块,每个模块表达为一个代数构件;这里的表达采用ADL语言,对代数构件进行描述,形成XML文件。
[0100] ADL是用语言学方法对体系结构进行形式化描述所得到的结果,和非形式化描述的方框和线条图不同,用形式化描述的体系结构具有严谨、一致、可分析性强等特点,而非形式化的图和文本不能描述系统期望的存在于构件之间的接口,不能描述不同组成系统的组合关系的意义。这种描述方法难以被开发人员理解,难以适用进行形式化分析和模拟,缺乏相应的支持工具,更不能用来分析其一致性和完整性。典型的ADL有:ACME、Aesop、C2、Darwin、MetaH、Rapide、SADL、UniCon、Weaves、Wright、ABC/ADL等。不同的ADL的特点不尽相同,Wright主要用于建模和分析并行系统的动态行为。
[0101] 本发明中我们采用北京大学梅宏教授提出了一种基于XML的体系结构描述语言ABC/ADL对源代码进行描述。ABC/ADL具备大多数ADL描述软件系统高层结构的能力,还支持系统的逐步精化与演化,并支持系统的自动化组装和验证。采用数据互操作标准XML作为元语言不仅使ABC/ADL具有与其他ADL的互操作性,还有助于增强代数构件的可理解性和构件复用性,使得采用构件的方式进行软件描述的整个过程更加严谨。使用XML定义建模元素,XML本身就是互操作数据标准,使用ABC/ADL描述的设计阶段的体系结构和构件的信息可以保存在组装好的系统中并时刻被访问
[0102] 根据之前对于代数构件六元组的定义,用ABC/ADL语言将代数构件六元组描述成一个相应的框架,并结合一个具体的软件系统的实例对所得框架进行应用。针对一个具体的代数构件,用PM=(X,Y,D,C, η)的六元组进行表示,为了使代数构件的描述更加准确,ABC/ADL语言对六元组进行逐步精化。我们首先用标签对该代数构件所描述的模块进行表示,然后分别用标签和标签对于功能件和连接件进行划分。在功能件标签组中,用标签表示逻辑行为,其中又包含了n个不同的逻辑行为子集子集…….,用标签表示内部数据,用标签表示运算关系;在连接件标签组中,用标签表示逻辑行为,其中又包含了n个不同的逻辑行为子集子集…….,用表示检测器,其中可以定义不同的检测器,例如用来表示输入输出异常的检测器,用表示控制器。
[0103] 以一个宿舍管理系统为例,将整个系统按照功能划分为登录模块、学生信息管理模块、财务信息管理模块和来访信息管理模块,其中逻辑视图如图6所示。
[0104] 在此以登录模块为例,用ABC/ADL语言描述整个登录模块。整个登录模块以spring security框架为基础,spring security框架大概使用流程如下首先过滤器会调用自身的attemptAuthentication方法,从request中取出authentication,authentication是在org.springframework.security.web.context.SecurityContextPersistenceFilter过滤器中通过捕获用户提交的登录表单中的内容生成的一个org.springframework.security.core.Authentication接口实例;拿到authentication对象后,过滤器会调用ProviderManager类的authenticate方法,并传入该对象;ProviderManager类的authenticate方法中会调用类中的Listproviders集合中的各个AuthenticationProvider接口实现类中的authenticate(Authentication authentication)方法进行验证,由此可见,真正的验证逻辑是由各个AuthenticationProvider接口实现类来完成的。DaoAuthenticationProvider类是默认情况下注入的一个AuthenticationProvider接口实现类;provider的实现类在验证用户时,会调用userDetailsService的实现类的loadUserByUsername方法来获取用户信息,对其使用ADL语言描述后得到的xml图见图7。
[0105] 五、根据描述得到了XML文件,该XML文件中将软件系统中的每个模块被表示成一个代数构件。这里进一步基于代数构件间的运算关系(以代数构件为节点,以代数构件间的运算关系为边),得到整个软件系统的基于代数构件的拓扑复形。
[0106] 到本步骤,得到两个文件,一个是根据程序生成的XML文件,一个是根据XML文件的拓扑图。
[0107] 将宿舍管理系统中的其他模块用步骤四中的方法依次表示出来,再根据步骤二中的代数构件间的运算关系,可以得到如图8所示的,其中登录模块和学生信息管理模块、财务信息管理模块以及来访信息管理的关系为同步嵌套,而在学生管理模块中,添加模块和修改模块分别为同步嵌套,登录模块为异步嵌套。
[0108] 基于上述方法,本发明还提供了一种软件系统的代数构件表示装置,包括代数构件表达模块和拓扑图构建模块;
[0109] 代数构件表达模块,用于将软件系统根据功能区分成不同的模块,每个模块表达为一个代数构件;所述表达为:用ADL语言对代数构件进行描述,形成XML文件;
[0110] 拓扑图构建模块,用于以代数构件为节点,以代数构件间的运算关系为边,获得软件系统的代数拓扑图。
[0111] 上述代数构件表达模块采用六元组表示代数构件。采用ADL语言对模块进行描述形成XML文件的方式前文已经进行了详细描述,这里不赘述。
[0112] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈