亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

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

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



背景技術(shù):

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

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

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

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



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

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

為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種基于uml的軟件架構(gòu)復(fù)雜性度量方法,包含uml數(shù)據(jù)采集模塊、uml圖元素分析模塊、數(shù)據(jù)歸一模塊、架構(gòu)元素分析模塊、復(fù)雜性模型及算法模塊、模型特征因子庫;所述模型特征因子庫與復(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é)從存儲uml的文件中讀取uml的信息,進(jìn)行預(yù)處理:消除與軟件設(shè)計、軟件架構(gòu)描述無關(guān)的數(shù)據(jù);

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

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

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

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

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

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

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

(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。

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

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

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

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

附圖說明

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

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

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

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

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

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

具體實施方式

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

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

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

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

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

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

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

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

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

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

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

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

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

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1