• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      常用軟件度量方法分析及比較

      2015-06-24 12:53:46邵秀秀趙衛(wèi)東邱會魯等
      軟件導刊 2015年6期

      邵秀秀 趙衛(wèi)東 邱會魯等

      摘要:軟件度量是對軟件開發(fā)項目、過程及其產品進行數據定義、收集以及分析的量化過程。在度量的基礎上,對數據進行綜合分析,有利于對開發(fā)項目、過程及其產品加以理解、預測、評估、控制和改善。介紹了軟件度量常用模型GQM,并對規(guī)模度量的功能點分析方法、成本度量的COCOMO模型、復雜性度量的環(huán)形復雜度理論和C&K方法以及顧客滿意度要素進行了分析。

      關鍵詞:GQM;功能點分析方法;COCOMO;環(huán)形復雜度;C&K

      DOIDOI:10.11907/rjdk.151129

      中圖分類號:TP301

      文獻標識碼:A 文章編號

      文章編號:16727800(2015)006002303

      作者簡介作者簡介:邵秀秀(1988-),女,山東聊城人,山東科技大學信息科學與工程學院碩士研究生,研究方向為數據庫與信息系統(tǒng);趙衛(wèi)東(1967-),男,山東泰安人,山東科技大學信息科學與工程學院副教授、碩士生導師,研究方向為軟件工程、數據庫;邱會魯(1990-),男,山東濟寧人,山東科技大學信息科學與工程學院碩士研究生,研究方向為數據庫與信息系統(tǒng);呂峰(1989-),男,山東青島人,山東科技大學信息科學與工程學院碩士研究生,研究方向為數據庫與信息系統(tǒng)。

      1 GQM模型

      GQM,即GoalQuestionMeasure,為軟件度量最常見模型,其將度量結構分為3個層次,從高到低分別是:目標層、問題層、度量層[1]。三層逐步遞進、逐步求精,將抽象級別較高的組織或項目目標與度量項實際收集的數據相關聯,有利于盡快根據信息的需要和優(yōu)先級決定度量并進行度量。針對軟件規(guī)模、成本、復雜度、顧客滿意度或其它方面的度量,都可依據此模型逐步完成度量過程。

      GQM的主要步驟:①確定度量目標;②提出滿足目標的問題;③確定回答問題所需要的度量[2]。GQM度量過程如圖1所示。

      2 規(guī)模度量方法

      規(guī)模度量常用方法有功能點分析、代碼估算、德爾菲法、用例點、對象點方法等。其中功能點分析方法是使用最多的一種規(guī)模度量方法。

      功能點分析方法,即Function Point Analysis,是以系統(tǒng)的功能點來估算系統(tǒng)規(guī)模的一種常用方法,用功能點的數量來表示系統(tǒng)規(guī)模大小,而與實現語音及編程環(huán)境無關,在系統(tǒng)需求分析階段即可發(fā)揮作用。

      FPA有5項基本計數:①外部輸入數(EI,external input);②外部輸出數(EO,external output);③外部查詢數(EQ,external query);④內部邏輯文件(ILF,internal logical file);⑤外部接口文件(EIF,external interface file)。功能點分析法的主要步驟如表1所示。

      功能點分析法主要適用于估算出開發(fā)前軟件項目的規(guī)模,以及有很多輸入輸出或文件應用的軟件,與程序設計語言無關。由于功能點主要由經驗來估算,不同的人針對同一系統(tǒng)可得出完全不同的數據,主觀因素較多,因此雖然可估算系統(tǒng)規(guī)模,但常常不太準確。

      3 成本度量方法

      成本度量常用方法包括構造性成本模型、類比估算、細分估算、周期估算方法。構造性成本模型COCOMO(Constructive Cost Model)最早由B.W.Boehm[4]提出,它包括3個層次:①基本模型:用已估算出的代碼行長度配以相應參數來估算開發(fā)需要的工作量;②中間模型:在基本模型的基礎上增加項目、人員等影響因素數據來估算工作量;③詳細模型:包含中間模型的各種特性,并考慮了軟件開發(fā)過程中各步驟的影響。

      一般來說,基本模型適合項目信息較少的估算,中間模型在需求確定后即可使用,詳細模型在項目設計完成后可使用。

      模型還提供了3種軟件應用開發(fā)模式,根據軟件不同應用領域劃分:①組織式:泛指一些比較小或者不需要太多創(chuàng)新的項目,比如數據的處理等;②嵌入式:指軟硬件環(huán)境被嚴格限制的項目,比如各種系統(tǒng)程序等;③分離式:介于組織式和嵌入式之間的類型,指各類實用程序,如編譯器、分析器等。

      3.1 COCOMO基本模型

      公式:Effort=a*KLOCb Time=c*Effortd Person=Effort/Time

      其中:Effort是所需的人力,如人/月、人/年等。a、b、c、d是參數,如表2所示。

      (1)提供了3個層次的開發(fā)工作量估算模型:①應用系統(tǒng)組成模型:用于原型構建階段;②早期設計模型:用于體系結構設計階段;③后體系結構模型:用于完成體系結構設計之后的軟件開發(fā)階段。

      (2)17個工作量乘數因子(Cost Drivers)。

      4 復雜性度量方法

      復雜性度量方法可以從面向結構的度量、面向對象的度量兩個方面來分析。

      4.1 結構化程序復雜性度量方法

      結構化程序復雜性度量往往針對3個方面進行,即模塊、結構及總體復雜性。作為程序復雜性度量的基礎,模塊的復雜性度量又分為程序長度和程序控制流度量。McCabe環(huán)形復雜度理論是常用的程序控制流度量方法[5]。

      環(huán)形復雜度理論以圖論為基礎,通過程序的控制流圖來獲得程序的復雜度,定義如下:

      M=V(G)=e-n+2p

      其中,G為控制流圖,V(G)是G中環(huán)形的數目,e是G中邊的數目,n是節(jié)點個數,p是不相連部分的數量。

      例:(1)根據代碼畫出控制流圖,如圖2。

      (2)計算環(huán)形復雜度,可用3個數據表示:①流圖中區(qū)域的數量;②流圖中邊的數量-流圖中節(jié)點的數量+2;③流圖中判定節(jié)點的數量+1。

      因此,對應圖2,例子中的環(huán)形復雜度V(G)=4。

      4.2 面向對象軟件復雜性度量

      面向對象軟件復雜性度量方法主要有C&K方法、MOOD方法等[6],C&K方法更為常見。C&K方法給出了6個面向對象設計和復雜性的度量因子:

      (1)每類加權方法數(WMC),即Weighted Methods per Class,表示一個類的靜態(tài)復雜度總和,設類C1,類中定義了方法Mi,,,Mn,令c1,,,,cn為這些方法的復雜度,則:

      (2) 繼承樹深度(DIT),即Depth of Inheritance Tree,表示類繼承樹的最大深度。

      (3) 每個類的孩子數(NOC),即Number Of Children,表示直接繼承本類的孩子數目。

      (4) 類耦合(CBO),即Coupling Between Object classes,表示和本類耦合的類數目。

      (5) 類的響應(RFC),即Response For a Class,為本類方法及本類調用方法的數目和。

      (6) 方法間內聚缺乏(LCOM),即Lack of Cohesion in Methods,為相似度為0的方法對減去相似度不為0的方法對的數量,該數目越大表示類的內聚越強。

      C&K方法的6個度量因子能在一定程度說明面向對象軟件的復雜性,但仍存在一定的缺陷,譬如:①針對WMC,未說明如何繼承的情況;②針對DIT,定義有二義性,多繼承情況考慮不全面;③針對NOC,未考慮間接繼承孩子,得到的度量結果比較扭曲;④針對RFC,容易區(qū)分是否為本類方法,不易區(qū)分是否為系統(tǒng)函數;⑤針對CBO,根據多種情況進行判斷;⑥針對LCOM,沒有訪問屬性方法的百分比,度量有一定缺陷;⑦缺少對封裝性的度量;⑧缺少對多態(tài)性的度量。

      針對這些不足,使用時可以對每個度量進行改進,比如:①WMC將基類的公有、保護函數計入本類 ;②DIT可以將多個繼承定義為單個繼承的和;③NOC將間接繼承的孩子考慮進來;④RFC不區(qū)分本類方法,只統(tǒng)計出所有被本類調用的方法;⑤CBO考慮多種情況的耦合,得到最終數目;⑥LCOM提出克服一些缺陷的定義;增加了對封裝性、多態(tài)性的度量。

      5 結語

      本文針對不同的度量內容介紹了常用的度量方法,包括功能點分析方法、COCOMO模型、環(huán)形復雜度理論和C&K方法[7]以及GQM模型,這些方法可用于軟件度量。此外,軟件度量往往涉及多個學科或技術,在對其進行學術研究或實際應用時,應適當結合多領域技術,以促進度量目標實現。

      參考文獻:

      [1]周宇,錢紅兵.軟件過程中的度量數據收集方法研究[J\].計算機應用研究,2005,22(1):12.

      [2]王汝沛.軟件度量指標研究及實現[J\].數字技術與應用,2012(3):8587.

      [3]IFPUG( International Function Point Users Group).Function point counting practices manualrelease 4.2[R\].Westerville,2004.

      [4]BOEHM B W.軟件成本估算 COCOMO II 模型方法[M\].北京:機械工業(yè)出版社,2005.

      [5]鄧小鵬,邢春曉,蔡蓮紅.Web應用測試技術進展[J\].計算機研究與發(fā)展,2007(8):12731283.

      [6]易彤.面向對象設計中軟件度量學:回顧與熱點[J].計算機應用研究,2011,28(2):427434.

      [7]Measurement manual version 3.0 [Z\]. COSMIC Measurement Practices Committee,2007.

      責任編輯(責任編輯:杜能鋼)

      英文摘要Abstract:Software measurement is a quantitative process of the date definition,collection and analysis of softwares development project,process and product.Based on the measurement,to make a comprehensive analysis of the measurement data,is good to understand,predict,evaluate,control and improve the project,process and its products.This paper mainly introduced the commonly used model of GQM,and analyzed the Function Point Analysis,Constructive Cost Model,the theory of McCabe,the method of C&K and Customer satisfaction factors.

      英文關鍵詞Key Words:GQM;Function Point Analysis;COCOMO;McCabe;C&K

      鹤山市| 元阳县| 江永县| 惠水县| 朔州市| 西吉县| 牟定县| 合水县| 绍兴县| 乌拉特后旗| 平遥县| 永平县| 临湘市| 微博| 商河县| 图片| 辉县市| 津南区| 丰城市| 工布江达县| 淅川县| 渭源县| 增城市| 雷波县| 芷江| 青河县| 通州区| 邵东县| 江津市| 叙永县| 阆中市| 天全县| 天柱县| 溆浦县| 剑阁县| 大理市| 买车| 子洲县| 平武县| 东平县| 乌拉特后旗|