欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于UML的軟件架構(gòu)復(fù)雜性度量方法與流程

文檔序號(hào):11432187閱讀:554來(lái)源:國(guó)知局
一種基于UML的軟件架構(gòu)復(fù)雜性度量方法與流程

本發(fā)明涉及的是一種基于uml的軟件架構(gòu)復(fù)雜性度量方法。



背景技術(shù):

軟件度量是對(duì)軟件開(kāi)發(fā)過(guò)程的狀態(tài)和產(chǎn)品的屬性量化的表示,目的是要科學(xué)、定量地評(píng)估和預(yù)測(cè)軟件開(kāi)發(fā)活動(dòng)及其產(chǎn)品的質(zhì)量,也可以用來(lái)管理軟件開(kāi)發(fā)活動(dòng)和過(guò)程。軟件復(fù)雜性主要表現(xiàn)在設(shè)計(jì)結(jié)構(gòu)的復(fù)雜性、程序的復(fù)雜性、功能的復(fù)雜性和數(shù)據(jù)的復(fù)雜性等。

軟件架構(gòu)是軟件設(shè)計(jì)過(guò)程中的一個(gè)層次,這一層次超越計(jì)算過(guò)程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。軟件架構(gòu)問(wèn)題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計(jì)元素分配特定功能,設(shè)計(jì)元素的組織,規(guī)模和性能,在各設(shè)計(jì)方案間進(jìn)行選擇等。軟件架構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和描述方面的一些問(wèn)題,如全局組織和全局控制結(jié)構(gòu)、關(guān)于通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計(jì)構(gòu)件功能定義,物理分布與合成,設(shè)計(jì)方案的選擇、評(píng)估與實(shí)現(xiàn)等。軟件架構(gòu)是一個(gè)抽象的系統(tǒng)規(guī)范,主要包括用其行為來(lái)描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。軟件架構(gòu)是軟件開(kāi)發(fā)過(guò)程中的關(guān)鍵制品,體現(xiàn)了軟件設(shè)計(jì)的早期決策,決定了軟件的質(zhì)量屬性。因此,度量軟件架構(gòu)的復(fù)雜性就能度量整個(gè)軟件的復(fù)雜性,指導(dǎo)軟件的開(kāi)發(fā)、評(píng)估和管理。

目前的軟件度量方法在刻畫(huà)軟件架構(gòu)的復(fù)雜性方面都具有一定的局限性。首先,雖然基于程序代碼的度量可以得到準(zhǔn)確的軟件信息,但是,這類方法具有事后性,通常只能在實(shí)現(xiàn)了軟件,存在程序代碼時(shí)才能應(yīng)用,無(wú)法在軟件生命周期的早期進(jìn)行,因而難以對(duì)軟件的開(kāi)發(fā)過(guò)程及其產(chǎn)品提供及時(shí)有效的指導(dǎo)。其次,由于對(duì)被測(cè)量實(shí)體缺乏嚴(yán)格的描述,其它的度量不能準(zhǔn)確地獲得軟件的有關(guān)信息,度量也就缺乏應(yīng)用價(jià)值,例如功能點(diǎn)方法可以在系統(tǒng)分析階段使用,面向?qū)ο蟮膹?fù)雜性和軟件的耦合性等軟件結(jié)構(gòu)性度量也可以應(yīng)用在軟件設(shè)計(jì)階段。如果系統(tǒng)或軟件設(shè)計(jì)語(yǔ)言不具備嚴(yán)格的語(yǔ)法和語(yǔ)義,不能描述設(shè)計(jì)的詳細(xì)特征,就難以得到準(zhǔn)確一致和體現(xiàn)詳細(xì)信息的軟件設(shè)計(jì)度量。而且,如果軟件的設(shè)計(jì)和程序?qū)崿F(xiàn)缺乏一致的轉(zhuǎn)換關(guān)系,就使得軟件設(shè)計(jì)度量和程序度量的不一致,降低了軟件設(shè)計(jì)度量的使用價(jià)值。

對(duì)uml的度量主要包括類、包、狀態(tài)、關(guān)聯(lián)、轉(zhuǎn)移等uml基本建模元素的數(shù)量,以及類的繼承深度等面向?qū)ο蟮亩攘?。這些基本元素的數(shù)量及關(guān)系難以反映整個(gè)系統(tǒng)的特性,既沒(méi)沒(méi)有把uml的視可化特征對(duì)閱讀和理解軟件設(shè)計(jì)進(jìn)行量化,也沒(méi)有針對(duì)軟件架構(gòu)的特征。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的缺陷和不足,提供了一種基于uml的軟件架構(gòu)復(fù)雜性度量方法。

為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種基于uml的軟件架構(gòu)復(fù)雜性度量方法,包含uml數(shù)據(jù)采集模塊、uml圖元素分析模塊、數(shù)據(jù)歸一模塊、架構(gòu)元素分析模塊、復(fù)雜性模型及算法模塊、模型特征因子庫(kù);所述模型特征因子庫(kù)與復(fù)雜性模型及算法模塊連接,所述復(fù)雜性模型及算法模塊與架構(gòu)元素分析模塊連接,所述架構(gòu)元素分析模塊與uml圖元素分析模塊連接,所述uml圖元素分析模塊與uml數(shù)據(jù)采集模塊連接,所述uml數(shù)據(jù)采集模塊、uml圖元素分析模塊、架構(gòu)元素分析模塊、復(fù)雜性模型及算法模塊均與數(shù)據(jù)歸一模塊連接;

所述uml數(shù)據(jù)采集模塊:負(fù)責(zé)從存儲(chǔ)uml的文件中讀取uml的信息,進(jìn)行預(yù)處理:消除與軟件設(shè)計(jì)、軟件架構(gòu)描述無(wú)關(guān)的數(shù)據(jù);

所述uml圖元素分析模塊:識(shí)別出基本的uml元素,包括各種圖元素、語(yǔ)義描述、屬性、注釋、語(yǔ)義約束等,分析出每個(gè)uml圖元素(例如類、接口、角色、端口、繼承關(guān)系、聚合關(guān)系)的形狀、屬性、位置坐標(biāo),計(jì)算出每個(gè)圖元素的大?。?/p>

所述數(shù)據(jù)歸一模塊:主要有三個(gè)子模塊:格式歸一、圖示歸一、語(yǔ)義歸一;采集的uml的圖形設(shè)計(jì),首先需要按照uml交換標(biāo)準(zhǔn),把每個(gè)圖形都轉(zhuǎn)換成統(tǒng)一的xml格式,就是格式歸一;其次,同一種uml圖元素可能有大小(例如都是類,劃出不同的大小)、形狀(例如線條的粗細(xì)、長(zhǎng)短)、顯示顏色、是否重疊等的不同。

進(jìn)一步,所述復(fù)雜性模型及算法,通過(guò)分析uml描述的軟件的體系架構(gòu),綜合考慮uml的圖形顯示、軟件架構(gòu)的組成及其結(jié)構(gòu),提出軟件架構(gòu)復(fù)雜度的計(jì)算公式sacplex,參數(shù)是有k層嵌套的uml圖,不含嵌套元素的uml描述架構(gòu)復(fù)雜度用basicplex表示——基本公式1,否則用遞推公式2;

公式1表示一個(gè)基本的uml軟件架構(gòu)圖的計(jì)算公式,com表示一個(gè)uml圖元素,用在uml圖中的位置作為參數(shù),visize()表示該經(jīng)過(guò)歸一化處理的圖元素的視覺(jué)大小,sfactor()表示不同的uml圖元素對(duì)應(yīng)軟件架構(gòu)元素對(duì)架構(gòu)影響的語(yǔ)義因子;公式2遞歸地定義一個(gè)uml描述的軟件架構(gòu)。

進(jìn)一步,所述遞推定義的公式(2),用遞歸算法求解,算法如下:

(1)輸入:含n個(gè)元素com的uml圖,嵌套層數(shù)≥1;

(2)輸出:uml圖的復(fù)雜數(shù);

(3)sacplex=bcplex=0;

(4)如果uml圖不含嵌套的元素,則對(duì)每個(gè)uml的圖元素com(i)

(5)sacplex+=計(jì)算其語(yǔ)義因子sfactor/視圖大小visize;//否則,k>1,遞歸計(jì)算sacplex;

(6)如果k>1則,對(duì)每個(gè)含嵌套的uml元素com(i)

(7)sacplex+=遞歸計(jì)算下一層(k-1)的sacplex×dfactor(k-1);

(8)sacplex+=bcplex;

(9)k=k-1;

(10)返回(7);

(11)輸出sacplex。

本發(fā)明有益效果為:

1、本發(fā)明的uml軟件架構(gòu)復(fù)雜性度量可以在軟件過(guò)程的需求、分析、設(shè)計(jì)等多個(gè)階段一致地使用,從良好設(shè)計(jì)的軟件架構(gòu)中計(jì)算得到。

2、本發(fā)明的uml軟件架構(gòu)復(fù)雜性度量不僅可以反映過(guò)程的效果,還能表示過(guò)程產(chǎn)生的結(jié)果的質(zhì)量。

3、本發(fā)明的uml軟件架構(gòu)復(fù)雜性度量不僅能被程序員使用,由于在設(shè)計(jì)期間就可以計(jì)算,架構(gòu)復(fù)雜性度量也可以被軟件測(cè)試人員、質(zhì)量管理員、項(xiàng)目管理人員、客戶在監(jiān)控軟件開(kāi)發(fā)過(guò)程、評(píng)估設(shè)計(jì)質(zhì)量、設(shè)計(jì)軟件測(cè)試中使用。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明的結(jié)構(gòu)框架圖;

圖2是本發(fā)明的一種實(shí)施流程圖;

圖3是本發(fā)明的算法uml_sac運(yùn)算時(shí)使用的關(guān)聯(lián)表;

圖4是本發(fā)明的uml元素架構(gòu)元素語(yǔ)義因子表;

圖5是本發(fā)明的架構(gòu)元素嵌套層級(jí)因子表。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及具體實(shí)施方式,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施方式僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

參看圖1至圖5,本具體實(shí)施方式采用以下技術(shù)方案:實(shí)施本具體實(shí)施方式時(shí),使用兩張表,uml元素-架構(gòu)元素語(yǔ)義因子和架構(gòu)元素嵌套層級(jí)因子,實(shí)現(xiàn)模型特征因子庫(kù)。

軟件架構(gòu)建模的核心元素是構(gòu)件、連接件、端口和角色,每個(gè)架構(gòu)元素都有不止一個(gè)uml圖元素表示或建模。同樣是描述每種架構(gòu)元素的uml圖元素,對(duì)于整個(gè)架構(gòu)復(fù)雜度的影響不完全相同,比如,uml協(xié)作元素用以解釋一組相互合作的實(shí)例如何實(shí)現(xiàn)聯(lián)合任務(wù)或一組任務(wù),可以在架構(gòu)設(shè)計(jì)中描述一個(gè)模塊或一個(gè)子系統(tǒng)。協(xié)作具有嵌套結(jié)構(gòu),語(yǔ)義要比類、構(gòu)件等復(fù)雜。豐富的建模手段給架構(gòu)設(shè)計(jì)者豐富的選擇,同時(shí)也對(duì)架構(gòu)的設(shè)計(jì)、分析和度量造成了不同的影響。uml元素-架構(gòu)元素語(yǔ)義因子(簡(jiǎn)稱語(yǔ)義因子)表示不同uml元素描述架構(gòu)元素的復(fù)雜度影響系數(shù),對(duì)應(yīng)公式1中的sfactor()。uml元素對(duì)應(yīng)的架構(gòu)元素及其語(yǔ)義因子系數(shù)如圖4所示,本具體實(shí)施方式建議的語(yǔ)義因子取值范圍是1-1.50。

構(gòu)件是計(jì)算機(jī)軟件中的一個(gè)模塊化的構(gòu)造塊,是系統(tǒng)中模塊化的、可部署的和可替換的部件,該部件封裝了實(shí)現(xiàn)并暴露一組接口。構(gòu)件存在于軟件架構(gòu)中,在完成所建系統(tǒng)的需求和目標(biāo)中起著重要作用。構(gòu)件駐留于軟件架構(gòu)的內(nèi)部,它們必須與其他的構(gòu)件和存在于軟件邊界以外的實(shí)體(如其他系統(tǒng)、設(shè)備和人員)進(jìn)行通信和合作。構(gòu)件可以是被封裝的類、接口服務(wù)、功能模塊、數(shù)據(jù)集及其操作、軟件框架、文檔、組件、設(shè)計(jì)模式等。uml元素中常用來(lái)描述構(gòu)件的有類、組件、協(xié)作等,每個(gè)uml元素描述架構(gòu)元素時(shí)的影響度(語(yǔ)義因子)不同。

連接件是軟件架構(gòu)的一個(gè)組成部分,它通過(guò)對(duì)構(gòu)件之間的交互規(guī)則的建模來(lái)實(shí)現(xiàn)構(gòu)件之間的連接。連接可以是簡(jiǎn)單的指針、或者復(fù)雜到網(wǎng)絡(luò)鏈接,還可以表示允許參數(shù)傳遞的多個(gè)實(shí)例之間的通信。連接器可以是包含構(gòu)件的復(fù)合體,也可以是復(fù)雜度不同的動(dòng)作,如復(fù)雜結(jié)構(gòu)的活動(dòng)邊及其動(dòng)作。角色和端口只能是簡(jiǎn)單成分、不能是復(fù)合體。

軟件系統(tǒng)通常具有層次結(jié)構(gòu),相應(yīng)的軟件架構(gòu)也就層次特征,比如用一個(gè)構(gòu)件表示子系統(tǒng),子系統(tǒng)本身又是一個(gè)連接在一起的構(gòu)件,每個(gè)構(gòu)件在子系統(tǒng)中具有不同的角色,通過(guò)不同的端口參與構(gòu)件之間的交互。uml的圖及其元素允許嵌套,比如用一個(gè)uml組件描述架構(gòu)的構(gòu)件時(shí),組件可以是復(fù)雜的、包含uml類、組件、關(guān)聯(lián)關(guān)系的圖。架構(gòu)元素嵌套層級(jí)因子(簡(jiǎn)稱嵌套因子)表示不同uml元素嵌套的層級(jí)對(duì)架構(gòu)的復(fù)雜度影響系數(shù),對(duì)應(yīng)公式2中的dfactor()。每種架構(gòu)元素的不同嵌套層級(jí)對(duì)復(fù)雜度的影響不同,實(shí)施時(shí)建議子系統(tǒng)架構(gòu)的層數(shù)原則上不超過(guò)7,否則系統(tǒng)架構(gòu)就太復(fù)雜、需要重新設(shè)計(jì)。在架構(gòu)元素中,只有構(gòu)件和連接件允許嵌套,端口和角色不能嵌套。

圖2示意了uml軟件架構(gòu)復(fù)雜性度量方法的一種實(shí)施流程,使用了三個(gè)數(shù)據(jù)文件:存儲(chǔ)uml數(shù)據(jù)的uml模型文件(8)用本發(fā)明方法分析uml文件得到的處理后的uml圖元素表(9)以及管理和操作uml元素-架構(gòu)元素語(yǔ)義因子和架構(gòu)元素嵌套層級(jí)因子的模型特征因子庫(kù)(10)。

本具體實(shí)施方式中的uml數(shù)據(jù)可以有多種來(lái)源,可以從開(kāi)源uml設(shè)計(jì)工具jude–community、argouml、visualparadigm–community或者umlet存儲(chǔ)的文件中(8),讀取uml數(shù)據(jù)(1),進(jìn)行基本的預(yù)處理:刪除與uml圖元素、語(yǔ)義描述的數(shù)據(jù),分析出基本的uml數(shù)據(jù)。為了便于后期統(tǒng)一、簡(jiǎn)化處理,需要根據(jù)uml圖數(shù)據(jù)交換標(biāo)準(zhǔn)xmi,對(duì)不同來(lái)源、不同格式的uml數(shù)據(jù),統(tǒng)一到xml格式的數(shù)據(jù)歸一化處理(2)。

然后,依據(jù)uml圖元素的語(yǔ)法、語(yǔ)義及圖符的定義,分析出uml圖元素(3),包括把識(shí)別的uml元素按照編號(hào)存入到uml圖元素表(9),填寫(xiě)uml元素類型和位置,計(jì)算出圖形大小(即公式1中的visize)并記在表中(9),按照元素種類記錄每個(gè)元素在一層uml圖中的唯一序號(hào),如果該元素有嵌套,連接對(duì)應(yīng)的嵌套子圖、記下嵌套層級(jí)數(shù)等。由于不同uml工具、不同的架構(gòu)設(shè)計(jì)者可能設(shè)計(jì)出不同方風(fēng)格(圖符選擇)、樣式(圖形大小)、等uml圖,要進(jìn)行圖示歸一化處理(4)。

之后,依據(jù)模型特征庫(kù)因子中的uml元素-架構(gòu)元素對(duì)應(yīng)表(10),識(shí)別出用uml表示的架構(gòu)成分:構(gòu)件、連接件、角色和端口(5)。uml表示的軟件架構(gòu)的設(shè)計(jì)可能會(huì)詳略不同,要依據(jù)架構(gòu)成分類型把uml元素分門(mén)別類,進(jìn)行語(yǔ)義歸一化處理(6),使得每個(gè)uml圖元素的語(yǔ)義、可視化大小的取值范圍都是[0..1],。例如,uml圖元素的動(dòng)有調(diào)用行為動(dòng)作、調(diào)用操作動(dòng)作、發(fā)送信號(hào)動(dòng)作、發(fā)送對(duì)象動(dòng)作、創(chuàng)建對(duì)象動(dòng)作、銷毀對(duì)象動(dòng)作、接受事件動(dòng)作等,都可能是表示軟件架構(gòu)的連接,需要統(tǒng)一到架構(gòu)的連接件,賦予相應(yīng)的語(yǔ)義影響系數(shù)。

最后,按照計(jì)算uml軟件架構(gòu)復(fù)雜度的算法uml_sac,計(jì)算出軟件架構(gòu)復(fù)雜度sacplex(7),其中要使用模型因子庫(kù)(10)和uml圖形元素表(9):對(duì)每一個(gè)uml元素,檢索uml圖元素表(9)得到其標(biāo)識(shí)符(7a),在表中得到可視化大小(7b);通過(guò)uml圖元素標(biāo)識(shí)符在語(yǔ)義因子表中查詢(7c)得到語(yǔ)義系數(shù)(7e);如果該uml圖元素的嵌套層級(jí)數(shù)大于1,則要在層級(jí)因子表中查找(7d)對(duì)應(yīng)的層級(jí)因子數(shù)(7f),最終送到算法uml_sac按照公式(1)和公式(2)進(jìn)行計(jì)算。必要時(shí)還要按照“先進(jìn)后出”的棧式數(shù)據(jù)結(jié)構(gòu)的方式,由最底層向最外層、逐層計(jì)算,最終計(jì)算出軟件架構(gòu)復(fù)雜度sacplex的值。

對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。

此外,應(yīng)當(dāng)理解,雖然本說(shuō)明書(shū)按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說(shuō)明書(shū)的這種敘述方式僅僅是為清楚起見(jiàn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說(shuō)明書(shū)作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
南召县| 邢台市| 宁陵县| 五华县| 阳新县| 纳雍县| 荔浦县| 临邑县| 南阳市| 鄂托克前旗| 东兴市| 离岛区| 墨竹工卡县| 万载县| 临泉县| 荆州市| 方正县| 崇州市| 同江市| 子洲县| 大厂| 阿拉善左旗| 嫩江县| 七台河市| 双牌县| 灌阳县| 响水县| 东明县| 浑源县| 靖西县| 壶关县| 博爱县| 林口县| 大渡口区| 夏邑县| 横峰县| 星子县| 临安市| 平昌县| 和龙市| 五寨县|