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