基于面向?qū)ο蟪绦蚯衅能浖攘?/h1>
3.2 軟件度量技術(shù)的研究
軟件度量是一個在近幾十年研究非?;钴S的軟件工程領(lǐng)域。抽象來講,它是一個函數(shù),其輸入是軟件,輸出是單一的數(shù)值,能解釋軟件所具有的一個給定屬性對軟件質(zhì)量的影響。用于預(yù)測、評估和控制軟件開發(fā)的過程,促進(jìn)項(xiàng)目的成功,開發(fā)出高質(zhì)量的產(chǎn)品。
軟件度量主要包括復(fù)雜性度量、模塊性度量、易修改性度量、易移植性度量、可擴(kuò)充性度量、可靠性度量、易維護(hù)性度量、測試充分性度量等。有些可以用數(shù)值表示,稱為“定量度量”;不能用單一數(shù)值表達(dá)的稱為“定性度量”。研究集中在定量度量方面的內(nèi)聚度和耦合度的度量,這兩個方面是衡量軟件質(zhì)量非常重要的標(biāo)準(zhǔn)。二者之間密切相關(guān),模塊之間的強(qiáng)耦合通常意味著弱內(nèi)聚,而模塊之間的強(qiáng)內(nèi)聚則意味著弱耦合。本文引用地址:http://www.ex-cimer.com/article/181197.htm4 利用程序切片技術(shù)進(jìn)行軟件度量
軟件開發(fā)的目標(biāo)是開發(fā)出高內(nèi)聚和低耦合的系統(tǒng)。這里研究利用切片技術(shù)度量面向對象程序的內(nèi)聚度和耦合度,尤其是內(nèi)聚度量。
4.1 耦合度量
耦合度(Coupling Degree)用來測量由兩個或多個模塊連接而引起的聯(lián)結(jié)程度的強(qiáng)弱。強(qiáng)耦合使模塊連接后的系統(tǒng)變得復(fù)雜。因?yàn)槟K之間具有高度的關(guān)聯(lián),改寫模塊將十分困難。降低模塊間的耦合則可以減少系統(tǒng)的復(fù)雜性。因此,在系統(tǒng)設(shè)計(jì)中應(yīng)追求盡可能松散的耦合關(guān)系。
4.2 內(nèi)聚度量
內(nèi)聚度(Cohesion Degree)是軟件的內(nèi)在屬性,反映軟件設(shè)計(jì)和實(shí)現(xiàn)中模塊組件之間結(jié)合的緊密程度。高內(nèi)聚的軟件模塊有著最基本的功能,很難再切割其規(guī)模。
面向對象程序的基本特征是類。類由屬性和方法組成,屬性和方法間存在3種關(guān)系,因此類內(nèi)聚度也從3個方面度量:屬性問內(nèi)聚度、方法與屬性問內(nèi)聚度、方法問內(nèi)聚度。設(shè)類C共有n個屬性,m個方法,其中m,n≥0。V_Union表示所有成員變量。M_Union表示所有成員方法。這里使用數(shù)據(jù)標(biāo)記(data token)而非語句作為基本單元來修正切片這個概念。數(shù)據(jù)切片包含和切片變量存在依賴關(guān)系的數(shù)據(jù)集合,簡寫作DataSlice(L,V),其中L表示程序中的某個點(diǎn),通常情況下特指某條語句:V表示在L定義或使用的變量的集合;#表示勢操作,表示集合中元素的個數(shù)。則屬性間內(nèi)聚度、方法與屬性間內(nèi)聚度和方法間內(nèi)聚度的計(jì)算公式分別為式(1)~(3),如下所示:
4.3 實(shí)驗(yàn)操作
采用目前最主流的程序切片技術(shù),以系統(tǒng)依賴圖為基礎(chǔ),利用圖的可達(dá)性算法獲得切片結(jié)果。然后利用將切片結(jié)果代入式(1)~(3)進(jìn)行計(jì)算,得到內(nèi)聚度。
以下面的程序?yàn)槔M(jìn)行切片,計(jì)算內(nèi)聚度,并和基于依賴性分析的類內(nèi)聚度度量方法相對比。
3.2 軟件度量技術(shù)的研究
軟件度量是一個在近幾十年研究非?;钴S的軟件工程領(lǐng)域。抽象來講,它是一個函數(shù),其輸入是軟件,輸出是單一的數(shù)值,能解釋軟件所具有的一個給定屬性對軟件質(zhì)量的影響。用于預(yù)測、評估和控制軟件開發(fā)的過程,促進(jìn)項(xiàng)目的成功,開發(fā)出高質(zhì)量的產(chǎn)品。
軟件度量主要包括復(fù)雜性度量、模塊性度量、易修改性度量、易移植性度量、可擴(kuò)充性度量、可靠性度量、易維護(hù)性度量、測試充分性度量等。有些可以用數(shù)值表示,稱為“定量度量”;不能用單一數(shù)值表達(dá)的稱為“定性度量”。研究集中在定量度量方面的內(nèi)聚度和耦合度的度量,這兩個方面是衡量軟件質(zhì)量非常重要的標(biāo)準(zhǔn)。二者之間密切相關(guān),模塊之間的強(qiáng)耦合通常意味著弱內(nèi)聚,而模塊之間的強(qiáng)內(nèi)聚則意味著弱耦合。本文引用地址:http://www.ex-cimer.com/article/181197.htm
4 利用程序切片技術(shù)進(jìn)行軟件度量
軟件開發(fā)的目標(biāo)是開發(fā)出高內(nèi)聚和低耦合的系統(tǒng)。這里研究利用切片技術(shù)度量面向對象程序的內(nèi)聚度和耦合度,尤其是內(nèi)聚度量。
4.1 耦合度量
耦合度(Coupling Degree)用來測量由兩個或多個模塊連接而引起的聯(lián)結(jié)程度的強(qiáng)弱。強(qiáng)耦合使模塊連接后的系統(tǒng)變得復(fù)雜。因?yàn)槟K之間具有高度的關(guān)聯(lián),改寫模塊將十分困難。降低模塊間的耦合則可以減少系統(tǒng)的復(fù)雜性。因此,在系統(tǒng)設(shè)計(jì)中應(yīng)追求盡可能松散的耦合關(guān)系。
4.2 內(nèi)聚度量
內(nèi)聚度(Cohesion Degree)是軟件的內(nèi)在屬性,反映軟件設(shè)計(jì)和實(shí)現(xiàn)中模塊組件之間結(jié)合的緊密程度。高內(nèi)聚的軟件模塊有著最基本的功能,很難再切割其規(guī)模。
面向對象程序的基本特征是類。類由屬性和方法組成,屬性和方法間存在3種關(guān)系,因此類內(nèi)聚度也從3個方面度量:屬性問內(nèi)聚度、方法與屬性問內(nèi)聚度、方法問內(nèi)聚度。設(shè)類C共有n個屬性,m個方法,其中m,n≥0。V_Union表示所有成員變量。M_Union表示所有成員方法。這里使用數(shù)據(jù)標(biāo)記(data token)而非語句作為基本單元來修正切片這個概念。數(shù)據(jù)切片包含和切片變量存在依賴關(guān)系的數(shù)據(jù)集合,簡寫作DataSlice(L,V),其中L表示程序中的某個點(diǎn),通常情況下特指某條語句:V表示在L定義或使用的變量的集合;#表示勢操作,表示集合中元素的個數(shù)。則屬性間內(nèi)聚度、方法與屬性間內(nèi)聚度和方法間內(nèi)聚度的計(jì)算公式分別為式(1)~(3),如下所示:
4.3 實(shí)驗(yàn)操作
采用目前最主流的程序切片技術(shù),以系統(tǒng)依賴圖為基礎(chǔ),利用圖的可達(dá)性算法獲得切片結(jié)果。然后利用將切片結(jié)果代入式(1)~(3)進(jìn)行計(jì)算,得到內(nèi)聚度。
以下面的程序?yàn)槔M(jìn)行切片,計(jì)算內(nèi)聚度,并和基于依賴性分析的類內(nèi)聚度度量方法相對比。
評論