当前位置: 首页 > 专利查询>青岛大学专利>正文

一种基于UML的软件架构复杂性度量方法技术

技术编号:16101764 阅读:62 留言:0更新日期:2017-08-29 22:30
本发明专利技术公开了一种基于UML的软件架构复杂性度量方法,包含UML数据采集模块、UML图元素分析模块、数据归一模块、架构元素分析模块、复杂性模型及算法模块、模型特征因子库;所述模型特征因子库与复杂性模型及算法模块连接,所述复杂性模型及算法模块与架构元素分析模块连接,所述架构元素分析模块与UML图元素分析模块连接,所述UML图元素分析模块与UML数据采集模块连接,所述UML数据采集模块、UML图元素分析模块、架构元素分析模块、复杂性模型及算法模块均与数据归一模块连接;本发明专利技术可以在软件过程的需求、分析、设计等多个阶段一致地使用,从良好设计的软件架构中计算得到,不仅可以反映过程的效果,还能表示过程产生的结果的质量。

【技术实现步骤摘要】
一种基于UML的软件架构复杂性度量方法
本专利技术涉及的是一种基于UML的软件架构复杂性度量方法。
技术介绍
软件度量是对软件开发过程的状态和产品的属性量化的表示,目的是要科学、定量地评估和预测软件开发活动及其产品的质量,也可以用来管理软件开发活动和过程。软件复杂性主要表现在设计结构的复杂性、程序的复杂性、功能的复杂性和数据的复杂性等。软件架构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。软件架构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。软件架构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。软件架构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。软件架构是软件开发过程中的关键制品,体现了软件设计的早期决策,决定了软件的质量属性。因此,度量软件架构的复杂性就能度量整个软件的复杂性,指导软件的开发、评估和管理。目前的软件度量方法在刻画软件架构的复杂性方面都具有一定的局限性。首先,虽然基于程序代码的度量可以得到准确的软件信息,但是,这类方法具有事后性,通常只能在实现了软件,存在程序代码时才能应用,无法在软件生命周期的早期进行,因而难以对软件的开发过程及其产品提供及时有效的指导。其次,由于对被测量实体缺乏严格的描述,其它的度量不能准确地获得软件的有关信息,度量也就缺乏应用价值,例如功能点方法可以在系统分析阶段使用,面向对象的复杂性和软件的耦合性等软件结构性度量也可以应用在软件设计阶段。如果系统或软件设计语言不具备严格的语法和语义,不能描述设计的详细特征,就难以得到准确一致和体现详细信息的软件设计度量。而且,如果软件的设计和程序实现缺乏一致的转换关系,就使得软件设计度量和程序度量的不一致,降低了软件设计度量的使用价值。对UML的度量主要包括类、包、状态、关联、转移等UML基本建模元素的数量,以及类的继承深度等面向对象的度量。这些基本元素的数量及关系难以反映整个系统的特性,既没没有把UML的视可化特征对阅读和理解软件设计进行量化,也没有针对软件架构的特征。
技术实现思路
本专利技术的目的在于针对现有技术的缺陷和不足,提供了一种基于UML的软件架构复杂性度量方法。为实现上述目的,本专利技术采用的技术方案是:一种基于UML的软件架构复杂性度量方法,包含UML数据采集模块、UML图元素分析模块、数据归一模块、架构元素分析模块、复杂性模型及算法模块、模型特征因子库;所述模型特征因子库与复杂性模型及算法模块连接,所述复杂性模型及算法模块与架构元素分析模块连接,所述架构元素分析模块与UML图元素分析模块连接,所述UML图元素分析模块与UML数据采集模块连接,所述UML数据采集模块、UML图元素分析模块、架构元素分析模块、复杂性模型及算法模块均与数据归一模块连接;所述UML数据采集模块:负责从存储UML的文件中读取UML的信息,进行预处理:消除与软件设计、软件架构描述无关的数据;所述UML图元素分析模块:识别出基本的UML元素,包括各种图元素、语义描述、属性、注释、语义约束等,分析出每个UML图元素(例如类、接口、角色、端口、继承关系、聚合关系)的形状、属性、位置坐标,计算出每个图元素的大小;所述数据归一模块:主要有三个子模块:格式归一、图示归一、语义归一;采集的UML的图形设计,首先需要按照UML交换标准,把每个图形都转换成统一的XML格式,就是格式归一;其次,同一种UML图元素可能有大小(例如都是类,划出不同的大小)、形状(例如线条的粗细、长短)、显示颜色、是否重叠等的不同。进一步,所述复杂性模型及算法,通过分析UML描述的软件的体系架构,综合考虑UML的图形显示、软件架构的组成及其结构,提出软件架构复杂度的计算公式SACplex,参数是有k层嵌套的UML图,不含嵌套元素的UML描述架构复杂度用BasiCplex表示——基本公式1,否则用递推公式2;公式1表示一个基本的UML软件架构图的计算公式,COM表示一个UML图元素,用在UML图中的位置作为参数,ViSize()表示该经过归一化处理的图元素的视觉大小,sfactor()表示不同的UML图元素对应软件架构元素对架构影响的语义因子;公式2递归地定义一个UML描述的软件架构。进一步,所述递推定义的公式(2),用递归算法求解,算法如下:(1)输入:含n个元素COM的UML图,嵌套层数≥1;(2)输出:UML图的复杂数;(3)SACplex=BCplex=0;(4)如果UML图不含嵌套的元素,则对每个UML的图元素COM(i)(5)SACplex+=计算其语义因子sfactor/视图大小ViSize;//否则,k>1,递归计算SACplex;(6)如果k>1则,对每个含嵌套的UML元素COM(i)(7)SACplex+=递归计算下一层(k-1)的SACplex×dfactor(k-1);(8)SACplex+=BCplex;(9)k=k-1;(10)返回(7);(11)输出SACplex。本专利技术有益效果为:1、本专利技术的UML软件架构复杂性度量可以在软件过程的需求、分析、设计等多个阶段一致地使用,从良好设计的软件架构中计算得到。2、本专利技术的UML软件架构复杂性度量不仅可以反映过程的效果,还能表示过程产生的结果的质量。3、本专利技术的UML软件架构复杂性度量不仅能被程序员使用,由于在设计期间就可以计算,架构复杂性度量也可以被软件测试人员、质量管理员、项目管理人员、客户在监控软件开发过程、评估设计质量、设计软件测试中使用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术的结构框架图;图2是本专利技术的一种实施流程图;图3是本专利技术的算法UML_SAC运算时使用的关联表;图4是本专利技术的UML元素架构元素语义因子表;图5是本专利技术的架构元素嵌套层级因子表。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施方式,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施方式仅用以解释本专利技术,并不用于限定本专利技术。参看图1至图5,本具体实施方式采用以下技术方案:实施本具体实施方式时,使用两张表,UML元素-架构元素语义因子和架构元素嵌套层级因子,实现模型特征因子库。软件架构建模的核心元素是构件、连接件、端口和角色,每个架构元素都有不止一个UML图元素表示或建模。同样是描述每种架构元素的UML图元素,对于整个架构复杂度的影响不完全相同,比如,UML协作元素用以解释一组相互合作的实例如何实现联合任务或一组任务,可以在架构设计中描述一个模块或一个子系统。协作具有嵌套结构,语义要比类、构件等复杂。丰富的建模手段给架构设计者丰富的选择,同时也对架构的设计本文档来自技高网
...
一种基于UML的软件架构复杂性度量方法

【技术保护点】
一种基于UML的软件架构复杂性度量方法,其特征在于:包含UML数据采集模块、UML图元素分析模块、数据归一模块、架构元素分析模块、复杂性模型及算法模块、模型特征因子库;所述模型特征因子库与复杂性模型及算法模块连接,所述复杂性模型及算法模块与架构元素分析模块连接,所述架构元素分析模块与UML图元素分析模块连接,所述UML图元素分析模块与UML数据采集模块连接,所述UML数据采集模块、UML图元素分析模块、架构元素分析模块、复杂性模型及算法模块均与数据归一模块连接;所述UML数据采集模块:负责从存储UML的文件中读取UML的信息,进行预处理:消除与软件设计、软件架构描述无关的数据;所述UML图元素分析模块:识别出基本的UML元素,包括各种图元素、语义描述、属性、注释、语义约束等,分析出每个UML图元素(例如类、接口、角色、端口、继承关系、聚合关系)的形状、属性、位置坐标,计算出每个图元素的大小;所述数据归一模块:主要有三个子模块:格式归一、图示归一、语义归一;采集的UML的图形设计,首先需要按照UML交换标准,把每个图形都转换成统一的XML格式,就是格式归一;其次,同一种UML图元素可能有大小(例如都是类,划出不同的大小)、形状(例如线条的粗细、长短)、显示颜色、是否重叠等的不同。...

【技术特征摘要】
1.一种基于UML的软件架构复杂性度量方法,其特征在于:包含UML数据采集模块、UML图元素分析模块、数据归一模块、架构元素分析模块、复杂性模型及算法模块、模型特征因子库;所述模型特征因子库与复杂性模型及算法模块连接,所述复杂性模型及算法模块与架构元素分析模块连接,所述架构元素分析模块与UML图元素分析模块连接,所述UML图元素分析模块与UML数据采集模块连接,所述UML数据采集模块、UML图元素分析模块、架构元素分析模块、复杂性模型及算法模块均与数据归一模块连接;所述UML数据采集模块:负责从存储UML的文件中读取UML的信息,进行预处理:消除与软件设计、软件架构描述无关的数据;所述UML图元素分析模块:识别出基本的UML元素,包括各种图元素、语义描述、属性、注释、语义约束等,分析出每个UML图元素(例如类、接口、角色、端口、继承关系、聚合关系)的形状、属性、位置坐标,计算出每个图元素的大小;所述数据归一模块:主要有三个子模块:格式归一、图示归一、语义归一;采集的UML的图形设计,首先需要按照UML交换标准,把每个图形都转换成统一的XML格式,就是格式归一;其次,同一种UML图元素可能有大小(例如都是类,划出不同的大小)、形状(例如线条的粗细、长短)、显示颜色、是否重叠等的不同。2.根据权利要求1所述的一种基于UML的软件架构复杂性度量方法,其特征在于:所述复杂性模型及算法,通过分析UML描述的...

【专利技术属性】
技术研发人员:李劲华周强陈宇
申请(专利权)人:青岛大学
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1