CN102830976A - 一种基于关联矩阵的软件体系结构动态演化方法 - Google Patents

一种基于关联矩阵的软件体系结构动态演化方法 Download PDF

Info

Publication number
CN102830976A
CN102830976A CN2012102983183A CN201210298318A CN102830976A CN 102830976 A CN102830976 A CN 102830976A CN 2012102983183 A CN2012102983183 A CN 2012102983183A CN 201210298318 A CN201210298318 A CN 201210298318A CN 102830976 A CN102830976 A CN 102830976A
Authority
CN
China
Prior art keywords
software architecture
icm
elements
direct correlation
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012102983183A
Other languages
English (en)
Other versions
CN102830976B (zh
Inventor
徐洪珍
王晓燕
陈利平
宋文琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Institute of Technology
Original Assignee
East China Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by East China Institute of Technology filed Critical East China Institute of Technology
Priority to CN201210298318.3A priority Critical patent/CN102830976B/zh
Publication of CN102830976A publication Critical patent/CN102830976A/zh
Application granted granted Critical
Publication of CN102830976B publication Critical patent/CN102830976B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于关联矩阵的软件体系结构动态演化方法,其特征在于它包括:建立软件体系结构的直接关联矩阵;建立软件体系结构的关联基数矩阵;通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的各项需求;本方法首先用直接关联矩阵表示当前软件体系结构中各元素之间的直接关联关系,然后通过直接关联关系计算出各元素间的最短关联路径长度,以此构成关联基数矩阵,接着根据动态演化的各项需求,通过直接关联矩阵及关联基数矩阵的变换,实现软件体系结构的动态演化。与现有技术相比,本发明的方法不仅可以增强软件体系结构元素动态演化关系的可追踪性,而且可以增强软件体系结构动态演化的可控性,方便计算机进行处理和实现。

Description

一种基于关联矩阵的软件体系结构动态演化方法
技术领域
本方法涉及计算机领域,尤其涉及一种基于关联矩阵的软件体系结构动态演化方法。
背景技术
随着计算机技术和网络技术的不断发展,Internet已成为当今主流的软件运行环境。在Internet开放环境下,软件的用户需求、计算环境等不断发生改变。当面对这些变化的需求和环境时,软件往往需要不断演化才能增强生命力,才能适者生存。软件演化已经成为当前软件生命周期中的重要组成部分。软件演化可分为静态演化和动态演化。支持动态演化的软件能够在运行时改变系统的实现,包括对系统进行功能完善、扩充、改变体系结构等,而不需重启或重编译系统。由于具有持续可用等优点,软件动态演化已逐渐成为软件工程领域研究的热点。
现代软件的复杂性决定了软件动态演化研究首先应从宏观层面入手,这样避免过早陷入琐碎的细节中。软件体系结构描述了软件系统的结构组成、组成元素之间的交互、连接,及约束等。软件体系结构通常以构件、连接件的形式描述系统的组成元素及其交互等信息,为人们在全局上把握软件的结构和演化提供了一条有效途径。如何在软件体系结构层次上刻画和分析演化已成为研究软件动态演化的关键问题。
虽然目前的研究者在软件体系结构动态演化方面做了一些工作,但大多数方法都是从软件体系结构动态演化的操作或规则入手,来描述或建模软件体系结构动态演化,很少从体系结构各元素间的关联及关联程度上来考虑软件体系结构的动态演化。
发明内容
本发明的目的是从软件体系结构各元素间的关联及关联程度出发,提供一种基于关联矩阵的软件体系结构动态演化方法。
本发明的技术方案它包括:
(1) 建立软件体系结构的直接关联矩阵;
(2) 建立软件体系结构的关联基数矩阵;
(3) 通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的各项需求;
首先用直接关联矩阵表示当前软件体系结构中各元素之间的直接关联关系,然后通过直接关联关系计算出各元素间的最短关联路径长度,以此构成关联基数矩阵,接着根据动态演化的各项需求,通过直接关联矩阵及关联基数矩阵的变换,实现软件体系结构的动态演化。
建立软件体系结构直接关联矩阵的步骤如下:
Figure 2012102983183100002DEST_PATH_IMAGE001
 根据关联方式不同,将软件体系结构中元素间的关联关系分为3类:直接关联、间接关联和自关联; 
 将软件体系结构中各元素间的直接关联关系用直接关联矩阵DIM进行表示,其中,对软件体系结构中现有各元素Ci(i=1, 2, …, p),如果Ci和Cj有直接关联关系,则DIM(i, j)=1,否则DIM(i, j)=0,i=1, 2, …, p,j=1, 2, …, p;
其中,如果软件体系结构元素i≠j,Ci和Cj之间是直接相连,则称Ci和Cj之间存在直接关联关系,如果Ci和Cj之间通过其他元素相连,则称Ci和Cj之间存在间接关联关系,Ci与自身之间的关系,称为自关联关系;
Figure 2012102983183100002DEST_PATH_IMAGE003
 对于今后要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),由于它与其他软件体系结构元素没有任何关联,也即没有直接关联关系,故它在DIM中所对应的第k行和第k列的值均设为0。
建立软件体系结构关联基数矩阵的步骤如下:
Figure 181120DEST_PATH_IMAGE001
 通过软件体系结构各元素间的直接关联关系,计算出体系结构元素Ci关联到Cj的最短路径长度,定义为它们之间的关联基数,i=1, 2, …, n,j=1, 2, …, n,n=p+m;并规定:如果Ci与Cj之间没有任何关联关系,则它们之间的关联基数为0,如果Ci与Cj之间是自关联关系,则它们之间的关联基数为1;如果Ci与Cj之间是直接关联关系,则它们之间的关联基数为2;如果Ci与Cj之间是间接关联关系,且Ci与Cj之间的最短关联路径中含有元素Ck,Ci与Ck之间的关联基数为r,Ck与Cj之间是直接关联,则Ci与Cj之间的关联基数为r+1;
Figure 420472DEST_PATH_IMAGE002
 将软件体系结构中各元素Ci(i=1, 2, …, n)间的关联基数用关联基数矩阵ICM进行表示,其中ICM(i, j)表示体系结构元素Ci和Cj之间的关联基数,i=1, 2, …, n,j=1, 2, …, n;
 对于今后要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),其在ICM中所对应的第k行和第k列中,ICM(k, k)=1,ICM(k, j)=0且ICM(j, k)=0,j=1, 2, …, p+m且j≠k。
软件体系结构动态演化包括三类基本操作:体系结构元素的添加、删除和替换,通过直接关联矩阵及关联基数矩阵的变换实现这三类基本操作的方法如下:
Figure 168165DEST_PATH_IMAGE001
 添加体系结构元素动态演化的实现方法
假设当前软件体系结构现有的元素为C1、C2和C3,且C1和C2、C2和C3之间有直接关联关系,从而C1和C3之间存在间接关联关系;元素C4和C5表示将来需要进行添加或替换的软件体系结构元素,它们与现有的元素C1、C2和C3之间没有任何关联;现假设有一动态演化需求,要求添加元素C4到当前软件体系结构中,并实现与C3的直接关联,则对该软件体系结构增加元素C4的动态演化过程为,经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2、C3和C4,且C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,元素C5仍然表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联;该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换为:动态演化后,因为C3和C4之间存在直接关联关系,故DIM(3,4)=1以及DIM(4,3)=1,且其关联基数ICM(3,4)=2, ICM(4,3)=2;又因为动态演化后,ICM(1,3)=3保持不变,且C3和C4之间存在直接关联,故ICM(1,4)=3+1=4且ICM(4,1)= 4;同理,ICM(2,4)= 3,ICM(4,2)= 3,其他的DIM和ICM行列值则保持不变。
Figure 475650DEST_PATH_IMAGE002
 删除体系结构元素动态演化的实现方法
假设当前软件体系结构现有的元素为C1、C2、C3和C4,且C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,元素C5表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联;现假设有一动态演化需求,要求删除当前软件体系结构现有元素C4,则对该软件体系结构删除元素C4的动态演化过程为,经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2和C3,且C1和C2、C2和C3之间有直接关联关系,从而C1和C3之间有间接关联关系,元素C4、C5表示将来需要进行添加或替换的软件体系结构元素,它们与现有的软件体系结构元素C1、C2和C3之间没有任何关联;该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换为:动态演化后,因为C4和C1、C2、C3之间不再存在任何关联,故DIM的第4行和第4列均变为0,且ICM(1,4)=0以及ICM(4,1)=0,ICM(2,4)=0以及ICM(4,2)=0,ICM(3,4)=0以及ICM(4,3)=0,其他的DIM和ICM行列值则保持不变。
 替换体系结构元素动态演化的实现方法
假设当前软件体系结构现有的元素为C1、C2、C3和C4,且C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,元素C5表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联;现假设有一动态演化需求,要求用元素C5替换现有元素C4,则该动态演化过程为,经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2、C3和C5,且C1和C2、C2和C3、C3和C5之间有直接关联关系,从而C1和C3、C2和C5、C1和C5之间有间接关联关系,元素C4表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C5之间没有任何关联;该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换为:动态演化后,因为C4和其他元素之间不再存在任何关联关系,所以DIM的第4行和第4列均变为0,且ICM(4,4)=1,ICM(i,4)=0以及ICM(4,i)=0,i=1,2,3,5;又因为C3和C5之间存在直接关联关系,故DIM(3,5)=1以及DIM(5,3)=1,且ICM(3,5)=2以及ICM(5,3)=2;又ICM(1,3)=3,且C3和C5之间存在直接关联,故ICM(1,5)=4以及ICM(5,1)=4;同理,ICM(2,5)=3以及ICM(5,2)=3,其他的DIM和ICM行列值则保持不变。
本发明的优点是:
与现有技术相比,本发明的方法不仅可以增强软件体系结构元素动态演化关系的可追踪性,而且可以增强软件体系结构动态演化的可控性。另外,采用基于关联矩阵及其变换的软件体系结构动态演化方法,方便计算机进行处理和实现。
附图说明
图1是本发明的流程图。
图2是本发明中增加体系结构元素动态演化的示意图。
图3是本发明中增加体系结构元素动态演化对应的直接关联矩阵及关联基数矩阵变换图。
图4是本发明中删除体系结构元素动态演化的示意图。
图5是本发明中删除体系结构元素动态演化对应的直接关联矩阵及关联基数矩阵变换图。
图6是本发明中替换体系结构元素动态演化的示意图。
图7是本发明中替换体系结构元素动态演化对应的直接关联矩阵及关联基数矩阵变换图。
具体实施方式
本发明通过下面的实施例可以对本发明作进一步的描述,然而,本发明的范围并不限于下述实施例。
实施例1:为了矩阵处理方便,本发明假定,软件体系结构动态演化过程中所有可能需要添加、删除或者替换的体系结构元素如构件或连接件事先已经知道。下面将对本发明的实施方式进行详细说明。
(1) 建立软件体系结构的直接关联矩阵;
按照以下步骤建立软件体系结构的直接关联矩阵:
Figure 163300DEST_PATH_IMAGE001
 根据关联方式不同,将软件体系结构中元素间的关联关系分为3类:直接关联、间接关联和自关联,其中,如果软件体系结构元素Ci和Cj(i≠j)之间是直接相连的,则称Ci和Cj之间存在直接关联关系,如果Ci和Cj之间通过其他元素相连,则称Ci和Cj之间存在间接关联关系,Ci与自身之间的关系,称为自关联关系;
 将软件体系结构中各元素间的直接关联关系用直接关联矩阵DIM进行表示,其中,对软件体系结构中现有各元素Ci(i=1, 2, …, p),如果Ci和Cj有直接关联关系,则DIM(i, j)=1,否则DIM(i, j)=0,i=1, 2, …, p,j=1, 2, …, p;
Figure 883311DEST_PATH_IMAGE003
 对于今后可能需要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),由于它与其他软件体系结构元素没有任何关联,也即没有直接关联关系,故它在DIM中所对应的第k行和第k列的值均设为0。
由以上过程显然可知,软件体系结构的直接关联矩阵为对称矩阵。
(2) 建立软件体系结构的关联基数矩阵
按照以下步骤建立软件体系结构的关联基数矩阵:
Figure 893993DEST_PATH_IMAGE001
 通过软件体系结构各元素间的直接关联关系,计算出体系结构元素Ci关联到Cj的最短路径长度,定义为它们之间的关联基数,i=1, 2, …, n,j=1, 2, …, n,n=p+m。本发明规定,如果Ci与Cj之间没有任何关联关系,则它们之间的关联基数为0,如果Ci与Cj之间是自关联关系,则它们之间的关联基数为1。如果Ci与Cj之间是直接关联关系,则它们之间的关联基数为2。如果Ci与Cj之间是间接关联关系,且Ci与Cj之间的最短关联路径中含有元素Ck,Ci与Ck之间的关联基数为r,Ck与Cj之间是直接关联,则Ci与Cj之间的关联基数为r+1;
Figure 796702DEST_PATH_IMAGE002
 将软件体系结构中各元素Ci(i=1, 2, …, n)间的关联基数用关联基数矩阵ICM进行表示,其中ICM(i, j)表示体系结构元素Ci和Cj之间的关联基数,i=1, 2, …, n,j=1, 2, …, n;
Figure 892834DEST_PATH_IMAGE003
 对于今后可能需要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),其在ICM中所对应的第k行和第k列中,ICM(k, k)=1,ICM(k, j)=0且ICM(j, k)=0,j=1, 2, …, p+m且j≠k。
由以上过程显然可知,软件体系结构的关联基数矩阵为对称矩阵。
 (3) 通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的相关操作
软件体系结构动态演化通常包括三类基本操作:体系结构元素如构件或连接件的添加、删除和替换。下面分别介绍这三种软件体系结构动态演化基本操作的实现:
Figure 604438DEST_PATH_IMAGE001
 添加体系结构元素动态演化的实现
假设当前的软件体系结构如图2左边(箭头左边)所示,其中当前软件体系结构中现有的元素为C1、C2和C3,C1和C2、C2和C3之间的连线表示C1和C2、C2和C3之间有直接关联关系,从而C1和C3之间存在间接关联关系。孤立元素C4和C5表示将来需要进行添加或替换的软件体系结构元素,它们与现有的软件体系结构元素C1、C2和C3之间没有任何关联。该当前软件体系结构的直接关联矩阵DIM和关联基数矩阵ICM如图3左边所示,这里以DIM和ICM的第一行为例说明其表示方法,其他的DIM或ICM行表示类似。DIM(1,2)=1表示C1和C2之间有直接关联关系;DIM(1,i)=0,i=1,3,4,5,表示C1和其他元素(C2除外)之间没有直接关联关系;C1和C1之间是自关联,故ICM(1,1)=1;C1和C2之间是直接关联,故ICM(1,2)=2;ICM(1,2)=2且C2和C3之间是直接关联,故ICM(1,3)=2+1=3;C1和C4、C5之间没有关联,故ICM(1,4)=0,ICM(1,5)=0。
现假设有一动态演化需求,要求添加元素C4到当前软件体系结构中,并实现与C3的直接关联,则对该软件体系结构增加元素C4的动态演化过程如图2所示,其中图2右边(箭头右边)表示动态演化后的软件体系结构示意图,即经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2、C3和C4,且C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,孤立元素C5表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联。该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换如图3所示,动态演化后的直接关联矩阵DIM和关联基数矩阵ICM如图3右边所示。动态演化前,由于C3和C4之间不存在任何关联,故DIM(3,4)=0,且关联基数ICM(3,4)=0,动态演化后,C3和C4之间存在直接关联,故DIM(3,4)=1以及DIM(4,3)=1,且其关联基数ICM(3,4)=2,ICM(4,3)=2;又因为动态演化后,ICM(1,3)=3保持不变,且C3和C4之间存在直接关联,故ICM(1,4)=3+1=4且ICM(4,1)= 4;同理,ICM(2,4)= 3,ICM(4,2)= 3,其他的DIM和ICM行列值则保持不变。
Figure 469626DEST_PATH_IMAGE002
 删除体系结构元素动态演化的实现
假设当前的软件体系结构如图4左边所示,其中当前软件体系结构中现有的元素为C1、C2、C3和C4,C1和C2、C2和C3、C3和C4之间的连线表示C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,孤立元素C5表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联。该当前软件体系结构的直接关联矩阵DIM和关联基数矩阵ICM如图5左边所示,这里以DIM和ICM的第二行为例说明其表示方法,其他的DIM或ICM行表示类似。DIM(2,1)=1、DIM(2,3)=1表示C2和C1、C2和C3之间有直接关联关系;DIM(2,i)=0,i=2,4,5,表示C2和C2、C4、C5之间没有直接关联关系;C2和C1之间是直接关联,故ICM(2,1)=2;C2和C2之间是自关联,故ICM(2,2)=1,又C2和C3之间是直接关联,故ICM(2,3)=2;ICM(2,3)=2且C3和C4之间是直接关联,故ICM(2,4)=3;C2和C5之间没有任何关联,故ICM(2,5)=0。
现假设有一动态演化需求,要求删除当前软件体系结构现有元素C4,则对该软件体系结构删除元素C4的动态演化过程如图4所示,其中图4右边表示动态演化后的软件体系结构示意图,即经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2和C3,且C1和C2、C2和C3之间有直接关联关系,从而C1和C3之间有间接关联关系,孤立元素C4、C5表示将来需要进行添加或替换的软件体系结构元素,它们与现有的软件体系结构元素C1、C2和C3之间没有任何关联。该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换如图5所示,动态演化后的直接关联矩阵DIM和关联基数矩阵ICM如图5右边所示。经过该动态演化后,因为C4和C1、C2、C3之间不再存在任何关联,故DIM的第4行和第4列均变为0,且ICM(1,4)=0以及ICM(4,1)=0,ICM(2,4)=0以及ICM(4,2)=0,ICM(3,4)=0以及ICM(4,3)=0,其他的DIM和ICM行列值则保持不变。
 替换体系结构元素动态演化的实现
假设当前的软件体系结构如图6左边所示,现假设有一动态演化需求,要求对该软件体系结构用元素C5替换现有元素C4,则该动态演化过程如图6所示,其中图6右边表示动态演化后的软件体系结构示意图,即经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2、C3和C5,且C1和C2、C2和C3、C3和C5之间有直接关联关系,从而C1和C3、C2和C5、C1和C5之间有间接关联关系,孤立元素C4表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C5之间没有任何关联。该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换如图7所示,动态演化后的直接关联矩阵DIM和关联基数矩阵ICM如图7右边所示。经过该动态演化后,因为C4和其他元素之间不再存在任何关联关系,所以DIM的第4行和第4列均变为0,且ICM(4,4)=1,ICM(i,4)=0以及ICM(4,i)=0,i=1,2,3,5;又因为C3和C5之间存在直接关联关系,故DIM(3,5)=1以及DIM(5,3)=1,且ICM(3,5)=2以及ICM(5,3)=2;又因为ICM(1,3)=3,且C3和C5之间存在直接关联,故ICM(1,5)=4以及ICM(5,1)=4;同理,ICM(2,5)=3以及ICM(5,2)=3,其他的DIM和ICM行列值则保持不变。
(4) 如图1所示,本方法的实现流程如下:
Figure 129594DEST_PATH_IMAGE001
 输入系统当前的软件体系结构SA1,以及相关的软件体系结构动态演化需求;
Figure 379310DEST_PATH_IMAGE002
 计算SA1的直接关联矩阵DIM1
Figure 302267DEST_PATH_IMAGE003
 根据DIM1,计算SA1的关联基数矩阵ICM1
Figure 612025DEST_PATH_IMAGE004
 根据用户的动态演化需求,按照添加体系结构元素动态演化、删除体系结构元素动态演化和替换体系结构元素动态演化三种情况,分别计算演化后的软件体系结构的直接关联矩阵DIM2及其关联基数矩阵ICM2
Figure 2012102983183100002DEST_PATH_IMAGE005
 DIM2及ICM2所表示的软件体系结构即为动态演化后的软件体系结构SA2

Claims (8)

1.一种基于关联矩阵的软件体系结构动态演化方法,其特征在于它包括:
(1) 建立软件体系结构的直接关联矩阵;
(2) 建立软件体系结构的关联基数矩阵;
(3) 通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的各项需求;
首先用直接关联矩阵表示当前软件体系结构中各元素之间的直接关联关系,然后通过直接关联关系计算出各元素间的最短关联路径长度,以此构成关联基数矩阵,接着根据动态演化的各项需求,通过直接关联矩阵及关联基数矩阵的变换,实现软件体系结构的动态演化。
2.根据权利要求1所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于建立软件体系结构直接关联矩阵的步骤如下:
Figure 2012102983183100001DEST_PATH_IMAGE001
 根据关联方式不同,将软件体系结构中元素间的关联关系分为3类:直接关联、间接关联和自关联; 
 将软件体系结构中各元素间的直接关联关系用直接关联矩阵DIM进行表示,其中,对软件体系结构中现有各元素Ci(i=1, 2, …, p),如果Ci和Cj有直接关联关系,则DIM(i, j)=1,否则DIM(i, j)=0,i=1, 2, …, p,j=1, 2, …, p;
其中,如果软件体系结构元素i≠j,Ci和Cj之间是直接相连,则称Ci和Cj之间存在直接关联关系,如果Ci和Cj之间通过其他元素相连,则称Ci和Cj之间存在间接关联关系,Ci与自身之间的关系,称为自关联关系;
Figure 2012102983183100001DEST_PATH_IMAGE003
 对于今后要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),由于它与其他软件体系结构元素没有任何关联,也即没有直接关联关系,故它在DIM中所对应的第k行和第k列的值均设为0。
3.根据权利要求1所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于按照以下步骤建立软件体系结构的关联基数矩阵:
Figure 202091DEST_PATH_IMAGE001
 通过软件体系结构各元素间的直接关联关系,计算出体系结构元素Ci关联到Cj的最短路径长度,定义为它们之间的关联基数,i=1, 2, …, n,j=1, 2, …, n,n=p+m;并规定:如果Ci与Cj之间没有任何关联关系,则它们之间的关联基数为0,如果Ci与Cj之间是自关联关系,则它们之间的关联基数为1;如果Ci与Cj之间是直接关联关系,则它们之间的关联基数为2;如果Ci与Cj之间是间接关联关系,且Ci与Cj之间的最短关联路径中含有元素Ck,Ci与Ck之间的关联基数为r,Ck与Cj之间是直接关联,则Ci与Cj之间的关联基数为r+1;
Figure 939103DEST_PATH_IMAGE002
 将软件体系结构中各元素Ci(i=1, 2, …, n)间的关联基数用关联基数矩阵ICM进行表示,其中ICM(i, j)表示体系结构元素Ci和Cj之间的关联基数,i=1, 2, …, n,j=1, 2, …, n;
Figure 524805DEST_PATH_IMAGE003
 对于今后要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),其在ICM中所对应的第k行和第k列中,ICM(k, k)=1,ICM(k, j)=0且ICM(j, k)=0,j=1, 2, …, p+m且j≠k。
4.根据权利要求1所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的相关操作:
软件体系结构动态演化包括三类基本操作:体系结构元素的添加、删除和替换;三种软件体系结构动态演化基本操作的实现分别如下:
Figure 954649DEST_PATH_IMAGE001
 添加体系结构元素动态演化的实现;
 删除体系结构元素动态演化的实现;
Figure 275659DEST_PATH_IMAGE003
 替换体系结构元素动态演化的实现。
5.根据权利要求4所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于添加体系结构元素动态演化的实现方法为:
假设当前软件体系结构现有的元素为C1、C2和C3,且C1和C2、C2和C3之间有直接关联关系,从而C1和C3之间存在间接关联关系;元素C4和C5表示将来需要进行添加或替换的软件体系结构元素,它们与现有的元素C1、C2和C3之间没有任何关联;现假设有一动态演化需求,要求添加元素C4到当前软件体系结构中,并实现与C3的直接关联,则对该软件体系结构增加元素C4的动态演化过程为,经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2、C3和C4,且C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,元素C5仍然表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联;该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换为:动态演化后,因为C3和C4之间存在直接关联关系,故DIM(3,4)=1以及DIM(4,3)=1,且其关联基数ICM(3,4)=2, ICM(4,3)=2;又因为动态演化后,ICM(1,3)=3保持不变,且C3和C4之间存在直接关联,故ICM(1,4)=3+1=4且ICM(4,1)= 4;同理,ICM(2,4)= 3,ICM(4,2)= 3,其他的DIM和ICM行列值则保持不变。
6.根据权利要求4所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于删除体系结构元素动态演化的实现方法为:
假设当前软件体系结构现有的元素为C1、C2、C3和C4,且C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,元素C5表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联;现假设有一动态演化需求,要求删除当前软件体系结构现有元素C4,则对该软件体系结构删除元素C4的动态演化过程为,经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2和C3,且C1和C2、C2和C3之间有直接关联关系,从而C1和C3之间有间接关联关系,元素C4、C5表示将来需要进行添加或替换的软件体系结构元素,它们与现有的软件体系结构元素C1、C2和C3之间没有任何关联;该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换为:动态演化后,因为C4和C1、C2、C3之间不再存在任何关联,故DIM的第4行和第4列均变为0,且ICM(1,4)=0以及ICM(4,1)=0,ICM(2,4)=0以及ICM(4,2)=0,ICM(3,4)=0以及ICM(4,3)=0,其他的DIM和ICM行列值则保持不变。
7.根据权利要求4所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于替换体系结构元素动态演化的实现方法为:
假设当前软件体系结构现有的元素为C1、C2、C3和C4,且C1和C2、C2和C3、C3和C4之间有直接关联关系,从而C1和C3、C2和C4、C1和C4之间有间接关联关系,元素C5表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C4之间没有任何关联;现假设有一动态演化需求,要求用元素C5替换现有元素C4,则该动态演化过程为,经过该动态演化后,当前软件体系结构中现有的元素变为C1、C2、C3和C5,且C1和C2、C2和C3、C3和C5之间有直接关联关系,从而C1和C3、C2和C5、C1和C5之间有间接关联关系,元素C4表示将来需要进行添加或替换的软件体系结构元素,它与现有的软件体系结构元素C1、C2、C3和C5之间没有任何关联;该软件体系结构动态演化对应的直接关联矩阵和关联基数矩阵相应的变换为:动态演化后,因为C4和其他元素之间不再存在任何关联关系,所以DIM的第4行和第4列均变为0,且ICM(4,4)=1,ICM(i,4)=0以及ICM(4,i)=0,i=1,2,3,5;又因为C3和C5之间存在直接关联关系,故DIM(3,5)=1以及DIM(5,3)=1,且ICM(3,5)=2以及ICM(5,3)=2;又ICM(1,3)=3,且C3和C5之间存在直接关联,故ICM(1,5)=4以及ICM(5,1)=4;同理,ICM(2,5)=3以及ICM(5,2)=3,其他的DIM和ICM行列值则保持不变。
8.权利要求1—7任一所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于所述方法的实现流程如下:
Figure 919130DEST_PATH_IMAGE001
 输入系统当前的软件体系结构SA1,以及相关的软件体系结构动态演化需求;
Figure 316613DEST_PATH_IMAGE002
 计算SA1的直接关联矩阵DIM1
Figure 45534DEST_PATH_IMAGE003
 根据DIM1,计算SA1的关联基数矩阵ICM1
Figure 124349DEST_PATH_IMAGE004
 根据用户的动态演化需求,按照添加体系结构元素动态演化、删除体系结构元素动态演化和替换体系结构元素动态演化三种情况,分别计算演化后的软件体系结构的直接关联矩阵DIM2及其关联基数矩阵ICM2
Figure 2012102983183100001DEST_PATH_IMAGE005
DIM2及ICM2所表示的软件体系结构即为动态演化后的软件体系结构SA2
CN201210298318.3A 2012-08-21 2012-08-21 一种基于关联矩阵的软件体系结构动态演化方法 Expired - Fee Related CN102830976B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210298318.3A CN102830976B (zh) 2012-08-21 2012-08-21 一种基于关联矩阵的软件体系结构动态演化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210298318.3A CN102830976B (zh) 2012-08-21 2012-08-21 一种基于关联矩阵的软件体系结构动态演化方法

Publications (2)

Publication Number Publication Date
CN102830976A true CN102830976A (zh) 2012-12-19
CN102830976B CN102830976B (zh) 2015-08-05

Family

ID=47334126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210298318.3A Expired - Fee Related CN102830976B (zh) 2012-08-21 2012-08-21 一种基于关联矩阵的软件体系结构动态演化方法

Country Status (1)

Country Link
CN (1) CN102830976B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279364A (zh) * 2013-06-19 2013-09-04 东华理工大学 一种分层软件体系结构的动态演化方法
CN106775915A (zh) * 2017-02-09 2017-05-31 东华理工大学 一种软件体系结构的动态演化优化方法
CN111580852A (zh) * 2020-04-29 2020-08-25 北京广利核系统工程有限公司 一种软件变更影响范围的识别方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963940A (zh) * 2010-10-26 2011-02-02 合肥工业大学 面向软件演化的可信性动态评估方法
CN102306298A (zh) * 2011-07-19 2012-01-04 北京航空航天大学 一种基于Wiki的图像分类体系动态演化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963940A (zh) * 2010-10-26 2011-02-02 合肥工业大学 面向软件演化的可信性动态评估方法
CN102306298A (zh) * 2011-07-19 2012-01-04 北京航空航天大学 一种基于Wiki的图像分类体系动态演化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王映辉等: "基于可达矩阵的软件体系结构演化波及效应分析", 《软件学报》, vol. 15, no. 8, 31 August 2004 (2004-08-31) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279364A (zh) * 2013-06-19 2013-09-04 东华理工大学 一种分层软件体系结构的动态演化方法
CN106775915A (zh) * 2017-02-09 2017-05-31 东华理工大学 一种软件体系结构的动态演化优化方法
CN111580852A (zh) * 2020-04-29 2020-08-25 北京广利核系统工程有限公司 一种软件变更影响范围的识别方法及系统
CN111580852B (zh) * 2020-04-29 2023-05-23 北京广利核系统工程有限公司 一种软件变更影响范围的识别方法及系统

Also Published As

Publication number Publication date
CN102830976B (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
Gunarathne et al. Scalable parallel computing on clouds using Twister4Azure iterative MapReduce
JP2019517043A5 (zh)
CN102129425B (zh) 数据仓库中大对象集合表的访问方法及装置
JP2014096164A5 (zh)
Deng et al. A three-term conjugate gradient algorithm for large-scale unconstrained optimization problems
EP2867785B1 (en) Method and apparatus for virtual machine interoperability
JP2008532154A5 (zh)
US20140101092A1 (en) Adjustment of map reduce execution
CN105930479A (zh) 一种数据倾斜处理方法及装置
JP2020531949A (ja) ブロックチェーン内のデータベース・ハッシュコードの遅延更新
CN103440167A (zh) Hadoop多作业环境下自学习反馈的任务调度方法
JP2007518174A5 (zh)
CN104881490A (zh) 一种web表单数据存取方法和系统
CN102830976A (zh) 一种基于关联矩阵的软件体系结构动态演化方法
US20150370869A1 (en) Content transformations using a transformation node cluster
CN112507284A (zh) 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置
CN102156659A (zh) 一种文件作业任务的调度方法及系统
CN105718468A (zh) 一种数据仓库ods层的建立方法和装置
CN107179895B (zh) 一种应用复合指令加快数据流结构中指令执行速度的方法
KR20210084220A (ko) 부분 판독/기입을 갖는 재구성 가능한 시스톨릭 어레이를 위한 시스템 및 방법
CN103699627A (zh) 一种基于Hadoop集群的超大文件并行数据块定位方法
CN103279328A (zh) 基于Haloop的BlogRank算法并行化处理的构建方法
Liu et al. A survey of speculative execution strategy in MapReduce
JP6665678B2 (ja) メタデータ登録方法、メタデータ登録プログラムおよびメタデータ登録装置
CN103279364A (zh) 一种分层软件体系结构的动态演化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150805

Termination date: 20170821