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

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

Info

Publication number
CN102830976B
CN102830976B CN201210298318.3A CN201210298318A CN102830976B CN 102830976 B CN102830976 B CN 102830976B CN 201210298318 A CN201210298318 A CN 201210298318A CN 102830976 B CN102830976 B CN 102830976B
Authority
CN
China
Prior art keywords
software architecture
icm
association
direct correlation
dynamic evolution
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.)
Expired - Fee Related
Application number
CN201210298318.3A
Other languages
English (en)
Other versions
CN102830976A (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

Landscapes

  • Stored Programmes (AREA)

Abstract

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

Description

一种基于关联矩阵的软件体系结构动态演化方法
技术领域
本方法涉及计算机领域,尤其涉及一种基于关联矩阵的软件体系结构动态演化方法。
背景技术
随着计算机技术和网络技术的不断发展,Internet已成为当今主流的软件运行环境。在Internet开放环境下,软件的用户需求、计算环境等不断发生改变。当面对这些变化的需求和环境时,软件往往需要不断演化才能增强生命力,才能适者生存。软件演化已经成为当前软件生命周期中的重要组成部分。软件演化可分为静态演化和动态演化。支持动态演化的软件能够在运行时改变系统的实现,包括对系统进行功能完善、扩充、改变体系结构等,而不需重启或重编译系统。由于具有持续可用等优点,软件动态演化已逐渐成为软件工程领域研究的热点。
现代软件的复杂性决定了软件动态演化研究首先应从宏观层面入手,这样避免过早陷入琐碎的细节中。软件体系结构描述了软件系统的结构组成、组成元素之间的交互、连接,及约束等。软件体系结构通常以构件、连接件的形式描述系统的组成元素及其交互等信息,为人们在全局上把握软件的结构和演化提供了一条有效途径。如何在软件体系结构层次上刻画和分析演化已成为研究软件动态演化的关键问题。
虽然目前的研究者在软件体系结构动态演化方面做了一些工作,但大多数方法都是从软件体系结构动态演化的操作或规则入手,来描述或建模软件体系结构动态演化,很少从体系结构各元素间的关联及关联程度上来考虑软件体系结构的动态演化。
发明内容
本发明的目的是从软件体系结构各元素间的关联及关联程度出发,提供一种基于关联矩阵的软件体系结构动态演化方法。
本发明的技术方案它包括:
(1) 建立软件体系结构的直接关联矩阵;
(2) 建立软件体系结构的关联基数矩阵;
(3) 通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的各项需求;
首先用直接关联矩阵表示当前软件体系结构中各元素之间的直接关联关系,然后通过直接关联关系计算出各元素间的最短关联路径长度,以此构成关联基数矩阵,接着根据动态演化的各项需求,通过直接关联矩阵及关联基数矩阵的变换,实现软件体系结构的动态演化。
建立软件体系结构直接关联矩阵的步骤如下:
 根据关联方式不同,将软件体系结构中元素间的关联关系分为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与自身之间的关系,称为自关联关系;
 对于今后要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),由于它与其他软件体系结构元素没有任何关联,也即没有直接关联关系,故它在DIM中所对应的第k行和第k列的值均设为0。
建立软件体系结构关联基数矩阵的步骤如下:
 通过软件体系结构各元素间的直接关联关系,计算出体系结构元素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;
 将软件体系结构中各元素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。
软件体系结构动态演化包括三类基本操作:体系结构元素的添加、删除和替换,通过直接关联矩阵及关联基数矩阵的变换实现这三类基本操作的方法如下:
 添加体系结构元素动态演化的实现方法
假设当前软件体系结构现有的元素为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行列值则保持不变。
 删除体系结构元素动态演化的实现方法
假设当前软件体系结构现有的元素为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) 建立软件体系结构的直接关联矩阵;
按照以下步骤建立软件体系结构的直接关联矩阵:
 根据关联方式不同,将软件体系结构中元素间的关联关系分为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;
 对于今后可能需要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),由于它与其他软件体系结构元素没有任何关联,也即没有直接关联关系,故它在DIM中所对应的第k行和第k列的值均设为0。
由以上过程显然可知,软件体系结构的直接关联矩阵为对称矩阵。
(2) 建立软件体系结构的关联基数矩阵
按照以下步骤建立软件体系结构的关联基数矩阵:
 通过软件体系结构各元素间的直接关联关系,计算出体系结构元素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;
 将软件体系结构中各元素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。
由以上过程显然可知,软件体系结构的关联基数矩阵为对称矩阵。
 (3) 通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的相关操作
软件体系结构动态演化通常包括三类基本操作:体系结构元素如构件或连接件的添加、删除和替换。下面分别介绍这三种软件体系结构动态演化基本操作的实现:
 添加体系结构元素动态演化的实现
假设当前的软件体系结构如图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行列值则保持不变。
 删除体系结构元素动态演化的实现
假设当前的软件体系结构如图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所示,本方法的实现流程如下:
 输入系统当前的软件体系结构SA1,以及相关的软件体系结构动态演化需求;
 计算SA1的直接关联矩阵DIM1
 根据DIM1,计算SA1的关联基数矩阵ICM1
 根据用户的动态演化需求,按照添加体系结构元素动态演化、删除体系结构元素动态演化和替换体系结构元素动态演化三种情况,分别计算演化后的软件体系结构的直接关联矩阵DIM2及其关联基数矩阵ICM2
 DIM2及ICM2所表示的软件体系结构即为动态演化后的软件体系结构SA2

Claims (7)

1.一种基于关联矩阵的软件体系结构动态演化方法,其特征在于它包括:
(1) 建立软件体系结构的直接关联矩阵;
(2) 建立软件体系结构的关联基数矩阵;
(3) 通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的各项需求;
首先用直接关联矩阵表示当前软件体系结构中各元素之间的直接关联关系,然后通过直接关联关系计算出各元素间的最短关联路径长度,以此构成关联基数矩阵,接着根据动态演化的各项需求,通过直接关联矩阵及关联基数矩阵的变换,实现软件体系结构的动态演化;
建立软件体系结构直接关联矩阵的步骤如下:
 根据关联方式不同,将软件体系结构中元素间的关联关系分为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与自身之间的关系,称为自关联关系;
 对于今后要增加或替换的软件体系结构元素Ck(k=p+1, p+2, …, p+m),由于它与其他软件体系结构元素没有任何关联,也即没有直接关联关系,故它在DIM中所对应的第k行和第k列的值均设为0。
2.根据权利要求1所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于按照以下步骤建立软件体系结构的关联基数矩阵:
 通过软件体系结构各元素间的直接关联关系,计算出体系结构元素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;
 将软件体系结构中各元素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。
3.根据权利要求1所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于通过直接关联矩阵及关联基数矩阵的变换实现软件体系结构动态演化的相关操作:
软件体系结构动态演化包括三类基本操作:体系结构元素的添加、删除和替换;三种软件体系结构动态演化基本操作的实现分别如下:
 添加体系结构元素动态演化的实现;
 删除体系结构元素动态演化的实现;
 替换体系结构元素动态演化的实现。
4.根据权利要求3所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于添加体系结构元素动态演化的实现方法为:
假设当前软件体系结构现有的元素为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行列值则保持不变。
5.根据权利要求3所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于删除体系结构元素动态演化的实现方法为:
假设当前软件体系结构现有的元素为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行列值则保持不变。
6.根据权利要求3所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于替换体系结构元素动态演化的实现方法为:
假设当前软件体系结构现有的元素为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行列值则保持不变。
7.权利要求1—6任一所述的一种基于关联矩阵的软件体系结构动态演化方法,其特征在于所述方法的实现流程如下:
 输入系统当前的软件体系结构SA1,以及相关的软件体系结构动态演化需求;
 计算SA1的直接关联矩阵DIM1
 根据DIM1,计算SA1的关联基数矩阵ICM1
 根据用户的动态演化需求,按照添加体系结构元素动态演化、删除体系结构元素动态演化和替换体系结构元素动态演化三种情况,分别计算演化后的软件体系结构的直接关联矩阵DIM2及其关联基数矩阵ICM2
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 CN102830976A (zh) 2012-12-19
CN102830976B true 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)

Families Citing this family (3)

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

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
基于可达矩阵的软件体系结构演化波及效应分析;王映辉等;《软件学报》;20040831;第15卷(第8期);第1107-1115页 *

Also Published As

Publication number Publication date
CN102830976A (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
JP5758995B2 (ja) 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体
CN101645010B (zh) 代码自动生成系统及方法
CN109542907B (zh) 数据库缓存构建方法、装置、计算机设备以及存储介质
JP2009520268A5 (zh)
US10002143B2 (en) Computer implemented method for storing unlimited amount of data as a mind map in relational database systems
US9471651B2 (en) Adjustment of map reduce execution
JP2014096164A5 (zh)
CN105930479A (zh) 一种数据倾斜处理方法及装置
CN102830976B (zh) 一种基于关联矩阵的软件体系结构动态演化方法
US11429629B1 (en) Data driven indexing in a spreadsheet based data store
CN105718468A (zh) 一种数据仓库ods层的建立方法和装置
CN110647564A (zh) Hive建表方法、电子装置及计算机可读存储介质
US11514236B1 (en) Indexing in a spreadsheet based data store using hybrid datatypes
CN103440272A (zh) 一种数据库维护方法及装置
CN111163060B (zh) 一种基于应用组的转发方法、设备以及系统
CN103699627A (zh) 一种基于Hadoop集群的超大文件并行数据块定位方法
US10073657B2 (en) Data processing apparatus, data processing method, and computer program product, and entry processing apparatus
CN103617284A (zh) 一种数据字段扩展方法
CN103279328A (zh) 基于Haloop的BlogRank算法并行化处理的构建方法
CN103210389B (zh) 一种元数据的处理方法和装置
JP6665678B2 (ja) メタデータ登録方法、メタデータ登録プログラムおよびメタデータ登録装置
JP5516251B2 (ja) ソフトウェア導入状況管理装置、ソフトウェア導入状況管理方法およびプログラム
AU2016100156A4 (en) Data Structure, Model for Populating a Data Structure and Method of Programming a Processing Device Utilising a Data Structure
CN110717056B (zh) Noe4j图数据库的更新维护方法、装置及计算机可读存储介质
CN103279364B (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