原文作者信息:
Mathias Lother, Reiner R. Dumke
University of Magdeburg, Dept. of Computer Science, Postfach 4120, 39016 Magdeburg,
Germany, Tel.: +49-391-67-18664, Fax: +49-391-67-12810, Email:
{lother,dumke}@ivs.cs.uni-magdeburg.de, http://ivs.cs.uni-magdeburg.de/sw-eng/us/
摘要
在軟件度量領域存在不同的方法度量軟件產品、軟件開發(fā)過程和相關資源的特征。包括最近幾年提出來的幾種不同的點度量如功能點、特征點、對象點、全面功能點。這些方法使得及早地估計成本、工作量成為可能并能為開發(fā)過程的管理活動提供基礎。
正是由于功能規(guī)模度量越來越重要,又同時存在不同的制度,所以本文對現(xiàn)存方法進行了大致介紹和討論,并討論軟件度量領域的問題和機會。本研究主要選擇介紹幾種功能規(guī)模度量方法并且客觀地評價了他們對某些功能業(yè)務領域的適用性和他們的成熟性。此外,本文會討論功能規(guī)模度量的共性問題并提出幾種可供選擇的方法。
關鍵詞: 軟件度量, 功能規(guī)模度量,功能點,全面功能點,對象點,特征點
1.介紹
在軟件度量領域存在不同的方法度量軟件產品、軟件開發(fā)過程和相關資源的特征。包括最近幾年提出來的幾種不同的點度量如功能點、特征點、對象點、全面功能點。這些方法使得及早地估計成本、工作量成為可能并能為開發(fā)過程的管理活動提供基礎。因為這個主題越來越重要和點度量方法的多樣性,我們將在第二章討論下面方法的基本模型和特性:
DeMarco的Bang度量(DeMarco's Bang Metric),
數(shù)據(jù)點(Data Points),
對象點(Object Points),
特征點( Feature Points),
3-D功能點(3-D Function Points),
IFPUG功能點(IFPUG Function Points),
Mark II功能點(Mark II Function Points),
全面功能點(Full Function Points)。
在第三章將從以下幾個方面評價上面的功能規(guī)模度量方法:
對不同功能業(yè)務領域的適用性,
滲透程度和實踐背景,
工具支持情況,
試驗和驗證,
標準化情況,
確認。
接著,本文會給出在某種特定情況采用哪種方法的建議。
因為討論功能規(guī)模度量的共性問題非常重要,本文將在第四章討論以下問題:
自動操作,
客觀性/可靠性,
可兌換性,
加權因子值的意義,
重用的包含,
新技術問題
可能的度量工作產品
既然功能規(guī)模度量方面不斷地連續(xù)變化,我們在第五章說明一些可供選擇地最近發(fā)布的方法:
預言性的對象點(Predictive Object Points),
組件重用方法(Component Reuse Method),
構造點(Construction Points)。
2.功能規(guī)模度量方法概述
自從工程方法和原理應用到軟件開發(fā)過程,功能規(guī)模度量的重要性不斷提高。圖1表示軟件規(guī)模度量的一般過程。如圖所示,軟件規(guī)模度量有兩個基本階段。映射階段是應用概念和定義來代表軟件,評價階段是根據(jù)特定的規(guī)則和過程計算/度量萃取的元素。
Fetcke做了功能規(guī)模度量一般結構提議結果的更進一步的調查研究[21]。
自從1979年第一個世界范圍的功能點方法發(fā)表以來,許多針對原著變革、擴展的可供選擇的方法被提出來。圖2以時間順序顯示了包括那些在下面要詳細描述的方法的演變重要階段。方法之間的箭頭表示各個擴展版本的相互影響。圖中顯示最近的方法是COSMIC全面功能點。既然早先的方法對這種方法存在大量影響,我們的研究會特別關注這種方法。
功能規(guī)模度量方法發(fā)展過程[08]
2.1 DeMarco 的Bang 度量
開發(fā)者/機構 日期
Tom DeMarco, 1982
開發(fā)原因和隸屬領域
DeMarco's的咨詢活動常常使得他面臨比MIS系統(tǒng)更加復雜的軟件系統(tǒng)。由于這個原因,他致力于系統(tǒng)和科學軟件領域[04]。
基本輸入/模型
基本度量元素 [04]:
功能基元(functional primitives ),
修正功能基元(modified functional primitives),
數(shù)據(jù)元素 (data elements),
輸入數(shù)據(jù)元素 (input data elements),
輸出數(shù)據(jù)元素 (output data elements),
存儲數(shù)據(jù)元素(stored data elements),
對象(實體) (objects (entities ),
關系(relationships ),
在狀態(tài)轉變模型中的狀態(tài)( states in a state transition model),
在狀態(tài)轉變模型中的轉變(transitions in a state transition model),
數(shù)據(jù)符號(data tokens),
介入被保留的數(shù)據(jù)模型中的關系(relationships involving retained data models)。
根據(jù)在功能復雜的自然區(qū)別的分級計算,被度量的元素被加權衡量。
特性
DeMarco 的Bang 制是Albrecht 方法的擴展。他考慮了數(shù)據(jù)符號和狀態(tài)轉變,數(shù)據(jù)符號和狀態(tài)轉變常常和更復雜的軟件如操作系統(tǒng)和電信系統(tǒng)相關聯(lián)。 方法中權重非常主觀 [01]。
現(xiàn)今意義
盡管是一個非常有趣的技術主意,但由于隨后的IFPUG 有更好的市場和更大的團體支持,這種方法在緊隨Albrecht功能點方法后倒下,在今天的功能規(guī)模度量這種方法沒有扮演一個重要角色并且只有少數(shù)使用者[03] 。
推薦讀物: 文獻[04]
2.2 數(shù)據(jù)點
開發(fā)者/機構 日期
Harry Sneed, 1989
開發(fā)原因和隸屬領域
數(shù)據(jù)點是為使得功能點方法適應現(xiàn)在軟件開發(fā)需要而改變功能點方法產生的。它打算轉移測量依據(jù)從功能到功能對象,分別到他們的數(shù)據(jù)表示法[22]。
基本輸入/模型
通過數(shù)據(jù)模型和圖形用戶界面獲得軟件規(guī)模。數(shù)據(jù)點來自對下面幾個方面的加權數(shù)量:
消息對象 (information objects ),
屬性(attributes),
通信對象(communication objects),
輸入數(shù)據(jù)(input data),
輸入數(shù)據(jù) (output data),
視圖 (views)。
被度量的元素根據(jù)8個質量因素和10個項目條件進行加權衡量[05]。
特性
數(shù)據(jù)點方法是功能點方法一個變種。
現(xiàn)今意義
沒有發(fā)現(xiàn)相關陳述文獻
2.3 對象點
開發(fā)者/機構 日期
Sneed, 1994
開發(fā)原因和隸屬領域
對象點是為適用于面向對象系統(tǒng)開發(fā)而出現(xiàn)的,根據(jù)Sneed 的觀點,傳統(tǒng)的方法不能夠適用于面向對象系統(tǒng)開發(fā)。
基本輸入/模型
對象點是根據(jù)以下幾個方面的加權量進行計算:
相應類的對象類型(object types respectively classes),
對象屬性(object attributes),
對象關系(object relations ),
對象方法(object methods ),
消息(messages),
消息參數(shù)(parameters in messages),
消息源(message sources),
消息的目的地(message destinations),
重用百分比( percentage of reuse)。
計算值根據(jù)10個影響因素進行加權[22]。
現(xiàn)今意義
沒有發(fā)現(xiàn)相關陳述文獻
特性
還有幾個學者開發(fā)和介紹了適用于面向對象系統(tǒng)規(guī)模的方法。這些作為對象點或和對象點有關的方法已經常常被關注。如
對象點分析(Object Points Analysis (Banker, 1991)),
面向對象的功能點(Function Points with OO (Below, 1995)),
對象點分析(Object Points Analysis (Gupta, 1996) ),
用例和面向對象( Usecases and OO (Fetcke, 1997)),
面向對象功能點(Object Oriented Function Points (Caldiera,1998) ),
增強對象點(Enhanced Object Points (Stensrud, 1998))。
本文沒有考慮這些方法。更詳細的信息可以看Abran 和Desharnais的文獻綜述[46]。
2.4 特征點
開發(fā)者/機構 日期
Capers Jones/Software Productivity Research, 1986
開發(fā)原因和隸屬領域
這種方法的主要目的是為系統(tǒng)和實時軟件提供更好的度量,因為IFPUG功能點方法最初是為MIS系統(tǒng)發(fā)明的[01]。
基本輸入/模型
與IFPUG功能點方法比較,這種方法在下面幾個元素外還添加了一個新的參數(shù),運算法則。
輸入(inputs),
輸出(outputs),
查詢(inquiries),
外部接口文件(external interface files),
內部邏輯文件(internal logical files )。
權重被修改了,如根據(jù)Jones 觀點,邏輯文件的重要性減少了[01]。
特性
特征點是IFPUG功能點4.0版的擴展。對于MIS應用程序,特征點和IFPUG功能點的度量結果幾乎一樣[01] 。
現(xiàn)今意義
特征點方法被實驗了很長時間。但沒有充分的數(shù)據(jù)顯示它能夠穩(wěn)定地進行使用。但是研究者們在他們的例證環(huán)境下說明了成功使用這種方法穩(wěn)定性[07]。他的優(yōu)點也是最主要的問題是運算法則的定義和權重[08][17]。這種方法今天不被SPR支持。
2.5 3-D 功能點
開發(fā)者/機構 日期
Boeing Computer Services, 1991
開發(fā)原因和隸屬領域
3-D功能點是一種覆蓋系統(tǒng)軟件(包括科學和實時領域)而得到與具體業(yè)務技術無關的度量方法[07]。
基本輸入/模型
為了確定3-D 功能點,需要度量以下幾個方面:
數(shù)據(jù)(data (according to IFPUG 4.0)),
功能復雜度數(shù)字的( number of complexity of functions),
控制狀態(tài)的數(shù)字(系統(tǒng)狀態(tài)和狀態(tài)轉變)(number of control statements (system states and state transitions) [05])。
特性
3-D功能點識別了反映應用程序難題的3維(數(shù)據(jù),功能,控制)。數(shù)據(jù)難題多是MIS/商業(yè)軟件的典型,而科學/工程軟件是功能難題多,實時軟件是控制難題多[07]。因而說,3-D功能點適用于提及的軟件方面。
現(xiàn)今意義
依照Symons, 該方法一直被波音公司成功使用,但是不幸的是除了波音公司外沒有別的詳細信息發(fā)布 [08] 。
推薦讀物: 文獻[09]
2.6 IFPUG 功能點
開發(fā)者/機構 日期
首先由IBM的Albrech在1979年發(fā)表 ,隨后被IFPUG繼承,現(xiàn)行版本是4.1, 1999
開發(fā)原因和隸屬領域
主要是為了克服代碼行規(guī)模度量對語言的依賴性。目標領域是MIS系統(tǒng)。
基本輸入/模型
如圖3所示,依照IFPUG 4.1,下列實體需要度量和分別加權:
外部輸入(external input),
外部輸出(external output),
內部邏輯文件(internal logical file),
外部邏輯文件(external logical file ),
外部查詢(external inquiries )。
以14個影響因素為基礎計算的加權因子值對上面計算值進行調整[11]。
特性
功能點方法是針對MIS系統(tǒng)開發(fā)的。雖然有些對其他軟件領域(實時,面向對象)的案例研究,但始終存在這種方法是否滿足這些軟件領域的要求的討論。本文有關這種軟件規(guī)模度量方法的評論在下面的評價和共性問題討論進行。
現(xiàn)今意義
功能點分析是一種應用最廣的功能規(guī)模度量技術。IFPUG功能點已經變?yōu)闇蕵藴省?/p>
推薦讀物: 文獻[11], [12]
2.7 Mark II 功能點
開發(fā)者/機構 日期
Charles Symons, 1988 現(xiàn)行版本: 1.3.1, 1998
基本輸入/模型
依照Symons ,Mark II功能點目標是:
與IFPUG比較,Mark II功能點減少對文件處理的主觀性;
確保整個系統(tǒng)整體度量和部分計算的總和的結果一致,
比交給用戶的功能,更多關注需要生產的功能的工作量 [14]。
基本輸入/模型
如圖4所示,Mark II 方法度量以下事物類別,他們要被一些因素加權:
輸入( input),
處理過程(processing),
輸出(output)。
計算值通過可選的19個影響因素(其中14個和IFPUG一樣,另外再加5個)加權[13]。
現(xiàn)今意義
Mark II 方法被英國專門使用
推薦讀物: 文獻[13], [14]
2.8 全面功能點
開發(fā)者/機構 日期
St.-Pierre at al., 1997 [06] 后來被COSMIC繼承。
現(xiàn)行版本: 2.1, 2001
開發(fā)原因和隸屬領域
全面功能點分析的目的是為了象滿足MIS系統(tǒng)一樣滿足實時,技術和系統(tǒng)軟件,因而企圖克服如IFPUG功能點分析等早先方法應用類別的邊界。優(yōu)先權給予了實時系統(tǒng)。
.基于對數(shù)據(jù)流程表現(xiàn)系統(tǒng)規(guī)模的近似假設,這種方法適用于大部分MIS,實時和操作系統(tǒng)軟件[15][16]。
基本輸入/模型
全面功能點方法通過分析用戶功能需求決定軟件規(guī)模。
一個非常重要的手段是綜合層理念。可以分成幾個層面表現(xiàn)軟件的不同視域。圖5顯示了可能的變量,因而分布和復雜系統(tǒng)的同等度量成為可能。如圖7所示,通過度量以下數(shù)據(jù)流類別決定功能規(guī)模:
進口(entries),
出口( exits),
讀取(reads),
寫入( writes)。
標準單位是1 Cfsu(COSMIC functional size unit) ,它等同于一個數(shù)據(jù)流。系統(tǒng)規(guī)模是所有數(shù)據(jù)流的總和。
特性
雖然版本1是IFPUG功能點的一個擴展(圖6顯示了它的基本模型)。版本2挖出、捕獲了以前的方法的基本理念 [10] 。這個版本的開發(fā)是由COSMIC的來自8個大家40個專家完成的。
現(xiàn)今意義
既然全面功能點版本2是一個新的的方法(所謂的現(xiàn)場試驗在今年已經完成),在不久的將來將會顯示,要不這種方法將變得更加重要,要不IFPUG 功能繼續(xù)重要。
推薦讀物:文獻[15],[16]
溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |