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