发明名称 一种架构动态成熟度度量方法
摘要 本发明提出了一种架构动态成熟度度量方法,利用架构动态仿真、形式验证等方法度量架构的性能相关基本数据、功能相关基本数据,结合计算公式分别得出在性能方面该架构相对于用户预期的满足情况,反映为性能,该架构对于约束的满足情况,反映为功能正确率,以及架构可靠性等信息。进而根据性能、正确率和可靠性得到架构动态成熟度,以帮助用户发现架构存在的问题,改进架构质量。
申请公布号 CN105786514A 申请公布日期 2016.07.20
申请号 CN201610112152.X 申请日期 2016.02.29
申请人 东南大学 发明人 李必信;姜雨晴;廖力
分类号 G06F9/44(2006.01)I;G06F11/36(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 杨晓玲
主权项 一种架构动态成熟度度量方法,其特征在于,该方法包含以下步骤:步骤1)合格性检查:检查架构描述文档的目录结构是否包含进行DSAM度量所需的所有文档,如是,则进入步骤2),否则,结束本方法流程,所述架构描述文档包括构件图、部署图、用例图、顺序图、系统顺序图和约束文档;步骤2)收集元数据和中间数据,具体如下:a)获取性能数据:首先获取元数据:利用仿真技术获取架构的仿真结果,所述仿真结果包括最大运行时间、平均运行时间、最大响应时间、平均响应时间、最大内存占用量、单位时间的内存利用量、最大CPU占用量和单位时间的CPU占用量;然后获取中间数据:根据如下公式计算架构的性能Performance:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>P</mi><mi>e</mi><mi>r</mi><mi>f</mi><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>n</mi><mi>c</mi><mi>e</mi><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mo>(</mo><msub><mi>W</mi><mn>1</mn></msub><mo>&times;</mo><mfrac><mrow><mi>A</mi><mi>v</mi><mi>g</mi><mi>E</mi><mi>x</mi><mi>c</mi><mi>T</mi><mi>i</mi><mi>m</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>A</mi><mi>E</mi><mi>T</mi></mrow></mfrac><mo>+</mo><msub><mi>W</mi><mn>2</mn></msub><mo>&times;</mo><mfrac><mrow><mi>A</mi><mi>v</mi><mi>g</mi><mi>Re</mi><mi>s</mi><mi>T</mi><mi>i</mi><mi>m</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>A</mi><mi>R</mi><mi>T</mi></mrow></mfrac><mo>+</mo><msub><mi>W</mi><mn>3</mn></msub><mo>&times;</mo><mfrac><mrow><mi>M</mi><mi>e</mi><mi>m</mi><mi>U</mi><mi>s</mi><mi>e</mi><mi>U</mi><mi>n</mi><mi>i</mi><mi>t</mi><mi>T</mi><mi>i</mi><mi>m</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>M</mi><mi>U</mi><mi>U</mi><mi>T</mi></mrow></mfrac><mo>+</mo><msub><mi>W</mi><mn>4</mn></msub><mo>&times;</mo><mfrac><mrow><mi>C</mi><mi>P</mi><mi>U</mi><mi>U</mi><mi>s</mi><mi>e</mi><mi>U</mi><mi>n</mi><mi>i</mi><mi>t</mi><mi>T</mi><mi>i</mi><mi>m</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>C</mi><mi>U</mi><mi>U</mi><mi>T</mi></mrow></mfrac><mo>)</mo><mo>&times;</mo><mfrac><mn>1</mn><mn>4</mn></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><mo>(</mo><msub><mi>W</mi><mn>1</mn></msub><mo>&times;</mo><mfrac><mrow><mi>M</mi><mi>a</mi><mi>x</mi><mi>E</mi><mi>x</mi><mi>c</mi><mi>T</mi><mi>i</mi><mi>m</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>M</mi><mi>E</mi><mi>T</mi></mrow></mfrac><mo>+</mo><msub><mi>W</mi><mn>2</mn></msub><mo>&times;</mo><mfrac><mrow><mi>M</mi><mi>a</mi><mi>x</mi><mi>Re</mi><mi>s</mi><mi>T</mi><mi>i</mi><mi>m</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>M</mi><mi>R</mi><mi>T</mi></mrow></mfrac><mo>+</mo><msub><mi>W</mi><mn>3</mn></msub><mo>&times;</mo><mfrac><mrow><mi>M</mi><mi>a</mi><mi>x</mi><mi>M</mi><mi>e</mi><mi>m</mi><mi>U</mi><mi>s</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>M</mi><mi>M</mi><mi>U</mi></mrow></mfrac><mo>+</mo><msub><mi>W</mi><mn>4</mn></msub><mo>&times;</mo><mfrac><mrow><mi>M</mi><mi>a</mi><mi>x</mi><mi>C</mi><mi>P</mi><mi>U</mi><mi>U</mi><mi>s</mi><mi>e</mi></mrow><mrow><mi>E</mi><mi>p</mi><mi>M</mi><mi>C</mi><mi>U</mi></mrow></mfrac><mo>)</mo><mo>&times;</mo><mfrac><mn>1</mn><mn>4</mn></mfrac></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000931057150000011.GIF" wi="1913" he="222" /></maths>其中,MaxExcTime代表最大运行时间,即所有交互序列中,用户与系统交互的最长时间,AvgExcTime代表平均的运行时间,即所有交互序列所需要的平均时间;MaxResTime代表最大响应时间,即所有用户操作中,系统对用户的最大响应时间,AvgResTime代表平均的响应时间,即所有用户操作中,系统对用户的平均响应时间;MaxMemUse代表最大内存占用量,即所有交互序列执行过程中,内存最大占用量,MemUseUnitTime代表单位时间的内存利用量,即所有交互序列单位时间内存利用量;MaxCPUUse代表最大CPU占用量,即所有交互序列执行过程中,CPU最大占用量,CPUUseUnitTime代表单位时间的CPU占用量,即所有交互序列单位时间CPU利用量;EpAET表示用户期望的平均运行时间,EpMET表示用户期望的最大运行时间;EpART表示用户期望的平均响应时间,EpMRT表示用户期望的最大响应时间;EpMUUT表示用户期望的单位时间内存利用量,EpMMU表示用户期望的最大内存占用量;EpCUUT表示用户期望的单位时间CPU利用量,EpMCU表示用户期望的最大CPU占用量;W<sub>1</sub>,W<sub>2</sub>,W<sub>3</sub>和W<sub>4</sub>为权重参数,其中W<sub>1</sub>表示运行时间的权重,W<sub>2</sub>表示响应时间的权重,W<sub>3</sub>表示内存占用量的权重,W<sub>4</sub>表示CPU使用量的权重。并且,W<sub>1</sub>,W<sub>2</sub>,W<sub>3</sub>和W<sub>4</sub>的取值范围都是(0,1);b)获取正确率数据:首先获取元数据:利用形式验证方法,验证每个功能对应的顺序图是否满足约束条件,进一步统计获得不满足约束的功能数目,即错误功能数目;然后获取中间数据:根据如下公式计算正确率CorrectRate:<img file="FDA0000931057150000021.GIF" wi="662" he="123" />其中,正确功能数目表示满足约束条件的功能数目,总功能数目表示该架构所包含的功能总数;c)获取可靠性数据:首先获取元数据:使用数理统计或专家经验的方法,获取架构的参与者执行概率和各个构件连接件的失败概率;然后获取中间数据:根据如下公式计算架构可靠性Reliability:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>Re</mi><mi>l</mi><mi>i</mi><mi>a</mi><mi>b</mi><mi>i</mi><mi>l</mi><mi>i</mi><mi>t</mi><mi>y</mi><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mrow><mo>(</mo><msub><mi>ActorEP</mi><mi>i</mi></msub><mo>&times;</mo><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mo>(</mo><mrow><msub><mi>ucEP</mi><mi>j</mi></msub><mo>&times;</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><mo>&times;</mo><munderover><mo>&Sigma;</mo><mn>1</mn><mi>k</mi></munderover><mrow><mo>(</mo><mrow><munder><mo>&Pi;</mo><mi>p</mi></munder><msubsup><mi>component</mi><mi>p</mi><msub><mi>x</mi><mi>p</mi></msub></msubsup><mo>&times;</mo><munder><mo>&Pi;</mo><mi>q</mi></munder><msubsup><mi>component</mi><mi>q</mi><msub><mi>x</mi><mi>q</mi></msub></msubsup></mrow><mo>)</mo></mrow></mrow><mo>)</mo><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000931057150000022.GIF" wi="1885" he="158" /></maths>其中,component<sub>p</sub>是构件图中构件p的成功概率,x<sub>p</sub>是其执行次数;Connector<sub>q</sub>是构件图中每个连接件的成功概率,y<sub>q</sub>是其执行次数;K是构件图中与某个用例相关应用场景个数;ucEP<sub>j</sub>是用例j的执行概率,n是与某个用户相连的用例的个数;ActorEP<sub>i</sub>是用户i使用系统的概率,m是用户的个数;步骤3)根据下式计算架构动态成熟度DSAM:DSAM=(CorrectRate×Reliability)<sup>Performance</sup>。
地址 211189 江苏省南京市江宁区东南大学路2号