[发明专利]面向方面可信软件过程建模方法在审
申请号: | 201410557434.1 | 申请日: | 2014-10-20 |
公开(公告)号: | CN104267971A | 公开(公告)日: | 2015-01-07 |
发明(设计)人: | 张璇;王旭 | 申请(专利权)人: | 张璇 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 昆明大百科专利事务所 53106 | 代理人: | 何健 |
地址: | 650091 云南省*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明基于可信软件过程策略获取、可信软件过程元模型TEPMM、可信软件过程框架和可信方面合成方法,提出了面向方面可信软件过程建模方法。本发明提供一种根据可信软件需求获取过程策略并融入软件过程,实现可信软件过程建模的方法,解决现有软件过程不支持可信软件需求的问题。 | ||
搜索关键词: | 面向 方面 可信 软件 过程 建模 方法 | ||
【主权项】:
面向方面可信软件过程建模方法,其特征在于,包括下述步骤:1.1可信软件过程策略获取通过分析可信软件需求,基于可信软件非功能需求获取、建模与推理,获取满足可信软件需求的过程策略:1.1.1可信软件需求获取为了获取可信软件非功能需求中的可信关注点和软目标,基于模糊集合论和信息熵提出可信软件非功能需求的获取方法,通过收集可信软件利益相关者给出预期可信目标的非功能需求评估数据,使用信息熵对评估数据有效性进行筛选,待产生有效评估数据后用模糊排序方法综合权衡所有利益相关者的评估数据,从中获取可信关注点和软目标,具体获取方法如下:首先,使用梯形模糊数描述可信软件非功能需求的量化数值,在获取软件利益相关者对可信软件非功能需求的评估数据时,使用完全不重要AL(0,0,0.077,0.154;1)、不重要L(0.077,0.154,0.231,0.308;1),较不重要FL(0.231,0.308,0.385,0.462;1),中立M(0.385,0.462,0.538,0.615;1),较重要FH(0.538,0.615,0.692,0.769;1),重要H(0.692,0.769,0.846,0.923;1)和非常重要AH(0.846,0.923,1,1;1)的语言变量描述软件利益相关者评估各项可信软件非功能需求的重要程度;其次,为了对评估数据的有效性及客观性进行检查,基于信息熵提出评估数据有效性检查及综合权衡方法,具体包括如下三个步骤:步骤1.构造可信需求评估数据矩阵A:
其中:
为第j个利益相关者(1≤j≤m)对第i项非功能需求的评估数据,1≤i≤n;
表示矩阵A的第x列形成的列向量,
表示矩阵A的第y行形成的行向量,1≤y≤n;步骤2.基于软件利益相关者的评估数据计算熵值:![]()
对Hj做归一化处理:![]()
为了使计算值能够正向地反映利益相关者提供有效评估数据的贡献度,使用1‑θj表示其贡献度,再次对其进行归一化处理后得到各个利益相关者的贡献度:![]()
其中:0≤Ej≤1且ΣEj=1;Ej大则表明利益相关者j相对重要且贡献大;步骤3.计算综合后的可信需求评估数据,对于上述矩阵A,取
元素值的平均值:![]()
Wi是第i项非功能需求的重要程度的平均值;最后,基于Chen和Sanguansat’s的模糊排序方法对获取后的非功能需求进行排序;对于一组m个可信软件利益相关者(S1,S2,…,Sm),分别评估了n个可信软件非功能需求(C1,C2,…,Cn)的重要程度,基于信息熵的方法已经得到各项非功能需求的重要程度值平均值
,其中:‑∞<wi1≤wi2≤wi3≤wi4<∞,
且1≤i≤n,Wi的排序过程如下:转换每一个通用模糊数
为标准模糊数Wi*:![]()
其中:
1≤i≤n且1≤j≤4;计算正、负区域
和
它们是隶属函数
和
的梯形区域:![]()
![]()
![]()
![]()
![]()
![]()
计算每一个非功能需求Wi*的
及
值,它们分别表示正向及负向影响:![]()
![]()
计算每一个Wi*的排序值Score(Wi*):![]()
其中:Score(Wi*)∈[‑1,1]且1≤i≤kWi*的排序值Score(Wi*)越大,表明对应的非功能需求越重要,应将其确定为可信关注点,而对于排序值Score(Wi*)小的非功能需求,则应确定为软目标;1.1.2可信软件过程策略获取针对可信软件需求中的可信关注点,从过程控制角度提出实现可信关注点的过程策略,同时,考虑到非功能需求之间的相关关系,提出软件可信需求元模型TRMM(Trustworthy RequirementMeta‑Model),描述可信关注点的实现以及可信软件需求复杂的相关关系,同时,建立可信需求建模知识库以辅助建模者完成可信需求建模;这个知识库由可信关注点库和过程策略库构成:可信关注点库包含了利益相关者及对应的可信关注点,以及这些可信关注点的分解;过程策略库存储了可信活动及其对可信关注点和软目标的贡献,根据贡献选择约束规约即是选择合适的过程策略,解决可信软件非功能需求间的冲突关系;使用TRMM建模可信需求,是为了找出整体满足可信关注点的过程策略,但为了权衡冲突,使用可满足性问题求解方法,通过向后推理找出整体满足可信关注点的过程策略集合,如果找不到,显示导致不满足的矛盾,或在能够接受一定程度的矛盾的情况下找到可满足的过程策略集合;以下是生成可信需求SAT公式的算法:算法1.1可信需求SAT公式生成算法MakeSAT;设置初始状态、结点约束状态和可接受矛盾等级,将软件可信需求模型M=(N,R)转换为可信需求模型公式φModel,生成为可信需求SAT公式φ输入:M=(N,R).输出:φ.![]()
通过算法1.1,生成可信需求模型的SAT公式,为了实现可满足性问题求解,基于可满足性问题求解开源工具zChaff和YoonsuckChoe提供的公式转换脚本prop2cnf.py,提出可信需求可满足性推理算法,并开发工具TACD辅助推理;以下是可信需求可满足性求解算法:算法1.2可信需求可满足性求解算法Satisfiability;找出满足可信需求SAT公式φ的k个结点的状态标记L(ni),(i=1,…k)输入:M=(N,R).输出:结点初始状态Initial_Status(ni),结点求解后状态SAT_Status(ni),结点矛盾Inconsistency(ni).![]()
通过可满足性推理,得到可信软件过程策略,以下给出基于过程策略提出可信软件过程建模的方法:1.2可信软件过程建模基于软件演化过程建模方法,通过可信软件需求建模与推理获得的过程策略,提出面向方面的可信软件过程建模方法:1.2.1可信软件过程元模型及可信软件过程框架基于面向方面方法的思想,将实现可信关注点的过程策略中的可信活动按照不同粒度细化为过程通知和任务通知,在确定切点以及织入类型后分别定义为可信过程方面和可信任务方面,可信过程方面和可信任务方面统称为可信方面,将可信方面编织入软件演化过程,实现可信软件过程建模;可信软件过程建模方法基于软件演化过程框架和软件演化过程元模型EPMM提出可信软件过程框架和面向方面的可信软件过程元模型TEPMM(Trustworthy‑EPMM);首先,基于面向方面方法扩展软件演化过程框架得到可信软件过程框架;可信软件过程框架在原框架的四个层次进行扩展,在活动层,过程策略中定义的活动即为可信活动,可信活动根据粒度的不同可细化为任务层的任务通知和过程层的过程通知,在确定切点以及织入类型后分别定义为可信任务方面和可信过程方面;在任务层,对需要扩展的任务实施可信任务方面织入,织入后得到可信任务;在过程层,对需要扩展的软件过程实施可信过程方面织入,织入后得到可信过程;最后,在全局层,扩展织入了可信方面后的可信软件过程;其次,基于可信方面合成方法扩展EPMM得到可信软件过程元模型TEPMM;可信方面合成方法如下:1.2.2可信方面合成方法可信方面合成的核心是合成机制,合成机制根据合成规则将共享连接点上的多个可信方面融合为一个可信方面,然后织入基本模型的切点,因此,方面合成规则分为方面间融合规则和方面织入规则;基于方面合成规则,提出可信方面合成方法,并按照合成操作分为融合操作和织入操作两类;当多个可信方面需要在同一个连接点以同类型方式织入软件演化过程模型时,先把这些可信方面融合为一个可信方面,再将融合后的可信方面织入软件演化过程模型;在任务层,对于需要以同类型织入同一切点的可信任务方面,基于依赖关系分析,将存在依赖关系的任务转换为顺序融合关系和选择融合关系;以下是可信任务方面融合操作的算法:算法1.3可信任务方面融合操作算法Task_Aspect_Merging输入需在同一切点同类型织入的可信任务方面tAspectt1,…,tAspecttn,分析依赖性,对于存在依赖关系的任务构建任务依赖图TDG,然后转换为任务通知,对于没有依赖关系的任务,根据实际情况实施顺序融合或者选择融合:输入:tAspectt1=(idt1,adt1,pct1,type1),…,tAspecttn=(idtn,adtn,pctn,typen).输出:tAspectt=(idt,adt,pct,type),tAspectt1=(idt1,adt1,pct1,type1),…,tAspecttn=(idtn,adtn,pctn,typen).![]()
融合后,在同一切点就只有不同类型的可信任务方面需要织入,此时执行可信任务方面织入操作,可信任务方面的织入分为之前、之后和周围织入,分别对应任务2_断言功能的顺序织入和选择织入,织入算法如下所示:算法1.4可信任务方面织入算法Task_Weaving输入一个基本任务t=({Q1},{Q2},Mi,Mo)和一个可信任务方面tAspectt=(idt,adt,pct,type),在tAspectt定义的切点pct=({Q1},{Q2})处实施任务通知adt={({Qa},{Qb})}的织入操作:输入:t,tAspectt.输出:tt=({Qx},{Qy},Mi,Mo).
过程层建模时,首先对每一个切点的同类型可信过程方面实施融合操作,以下是可信过程方面融合操作的算法:算法1.5可信过程方面融合操作算法Process_Aspect_Merging对于同切点同类型织入的可信过程方面tAspectp1,…,tAspectpn,分析依赖关系,对于存在依赖关系的活动实施顺序和选择的融合操作,对于没有依赖关系的活动实施并发融合操作,输出融合后的可信过程方面tAspectp,修改存在不同连接点的可信过程方面tAspectp1,…,tAspectpn的切点定义:输入:tAspectp1=(idp1,adp1,pcp1,type1),…,tAspectpn=(idpn,adpn,pcpn,typen).输出:tAspectp=(idp,adp,pcp,type),tAspectp1=(idp1,adp1,pcp1,type1),…,tAspectpn=(idpn,adpn,pcpn,typen).![]()
当每一个切点上所有同类型方面完成融合操作后,实施可信过程方面织入操作,按照过程层切点定义,可信过程方面的织入分为条件织入、活动织入和弧织入;条件织入操作算法如下所示:算法1.6条件织入操作算法Condition_Weaving输入一个基本过程p=(C,A;F,M0)和一个可信过程方面tAspectp=(idp,adp,pcp,type),将tAspectp织入p的条件织入操作算法:输入:p,tAspectp.输出:tp=(C,A;F,M0).
活动织入操作定义了活动周围织入操作、迭代织入操作和并发织入操作,这三类织入操作如下所示:算法1.7活动织入算法Activity_Weaving输入一个基本过程p=(C,A;F,M0)和一个可信过程方面tAspectp=(idp,adp,pcp,type),将tAspectp织入p的活动织入操作算法:输入:p,tAspectp.输出:tp=(C,A;F,M0).![]()
![]()
弧织入操作算法如下所示:算法1.8弧织入操作算法Flow_Weaving输入一个基本过程p=(C,A;F,M0)和一个可信过程方面tAspectp=(idp,adp,pcp,type),将tAspectp织入p的弧织入操作算法:输入:p,tAspectp.输出:tp=(C,A;F,M0).
1.2.3面向方面可信软件过程建模方法基于可信软件过程策略获取、可信软件过程框架和可信方面合成方法,面向方面可信软件过程建模的流程如下:步骤1.过程策略获取针对可信软件需求提出基于模糊集合论和信息熵的可信软件非功能需求获取方法,参照NFR框架和i*模型提出可信需求元模型TRMM及基于知识库的可信需求建模方法,针对可信软件非功能需求间复杂的相关关系,基于可满足性问题求解方法,提出可信需求的可满足性向后推理方法,并通过推理获取可信软件过程策略;步骤2.活动层建模基于获得的可信软件过程策略中的可信活动实施可信活动建模,即在可信软件过程的活动层设计可信活动,定义可信活动的输入、输出、本地数据结构及活动体,按照分解粒度不同,将活动体定义为一个软件过程或者一个任务集合,并在此基础上,定义可信过程方面和可信任务方面;步骤3.任务层建模任务层建模是将可信任务方面织入软件演化过程模型;对于同切点同类型织入的可信任务方面,首先实施方面融合操作,如果可信任务方面的任务通知间有依赖关系则按照依赖关系实施融合,如果任务通知间没有依赖关系,建模者能够根据需要按照顺序或者选择结构实施融合;对于不同切点或者同切点但不同类型的可信任务方面,实施方面织入操作;步骤4.过程层建模过程层建模是将可信过程方面织入软件演化过程模型;对于同切点同类型织入的可信过程方面,首先实施方面融合操作,如果可信过程方面的过程通知间有依赖关系则按照依赖关系实施融合,如果过程通知间没有依赖关系,建模者能够按照并发结构实施融合;对于不同切点或者同切点但不同类型的可信过程方面,实施方面织入操作;步骤5.全局层建模过程层建模将产生新的可信过程,因此,全局层建模是识别所有的可信过程、软件过程以及过程之间的包含关系;通过全局层模型,建模者能够掌握原软件演化过程模型的变化以及新可信软件过程模型的整体架构;可信软件过程建模的第一步是通过可信需求推理出的过程策略确定扩展软件演化过程模型活动层的可信活动,并定义可信活动的输入、输出、本地数据结构和活动体;算法1.9可信活动建模算法Tactivity_Modelling可信活动的建模包括定义输入、输出、本地数据结构和活动体,活动体进一步分解为一个可信过程或者一个可信任务集合:输入:过程策略.输出:可信活动集合TA,可信任务方面集合TAspectt,可信过程方面TAspectp,A1.
与软件演化过程元模型中的活动一样,可信活动根据粒度不同能够细化为软件过程或者任务集合,它们分别被定义为可信过程方面和可信任务方面,并且,分别在过程层和任务层织入软件演化过程模型;任务层和过程层的建模本质上是将可信任务方面和可信过程方面织入软件演化过程元模型;建模过程的第一步是寻找每一个切点上需要织入的可信方面;如果某一个切点上只有一个可信方面需要织入,则基于切点定义调用可信方面织入算法;如果有多个可信方面需要织入同一切点,对于同切点同类型织入的可信方面,调用可信方面融合算法,保证有依赖关系的可信方面完整且正确地织入软件演化过程模型;对于同切点不同类型的可信方面,同样基于切点定义调用可信方面织入算法;算法1.10任务层建模算法Ttask_Modelling输入软件演化过程模型的任务集合T和可信任务方面集合TAspectt={tAspectt1,tAspectt2,…,tAspecttn},(n>0),任务层建模算法将TAspectt中所有可信任务方面织入T,生成可信任务集合TT:输入:T,TAspectt.输出:TT.
算法1.11过程层建模算法Tprocess_Modeling输入软件演化过程模型的软件过程集合P和可信过程方面集合TAspectp={tAspectp1,tAspectp2,…,tAspectpn},(n>0),过程层建模算法将TAspectp中所有可信过程方面织入P,生成可信过程集合TP:输入:P,TAspectp.输出:TP.![]()
与软件演化过程建模步骤相反,可信软件过程建模的全局层建模是在完成活动层、过程层和任务层建模之后实施;基于未织入可信方面的软件演化过程和织入了可信方面的可信软件过程,全局模型建模算法如下:算法1.12全局层建模算法Tglobal_Modelling输入可信过程方面集合TAspectp和软件演化过程集合P,调用过程层建模算法Tprocess_Modeling将TAspectp织入P,生成全集模型g=(P,TP,E):输入:P,TAspectp.输出:g.![]()
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于张璇,未经张璇许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410557434.1/,转载请声明来源钻瓜专利网。