版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章軟件功能點(diǎn)度量方法概述本章介紹軟件項(xiàng)目開發(fā)與維護(hù)所面臨的典型問題,指出解決這些問題的基本途徑是軟件項(xiàng)目的定量評(píng)價(jià)分析。在比較了各種軟件定量評(píng)價(jià)方法的基礎(chǔ)上建議采用功能點(diǎn)方法作為軟件定量評(píng)價(jià)的基礎(chǔ)方法。本章進(jìn)一步介紹目前被ISO標(biāo)準(zhǔn)采納的5種功能點(diǎn)標(biāo)準(zhǔn),依次是MarkII功能點(diǎn)標(biāo)準(zhǔn)、COSMIC功能點(diǎn)標(biāo)準(zhǔn)、NESMA功能點(diǎn)標(biāo)準(zhǔn)、FISMA功能點(diǎn)標(biāo)準(zhǔn)以及IFPUG功能點(diǎn)標(biāo)準(zhǔn)。本章還對(duì)5種功能點(diǎn)標(biāo)準(zhǔn)的不同之處進(jìn)行了比對(duì)分析并給出了建議。1.1軟件困境軟件在我們生活和工作中的重要性正與日俱增。試想,沒有銀行軟件系統(tǒng)和證券軟件平臺(tái)的應(yīng)用,龐大復(fù)雜的銀行業(yè)務(wù)便不能有效地開展,證券業(yè)務(wù)也只能局限于現(xiàn)場(chǎng)交易,因而不能發(fā)揮其應(yīng)有的金融職能;沒有網(wǎng)絡(luò)管理軟件系統(tǒng)的應(yīng)用,快捷的電話聯(lián)系方式也是不可想象的;除了目前已經(jīng)廣泛應(yīng)用的固定電話和移動(dòng)電話業(yè)務(wù)之外,更有如雨后春筍般出現(xiàn)的各種數(shù)據(jù)服務(wù),例如寬帶上網(wǎng)、GPS定位導(dǎo)航等,而這些應(yīng)用無一例外地依賴于各種軟件系統(tǒng)。軟件應(yīng)用對(duì)于很多行業(yè)的發(fā)展變革甚至起決定的作用,例如基于網(wǎng)絡(luò)的傳媒信息更多地取代了傳統(tǒng)的紙質(zhì)媒體,人們的閱讀習(xí)慣因而發(fā)生了有史以來最重要的變化。由此可見,軟件無論在我們的生活還是工作中已經(jīng)變得不可或缺。軟件以其快捷、高效、經(jīng)濟(jì)等諸多優(yōu)勢(shì)幾乎滲透到各個(gè)行業(yè)中,正是軟件的普及應(yīng)用塑造了信息時(shí)代的主要特征。因?yàn)檐浖?yīng)用的互通互聯(lián),因特網(wǎng)時(shí)代之前的“信息孤島”正日益消亡,伴隨著世界范圍內(nèi)各種經(jīng)濟(jì)、科技和教育等方面的信息共享,“地球村”的預(yù)言正成為現(xiàn)實(shí)。具有諷刺意味的是,軟件在促進(jìn)信息共享、信息透明的同時(shí),自身卻存在典型的“燈下黑”現(xiàn)象。與傳統(tǒng)的建筑等行業(yè)相比較,軟件系統(tǒng)的建設(shè)與開發(fā)充滿了各種不確定性。用戶業(yè)務(wù)需求不明確、工期和費(fèi)用設(shè)置的盲目性、開發(fā)團(tuán)隊(duì)不穩(wěn)定、人員的工作經(jīng)驗(yàn)和技術(shù)水平參差不齊、“作坊式”開發(fā)模式等諸多因素使得軟件開發(fā)往往達(dá)不到預(yù)期的目的。軟件開發(fā)與建設(shè)對(duì)客戶來說更多地呈現(xiàn)為“黑盒子”特征。實(shí)際開發(fā)出的軟件系統(tǒng)往往差強(qiáng)人意,用戶在使用中抱怨不斷,不能真正滿足客戶的要求。具體表現(xiàn)為所提交的軟件系統(tǒng)功能與用戶期望的需求差異過大、工期嚴(yán)重拖延、費(fèi)用超支明顯、質(zhì)量問題層出不窮等現(xiàn)象。導(dǎo)致出現(xiàn)以上問題的原因紛繁復(fù)雜,但究其主要原因,則是因?yàn)檐浖到y(tǒng)的建設(shè)與開發(fā)的過程中管理不善所致。大量的實(shí)踐表明有效的軟件項(xiàng)目管理是改善和提高軟件系統(tǒng)建設(shè)與開發(fā)效率的主要途徑。要對(duì)軟件項(xiàng)目進(jìn)行有效的管理,首先得了解軟件項(xiàng)目的特點(diǎn)。與傳統(tǒng)行業(yè)相比較,軟件項(xiàng)目具備以下三個(gè)重要特點(diǎn)。(1)前期業(yè)務(wù)需求不清,導(dǎo)致項(xiàng)目執(zhí)行過程中需求頻繁變更。對(duì)于大部分軟件項(xiàng)目,開發(fā)團(tuán)隊(duì)在啟動(dòng)軟件需求分析之前都無法獲取明確的需求。例如對(duì)于一個(gè)電子政務(wù)項(xiàng)目而言,前期可能只會(huì)給出該項(xiàng)目的定位,例如“通過將現(xiàn)有手工業(yè)務(wù)轉(zhuǎn)變?yōu)檐浖蔚碾娮恿鞴ぷ鞣绞?,提升工作效率,并?duì)現(xiàn)有的業(yè)務(wù)模式進(jìn)行合理優(yōu)化”。可是如何對(duì)這樣籠統(tǒng)的項(xiàng)目要求進(jìn)行細(xì)化,并將其轉(zhuǎn)變?yōu)橄鄳?yīng)的軟件需求規(guī)格,軟件開發(fā)團(tuán)隊(duì)還面臨著各種挑戰(zhàn)。首先是獲取單一部門內(nèi)的業(yè)務(wù)流程,現(xiàn)有的業(yè)務(wù)流程可能本身就存在不合理或者沖突的情形,需要需求分析人員與業(yè)務(wù)人員進(jìn)一步討論才能確定。如果涉及到部門之間的業(yè)務(wù)流程,其困難程度還會(huì)進(jìn)一步加大,因?yàn)椴煌块T的人員都傾向于站在自己的立場(chǎng)來考慮問題,所以部門之間的業(yè)務(wù)流程確定往往還需要領(lǐng)導(dǎo)的強(qiáng)力參與。伴隨著組織業(yè)務(wù)流程的調(diào)整,通常意味著部門和人員的重新定位,有時(shí)甚至影響相關(guān)人員的切身利益,此時(shí)的需求分析將會(huì)面臨更大的阻力。除了來自業(yè)務(wù)部門本身的挑戰(zhàn)外,業(yè)務(wù)人員與技術(shù)人員的溝通也存在明顯的障礙,即客戶與技術(shù)開發(fā)方對(duì)業(yè)務(wù)需求的理解不一致??蛻舴降臉I(yè)務(wù)人員通常認(rèn)為自己對(duì)業(yè)務(wù)需求的表述清楚無誤,而開發(fā)方卻覺得業(yè)務(wù)人員語焉不詳,并沒有將業(yè)務(wù)的來龍去脈交待清楚。不少項(xiàng)目在各方對(duì)于需求的理解還未達(dá)成一致的情況下就開始項(xiàng)目,結(jié)果項(xiàng)目是邊做邊改,等到項(xiàng)目臨近結(jié)束時(shí),需求已“面目全非”,與雙方前期確定的需求相差甚遠(yuǎn)。試想,一棟大樓或一座大橋在還未確定功能或結(jié)構(gòu)的前提下就開始動(dòng)工,然后在施工的過程中再根據(jù)用戶的要求不斷變更,將會(huì)出現(xiàn)什么樣的結(jié)果?結(jié)果很可怕,所以沒人做這樣的嘗試。但軟件項(xiàng)目不然,環(huán)顧我們身邊的軟件項(xiàng)目,有多少項(xiàng)目真正能夠做到“謀定而后動(dòng)”呢?正是軟件需求的脆弱性和易變性導(dǎo)致了軟件項(xiàng)目的失控。(2)項(xiàng)目目標(biāo)失控,明顯超出客戶心理預(yù)期。所有的軟件項(xiàng)目在初期都會(huì)設(shè)置相應(yīng)的管理目標(biāo),包括項(xiàng)目所要實(shí)現(xiàn)的功能、項(xiàng)目工期、項(xiàng)目預(yù)算以及項(xiàng)目的質(zhì)量目標(biāo)等。可是在項(xiàng)目開發(fā)的過程中卻發(fā)現(xiàn)這些目標(biāo)無異于“海市蜃樓”,可望而不可及。大部分軟件項(xiàng)目或多或少地表現(xiàn)出下列特征:要么是“種瓜得豆”,要求的功能大幅縮水;要么是項(xiàng)目工期嚴(yán)重滯后,影響客戶業(yè)務(wù)的正常運(yùn)行;或者項(xiàng)目嚴(yán)重超支,軟件開發(fā)商雖然投入了額外的人力物力,但客戶并不領(lǐng)情;更有甚者,雖然軟件系統(tǒng)勉強(qiáng)按時(shí)上線,但后續(xù)的質(zhì)量問題卻層出不窮,“摁下葫蘆浮起瓢”,永遠(yuǎn)有解決不完的問題。既然上述問題是目前軟件項(xiàng)目所面臨的共性問題,那么單一地將其歸屬為軟件開發(fā)商的責(zé)任似乎有失公允。設(shè)想這樣的場(chǎng)景:如果對(duì)一個(gè)小學(xué)班級(jí)進(jìn)行數(shù)學(xué)測(cè)驗(yàn),孩子們最后的平均成績(jī)?yōu)?分(考試采用百分制)。30分的平均成績(jī)說明什么呢?首先孩子們的數(shù)學(xué)知識(shí)學(xué)得不夠好,怎么才考30分呢?其次,數(shù)學(xué)測(cè)驗(yàn)題目有問題,為孩子們?cè)O(shè)置了過高的目標(biāo)要求(學(xué)生家長(zhǎng)往往更傾向于這種結(jié)論)。對(duì)軟件項(xiàng)目而言,也存在類似的現(xiàn)象。所以在抱怨軟件開發(fā)商工作績(jī)效的同時(shí),客戶似乎也應(yīng)該進(jìn)行自我反省,客戶要求的目標(biāo)合理嗎?我國現(xiàn)在大部分的軟件項(xiàng)目均采用招投標(biāo)的方式來選擇供應(yīng)商,再加上在國內(nèi)的軟件行業(yè)中普遍存在“買方市場(chǎng)”的特點(diǎn),許多軟件開發(fā)商都存在“先拿到合同再說”這樣的心理,故而往往對(duì)于客戶所提的各種要求都滿口應(yīng)承,即使認(rèn)為客戶設(shè)置的項(xiàng)目目標(biāo)不合理,也往往忍氣吞聲、委曲求全①也有一些軟件開發(fā)組織與客戶簽署合同之前,對(duì)于客戶單方面設(shè)定的目標(biāo)會(huì)提出不同的建議,例如更為合理的工期、成本與質(zhì)量目標(biāo)等,但這些建議對(duì)于客戶往往缺乏足夠的說服力。因?yàn)榇蠖鄶?shù)軟件開發(fā)組織并沒有一個(gè)明確的、量化的過程可以向客戶表明自己所建議目標(biāo)的客觀性、合理性,代之以“根據(jù)我們的經(jīng)驗(yàn)”、“參照我們以前的項(xiàng)目”等說法,因而缺乏說服力,最終只能接受客戶方設(shè)置的項(xiàng)目目標(biāo)。但軟件項(xiàng)目最終的結(jié)果卻讓客戶追悔莫及,油然而生“早知如今,何必當(dāng)初”的感嘆。所以如何為客戶設(shè)定合理的項(xiàng)目目標(biāo)至關(guān)重要。(3)軟件項(xiàng)目的成功過度依賴個(gè)人,缺乏來自組織的過程保證。成熟與不成熟的軟件開發(fā)組織相比較,其最大差異在于兩者的可預(yù)期性。不成熟的軟件開發(fā)組織往往傾向于過度承諾,而實(shí)際開發(fā)過程中卻經(jīng)常面臨捉襟見肘的困境:要么是工期嚴(yán)重滯后,要么是成本超支,工期若能勉強(qiáng)得到保證,通常即意味著質(zhì)量風(fēng)險(xiǎn)。而高成熟度組織所做出的承諾通常可以得到真實(shí)的兌現(xiàn)。在不成熟的軟件開發(fā)組織內(nèi),更多地采用“游擊隊(duì)”、“個(gè)人英雄主義”的開發(fā)模式,在項(xiàng)目中甚至沒有采用相應(yīng)的軟件配置管理平臺(tái),更沒有進(jìn)行軟件項(xiàng)目計(jì)劃與跟蹤、軟件項(xiàng)目質(zhì)量評(píng)價(jià)等相應(yīng)的管理措施。這種“作坊式”的開發(fā)模式導(dǎo)致軟件開發(fā)的最終結(jié)果主要取決于個(gè)人因素,而組織對(duì)軟件項(xiàng)目的管理與控制則力不從心,只能寄希望于員工在工作中一直表現(xiàn)出認(rèn)真、負(fù)責(zé)、任勞任怨的態(tài)度。如果出現(xiàn)項(xiàng)目經(jīng)理或項(xiàng)目組成員離職等情形,對(duì)軟件開發(fā)的影響通常是致命的,新加入的人員不得不從頭再將前任的工作完成一遍。軟件開發(fā)是一項(xiàng)群體的智力活動(dòng),軟件開發(fā)過程是否高效、開發(fā)團(tuán)隊(duì)工作是否工作在同一基礎(chǔ)之上、個(gè)人的工作成果能否完全融合到項(xiàng)目中等因素對(duì)于成功的軟件開發(fā)至關(guān)重要,而要保證軟件團(tuán)隊(duì)工作的有效性,來自軟件開發(fā)組織的過程管理則必不可少。適用于軟件開發(fā)的典型過程管理模型包括ISO9000模型、CMMI模型和RUP模型等,而在這些模型中無一例外地強(qiáng)調(diào)了過程度量的重要性。正是通過過程度量,我們才能評(píng)價(jià)當(dāng)前工作的好與壞、正常還是異常、是否需要采取糾正措施或補(bǔ)救措施等?!叭速F有自知之明”被許多人奉為人生的圭臬,可是許多軟件開發(fā)組織卻缺乏“自知之明”,項(xiàng)目組的產(chǎn)出如何?組織的開發(fā)績(jī)效如何?對(duì)開發(fā)過程中生成的需求或技術(shù)文檔質(zhì)量狀況是否滿意?對(duì)類似的問題許多組織往往會(huì)采用“還行”、“不錯(cuò)”、“我們有信心”等模棱兩可的說法來搪塞,因?yàn)榻M織根本就沒有數(shù)據(jù)?;谝陨戏治觯壳败浖?xiàng)目管理所面臨的困境可以歸結(jié)為三個(gè)“說不清”:需求說①作為某些人的處世哲學(xué),這種態(tài)度無可厚非。但用于軟件項(xiàng)目目標(biāo)的設(shè)置則弊端叢生,因?yàn)椴回?fù)責(zé)任的承諾常常會(huì)害人又害己。不清;目標(biāo)說不清;過程說不清。要做什么不清楚,做到什么程度不清楚,中間過程也說不清,這樣的項(xiàng)目做出的軟件可想而知會(huì)是什么結(jié)果。說不清首先和軟件本身的特點(diǎn)相關(guān),從客觀角度分析可能包含兩方面的原因:首先,軟件不同于其他的有形產(chǎn)品,很多時(shí)候難以去想象最終的產(chǎn)品究竟是什么樣子;其次,軟件的開發(fā)過程主要表現(xiàn)為人們的智力活動(dòng),表現(xiàn)為建立模型、編寫文檔和代碼調(diào)試等可見性較低的活動(dòng)形式。所以上述兩類原因?qū)е氯藗儗?duì)軟件不容易“說清楚”。除了客觀方面的原因外,可能也有來自人員本身的主觀原因?,F(xiàn)在各行各業(yè)都在倡導(dǎo)“定量化”的管理模式,對(duì)于軟件行業(yè)也應(yīng)該引入定量管理的理念,可為什么在國內(nèi)的軟件開發(fā)組織中真正采用定量管理模式的組織卻少之又少呢?第一,可能是由于思維慣性?!拔覀円恢倍际沁@么跟著感覺走,也沒出啥大問題嘛”,不愿意主動(dòng)提升和優(yōu)化現(xiàn)有的軟件開發(fā)過程。第二,和我們的傳統(tǒng)文化有關(guān)。如果采用定量管理的辦法使得大家的工作都透明化,是否組織中的每個(gè)人都喜歡看到這樣的結(jié)果?中國的傳統(tǒng)文化強(qiáng)調(diào)中庸,強(qiáng)調(diào)“水至清則無魚”,你把賬算那么清楚,犯得著嗎?所以我們看到在各個(gè)國家審計(jì)部門都不是一個(gè)受歡迎的部門,他們總是拿著數(shù)據(jù)報(bào)告要?jiǎng)e人解釋自己的行為或結(jié)果。在軟件項(xiàng)目中采用定量評(píng)價(jià)的方式雖不至于產(chǎn)生類似經(jīng)濟(jì)領(lǐng)域的“審計(jì)風(fēng)暴”,但迫使人們?cè)谑潞笠P(guān)注自己的行為,有時(shí)甚至還需要為自己的行為進(jìn)行解釋。在潛意識(shí)里,人們希望自己在工作中的束縛和來自外部的檢查盡可能的少。因而在軟件開發(fā)組織中引入定量管理評(píng)價(jià)機(jī)制通常是不受歡迎的,甚至?xí)獾降种?。因?yàn)榇嬖谶@樣那樣的原因,所以我們國家的軟件開發(fā)現(xiàn)狀在最近5年、甚至最近10年并沒有發(fā)生明顯的變化①雖然我們的軟件行業(yè)表現(xiàn)得朝氣蓬勃,但我們的沉淀和積累仍然不足。如果我們對(duì)現(xiàn)狀不滿,那就必須做出改變。如何改變?在軟件開發(fā)過程中引入定量管理評(píng)價(jià)方法則是必不可少的一個(gè)主要步驟,而定量評(píng)價(jià)方法的基礎(chǔ)則是軟件項(xiàng)目規(guī)模的評(píng)價(jià)。如果能夠在軟件項(xiàng)目管理過程中引入基于功能點(diǎn)度量方法的規(guī)模評(píng)估,則有助于我們做到“需求說清楚”、“目標(biāo)說清楚”和“過程說清楚”。1.2軟件規(guī)模評(píng)價(jià)方法為什么說軟件規(guī)模評(píng)價(jià)是軟件量化管理的基礎(chǔ)?在實(shí)際的軟件開發(fā)項(xiàng)目中我們好像更關(guān)注工期、成本和質(zhì)量。軟件規(guī)模、工期、成本以及質(zhì)量之間存在什么樣的關(guān)系以及如何對(duì)這些關(guān)系進(jìn)行定量表述是軟件項(xiàng)目量化管理的主要內(nèi)容。在介紹這些依賴關(guān)系之前,有必要首先建立“和諧項(xiàng)目管理”理念。對(duì)一個(gè)軟件項(xiàng)目而言,在項(xiàng)目中會(huì)設(shè)置4個(gè)最主要的目標(biāo),即項(xiàng)目范圍、項(xiàng)目時(shí)間、項(xiàng)目成本以及項(xiàng)目質(zhì)量。它們4者之間相互影響、相①甚至于軟件開發(fā)組織中的人員平均年齡也是如此,10年前的軟件開發(fā)組織人員平均年齡大概為二十六七歲,10年后的平均年齡依然如此。
圖1.1軟件項(xiàng)目管理三角形互依賴,如圖1.1圖1.1軟件項(xiàng)目管理三角形也許有些讀者還記得若干年前我們國家的一句政治口號(hào):“多快好省地建設(shè)社會(huì)主義”,這種提法的出發(fā)點(diǎn)是好的,但忽視了經(jīng)濟(jì)建設(shè)的內(nèi)在規(guī)律,最終導(dǎo)致了“大躍進(jìn)”的局面,對(duì)中國經(jīng)濟(jì)的健康發(fā)展造成很大的傷害。即使在我們大力倡導(dǎo)科學(xué)發(fā)展觀的今天,仍然有不少客戶和領(lǐng)導(dǎo)希望軟件項(xiàng)目完成的功能越多越好、工期越快越好、成本越低越好、質(zhì)量越高越好,豈不是“多快好省”模式在軟件行業(yè)的完全翻版?我們應(yīng)該從錯(cuò)誤的做法中汲取經(jīng)驗(yàn)和教訓(xùn),而不是重蹈覆轍。我們現(xiàn)在的社會(huì)和經(jīng)濟(jì)發(fā)展強(qiáng)調(diào)“和諧”理念,對(duì)于軟件項(xiàng)目管理也要遵循“和諧”的管理模式。概言之,即要完成的軟件功能有多少,就應(yīng)該設(shè)置多長(zhǎng)的工期,就應(yīng)該設(shè)定多少預(yù)算,就應(yīng)該設(shè)置相應(yīng)的質(zhì)量目標(biāo),而不是一味求快貪多,置客觀事務(wù)的內(nèi)在聯(lián)系于不顧。正如其他傳統(tǒng)行業(yè)的定量評(píng)價(jià)機(jī)制一樣,項(xiàng)目的工期、成本和質(zhì)量目標(biāo)的設(shè)置主要取決于項(xiàng)目所要完成的工作內(nèi)容①例如修建鐵路的成本與工期主要取決于道路的長(zhǎng)度;辦公大樓的建設(shè)費(fèi)用與工期則主要取決于建筑面積。所以要在軟件項(xiàng)目管理過程中引入量化評(píng)價(jià)機(jī)制,對(duì)于軟件規(guī)模本身的評(píng)價(jià)則是首要任務(wù)。只有確定了軟件規(guī)模,才能得到其他的項(xiàng)目管理目標(biāo);只有預(yù)先設(shè)定了項(xiàng)目目標(biāo),定量管理才有執(zhí)行的依據(jù)。根據(jù)軟件行業(yè)的實(shí)踐,目前評(píng)價(jià)軟件規(guī)模的方法可以區(qū)分為兩種評(píng)價(jià)方法:非標(biāo)準(zhǔn)評(píng)價(jià)方法和標(biāo)準(zhǔn)評(píng)價(jià)法。非標(biāo)準(zhǔn)評(píng)價(jià)方法具有操作簡(jiǎn)單、容易實(shí)施等特點(diǎn),但不容易在項(xiàng)目干系人之間達(dá)成一致,往往會(huì)引起較多的分歧;標(biāo)準(zhǔn)評(píng)價(jià)法則較好地克服了非標(biāo)準(zhǔn)評(píng)價(jià)方法的不足,但因?yàn)槠洳僮飨鄬?duì)繁瑣,很多情形下甚至需要外部咨詢機(jī)構(gòu)的輔導(dǎo),因而在實(shí)際應(yīng)用中也受到一定程度的限制。1.2.1非標(biāo)準(zhǔn)評(píng)價(jià)方法與軟件規(guī)模標(biāo)準(zhǔn)評(píng)價(jià)方法相比,非標(biāo)準(zhǔn)評(píng)價(jià)方法更多采用約定俗成的方式,評(píng)價(jià)方法有較強(qiáng)的主觀性,因而難以保證評(píng)估結(jié)果的一致性。但因?yàn)檫@些評(píng)價(jià)方式簡(jiǎn)便易行,因而在我國軟件行業(yè)中仍然占據(jù)主導(dǎo)地位。典型的非標(biāo)準(zhǔn)評(píng)價(jià)方法包括軟件源代碼行評(píng)價(jià)法、對(duì)象點(diǎn)評(píng)價(jià)法、需求數(shù)量評(píng)價(jià)法、用例數(shù)評(píng)價(jià)法以及文檔頁碼評(píng)價(jià)法等。軟件源代碼行評(píng)價(jià)法在所有的軟件項(xiàng)目規(guī)模評(píng)價(jià)方法中,軟件源代碼行方法在我國的軟件行業(yè)中仍然占據(jù)①軟件項(xiàng)目的工期、成本和質(zhì)量目標(biāo)主要取決于項(xiàng)目的工作內(nèi)容,但同時(shí)還要受其他很多因素的影響,例如需求是否清晰、軟件技術(shù)是否成熟、開發(fā)人員的工作經(jīng)驗(yàn)和工作能力、開發(fā)團(tuán)隊(duì)的人員規(guī)模等許多因素。對(duì)這一話題感興趣的讀者可以通過網(wǎng)絡(luò)途徑參閱筆者的博士論文一一《IT行業(yè)經(jīng)濟(jì)與管理指標(biāo)測(cè)度與預(yù)報(bào)模型的實(shí)證研究》。統(tǒng)治地位。顧名思義,軟件源代碼行法就是以完成的軟件源代碼的數(shù)量表示軟件項(xiàng)目所完成的功能的多少。源代碼行方法最大的特點(diǎn)即是簡(jiǎn)單,直接數(shù)出代碼行的數(shù)量即可。不同的項(xiàng)目源代碼行數(shù)量不同,小項(xiàng)目可能只有幾千行代碼,而那些規(guī)模巨大的項(xiàng)目動(dòng)輒會(huì)超過百萬行。但應(yīng)用代碼行作為評(píng)價(jià)軟件項(xiàng)目規(guī)模的方法,其缺點(diǎn)也是顯而易見的。首先,代碼行從技術(shù)而非業(yè)務(wù)角度度量軟件規(guī)模。對(duì)于沒有足夠技術(shù)背景的客戶或其他項(xiàng)目外部干系人來說,代碼行不具備說服力,他們總是傾向猜測(cè)技術(shù)人員使用了過多的代碼來實(shí)現(xiàn)軟件功能。其次,代碼行度量不及時(shí)。度量軟件項(xiàng)目規(guī)模的主要目的往往要在前期確定項(xiàng)目的工期、費(fèi)用等關(guān)鍵指標(biāo),但在項(xiàng)目前期只有籠統(tǒng)的業(yè)務(wù)需求,只有當(dāng)項(xiàng)目完成后才能得到真正的代碼行數(shù)量。項(xiàng)目前期或項(xiàng)目執(zhí)行過程中估算出的代碼行數(shù)量沒有足夠的說服力,不同人員估算得到的代碼行數(shù)量也許會(huì)有50%的偏差。第三,缺乏代碼行度量標(biāo)準(zhǔn)。一行代碼是多長(zhǎng)?注釋語句算不算?跨行的語句算一行還是多行?在行業(yè)中并沒有一致的規(guī)定。即使IEEE和SEI嘗試過頒布了一些代碼行度量標(biāo)準(zhǔn),但并沒有得到廣泛的接受。最后,不同語言編寫的代碼行可比較性差。如何比較匯編語言、C語言或者Java語言編寫的語句呢?如果使用多語言開發(fā)的程序,又該如何度量代碼行的數(shù)量呢?雖然軟件代碼行方法目前在我國的軟件行業(yè)中仍然是一種普遍的規(guī)模估算方法,但因?yàn)槠湟恢滦圆蝗菀椎玫奖WC,越來越多的軟件開發(fā)組織傾向于采用標(biāo)準(zhǔn)評(píng)價(jià)方法(功能點(diǎn)標(biāo)準(zhǔn))來衡量軟件項(xiàng)目的規(guī)模。2.對(duì)象點(diǎn)評(píng)價(jià)法對(duì)象點(diǎn)(ObjectPoin)評(píng)價(jià)法屬于BarryBohem所提出的COCOMOII模型的組成部分,主要適用于基于組件或可視化開發(fā)環(huán)境的項(xiàng)目,同時(shí)也適用于原型項(xiàng)目。對(duì)象點(diǎn)評(píng)價(jià)法基于加權(quán)的概念將軟件項(xiàng)目的工作內(nèi)容轉(zhuǎn)換為相應(yīng)的對(duì)象點(diǎn)數(shù)量,它包含最基本的三個(gè)對(duì)象點(diǎn)類型:屏幕、報(bào)表和組件①屏幕對(duì)應(yīng)的復(fù)雜度加權(quán)表如表1.1所示。表1.1對(duì)象點(diǎn)評(píng)價(jià)法的屏幕計(jì)算表屏幕計(jì)算表引用數(shù)據(jù)表的個(gè)數(shù)包含的視圖個(gè)數(shù)總數(shù)<4總數(shù)<8總數(shù)>8(<2Server:<3Client)(廠3Server;F5Client)(>3Server:>5Client)<3簡(jiǎn)單簡(jiǎn)單平均3—7簡(jiǎn)單平均困難>8平均困難困難如果一個(gè)屏幕包含了5個(gè)視圖,且訪問了5個(gè)數(shù)據(jù)表,其中兩個(gè)是Server端的數(shù)據(jù)表,而另外三個(gè)是客戶端的數(shù)據(jù)表,則該屏幕對(duì)應(yīng)的復(fù)雜度為平均。①組件的概念在第三代開發(fā)語言面世后才出現(xiàn),其實(shí)組件就是對(duì)象。C++Builder中叫組件,Delphi中叫部件,而在VisualBASIC中叫控件。與傳統(tǒng)的代碼編寫通過定義函數(shù)實(shí)現(xiàn)功能不同,組件預(yù)定義了自己的屬性和方法,使用者只需對(duì)這些方法進(jìn)行相應(yīng)的定制即可實(shí)現(xiàn)期望的功能。
報(bào)表對(duì)應(yīng)的復(fù)雜度加權(quán)表如表1.2所示。表1.2報(bào)表的復(fù)雜度加權(quán)表報(bào)表計(jì)算表報(bào)表的節(jié)數(shù)總數(shù)<4引用數(shù)據(jù)表的個(gè)數(shù)總數(shù)<8總數(shù)>8(<2Server;<3Client)(2?3Server;3?5Client)(>3Server;>5Client)0,1簡(jiǎn)單簡(jiǎn)單平均2,3簡(jiǎn)單平均困難4+平均困難困難如果一個(gè)報(bào)表包含三個(gè)節(jié),訪問一個(gè)服務(wù)器端的數(shù)據(jù)表,對(duì)應(yīng)的復(fù)雜度為簡(jiǎn)單。對(duì)象點(diǎn)評(píng)價(jià)法中并沒有對(duì)組件設(shè)置相應(yīng)的復(fù)雜度加權(quán)表,所有的組件默認(rèn)其復(fù)雜度為平均。確定了屏幕、報(bào)表以及組件的復(fù)雜度,然后再根據(jù)對(duì)象點(diǎn)權(quán)重表將其轉(zhuǎn)換為統(tǒng)一的對(duì)象點(diǎn),如表1.3所示。表1?3對(duì)象點(diǎn)權(quán)重轉(zhuǎn)換表對(duì)象點(diǎn)權(quán)重表對(duì)象類型復(fù)雜度權(quán)重簡(jiǎn)單平均困難屏幕123報(bào)表258三代語言組件101010如果一個(gè)軟件開發(fā)項(xiàng)目要完成10個(gè)平均復(fù)雜度的屏幕、8個(gè)平均程度和3個(gè)困難程度的報(bào)表以及2個(gè)三代語言組件,則該項(xiàng)目的對(duì)象點(diǎn)規(guī)模即為(10X2+8X5+3X8+2X10)=104?;趯?duì)象點(diǎn)的生產(chǎn)率對(duì)應(yīng)表(如表1.4所示),即可推算完成該項(xiàng)目所需要的工作量。假定項(xiàng)目組的生產(chǎn)率為平均水平,則對(duì)應(yīng)的工作量為8人月(103/13=8)。表1.4基于對(duì)象點(diǎn)的生產(chǎn)率對(duì)應(yīng)表OP對(duì)應(yīng)的生產(chǎn)率開發(fā)人員的能力及開發(fā)環(huán)境的效率生產(chǎn)率(NOP/人月)很低4低7平均13高25很高50對(duì)象點(diǎn)評(píng)價(jià)法的評(píng)價(jià)方法一致,但其對(duì)對(duì)象點(diǎn)類型的劃分并無詳細(xì)的規(guī)定,所以在操作中容易引起歧義,例如不同人員對(duì)視圖的理解可能就存在歧義。3.其他非標(biāo)準(zhǔn)評(píng)價(jià)法除了上面的兩種方法外,實(shí)際工作中還會(huì)使用到需求數(shù)量評(píng)價(jià)法、用例數(shù)評(píng)價(jià)法以及文檔頁碼評(píng)價(jià)法等方法。需求數(shù)量以項(xiàng)目需要完成的需求數(shù)量作為規(guī)模衡量的方法,但對(duì)于需求的粒度卻從來就沒有統(tǒng)一的規(guī)定,包括經(jīng)常所提的模塊數(shù)量、功能模塊數(shù)量也屬于需求數(shù)量衡量的范疇,它們共同的缺陷都在于缺乏統(tǒng)一的標(biāo)準(zhǔn),甚至不如代碼行方法的一致性。用例(UseCase)是基于UML方法的一種定義軟件需求的方式。用例是軟件工程或系統(tǒng)工程中對(duì)系統(tǒng)如何反映外界請(qǐng)求的描述,每個(gè)用例提供了一個(gè)或多個(gè)場(chǎng)景,該場(chǎng)景說明了系統(tǒng)如何同最終用戶或其他系統(tǒng)交互,從而獲得一個(gè)明確的業(yè)務(wù)目標(biāo)。通過用例描述的方式可以將軟件系統(tǒng)所實(shí)現(xiàn)的功能進(jìn)行抽象和總結(jié),軟件系統(tǒng)要實(shí)現(xiàn)的功能則表現(xiàn)為一組用例,所以可通過用例數(shù)量來描述軟件項(xiàng)目的規(guī)模。相對(duì)籠統(tǒng)的“需求”“功能”等說法,用例具有較好的一致性。UML語言對(duì)用例規(guī)范建立了用例模板,例如典型的用例應(yīng)該包含如下內(nèi)容:用例名、迭代、綜述、前置條件、觸發(fā)器、基本事件流、備選路徑、后置條件、業(yè)務(wù)規(guī)則、說明、作者和日期等。如果能采用用例作為軟件規(guī)模的衡量手段也不失為一種可取的方式。但用例也存在粒度不一致的缺點(diǎn),不同的用例可能相差很大。對(duì)一個(gè)銀行應(yīng)用軟件來說,描述用戶管理的用例和住房貸款的用例可能會(huì)有很大的差別,從而缺乏橫向比對(duì)的意義。除此之外,用例對(duì)于客戶往往缺乏說服力,盡管UML的倡導(dǎo)者聲稱用例是客戶和技術(shù)人員溝通需求的最佳方式,但客戶對(duì)用例描述的需求多數(shù)還是采用敬而遠(yuǎn)之的態(tài)度。采用文檔頁碼評(píng)價(jià)法的優(yōu)點(diǎn)和不足也是顯而易見的,頁碼最容易統(tǒng)計(jì),但人們的書寫習(xí)慣、邏輯表達(dá)能力、圖形與文字的比例、甚至紙張的大小等因素都使得頁碼評(píng)價(jià)法很難成為合適的軟件規(guī)模評(píng)價(jià)方法。非標(biāo)準(zhǔn)評(píng)價(jià)法以其方便理解、易于操作的特點(diǎn)在實(shí)際工作中得到廣泛應(yīng)用,盡管存在不同程度的不一致缺陷,但聊勝于無。無論如何,非標(biāo)準(zhǔn)評(píng)價(jià)法對(duì)于軟件規(guī)模給出了一個(gè)明確的、用數(shù)字表示的數(shù)值,從而使得在此基礎(chǔ)上討論項(xiàng)目的工期、費(fèi)用和質(zhì)量目標(biāo)等量化管理目標(biāo)成為可能。如果要盡可能減少項(xiàng)目干系人對(duì)于軟件規(guī)模評(píng)價(jià)結(jié)果理解的歧義,則需要采用軟件規(guī)模的標(biāo)準(zhǔn)評(píng)價(jià)方法一一功能點(diǎn)方法。1.2.2標(biāo)準(zhǔn)評(píng)價(jià)方法上述各種非標(biāo)準(zhǔn)評(píng)價(jià)方法雖然在實(shí)際工作中也有著普遍的應(yīng)用,但更多地局限于軟件開發(fā)團(tuán)隊(duì)內(nèi)部。如果要在業(yè)務(wù)部門與開發(fā)部門、甲方與乙方等外部組織約定軟件開發(fā)的工期或費(fèi)用等關(guān)鍵項(xiàng)目目標(biāo),則首先需要對(duì)軟件項(xiàng)目規(guī)模進(jìn)行標(biāo)準(zhǔn)、一致的評(píng)價(jià)與估算。目前的軟件規(guī)模標(biāo)準(zhǔn)評(píng)價(jià)方法都同屬一類方法,即功能點(diǎn)方法。用功能點(diǎn)衡量軟件項(xiàng)目規(guī)模類似于用平方米衡量房間的面積,或者用千克衡量體重,所以如果使用功能點(diǎn)方法衡量軟件項(xiàng)目規(guī)模,則不同的人員對(duì)同一項(xiàng)目的軟件功能可以得到一致的結(jié)果,從而克服軟件規(guī)模非標(biāo)準(zhǔn)評(píng)價(jià)方法的不足。從美國人AllanJ.Albrecht在20世紀(jì)70年代末提出功能點(diǎn)方法以來,功能點(diǎn)在軟件行業(yè)的應(yīng)用與實(shí)踐已超過30年,在Albrecht的功能點(diǎn)模型基礎(chǔ)之上,經(jīng)過進(jìn)一步應(yīng)用與發(fā)展,功能點(diǎn)標(biāo)準(zhǔn)演進(jìn)為一個(gè)總標(biāo)準(zhǔn)(ISO14143)與5個(gè)子標(biāo)準(zhǔn)(Markll標(biāo)準(zhǔn)、COSMIC標(biāo)準(zhǔn)、NESMA標(biāo)準(zhǔn)、FISMA標(biāo)準(zhǔn)以及IFPUG標(biāo)準(zhǔn))。1.3功能點(diǎn)標(biāo)準(zhǔn)作為評(píng)價(jià)軟件規(guī)模的標(biāo)準(zhǔn)方法,功能點(diǎn)度量方法(FunctionPointAnalysis)已經(jīng)被納入ISO14143標(biāo)準(zhǔn)系列。就功能點(diǎn)方法的發(fā)展歷程分析,目前被納入ISO14143的5種實(shí)際操作方法都源自于AllanJ.Albrecht所提出的功能點(diǎn)分析思想。當(dāng)然,各種標(biāo)準(zhǔn)之間又存在一定的差異和共性。為了保證這些功能點(diǎn)操作方法的一致性和客觀性,ISO組織委托ISO/IECJTC1(信息技術(shù))的SC7(軟件與系統(tǒng)工程)委員會(huì)制定了ISO14143標(biāo)準(zhǔn)。ISO14143標(biāo)準(zhǔn)本身又包含了6個(gè)子標(biāo)準(zhǔn),各子標(biāo)準(zhǔn)的作用如下:ISO14143-1:概念定義(DefinitionofConcepts),對(duì)標(biāo)準(zhǔn)中所采用的術(shù)語給出解釋。ISO14143-2:一致性評(píng)價(jià)(ConformityEvaluation),給出如何檢驗(yàn)功能點(diǎn)操作標(biāo)準(zhǔn)是否符合ISO14143標(biāo)準(zhǔn)的評(píng)價(jià)過程。ISO14143-3:驗(yàn)證(Verification),在需要時(shí)對(duì)功能點(diǎn)操作標(biāo)準(zhǔn)進(jìn)行驗(yàn)證。ISO14143-4:參考模型(ReferenceModel),給出功能度量方法模型以及需要度量的內(nèi)容。ISO14143-5:應(yīng)用領(lǐng)域確定(DeterminationofFunctionalDomains),確定功能點(diǎn)操作標(biāo)準(zhǔn)適用的應(yīng)用領(lǐng)域。ISO14143-6:使用指南(GuidelineforUse),對(duì)功能點(diǎn)標(biāo)準(zhǔn)的應(yīng)用提出建議和指導(dǎo)。ISO14143給出了度量功能模型的標(biāo)準(zhǔn),但在度量具體的軟件功能時(shí),使用者還應(yīng)該考慮所度量的軟件應(yīng)用領(lǐng)域,從而選取合適的功能點(diǎn)度量方法所以從這個(gè)角度分析,ISO14143是關(guān)于功能點(diǎn)度量標(biāo)準(zhǔn)的標(biāo)準(zhǔn)。在實(shí)際的軟件規(guī)模度量實(shí)踐中,目前符合ISO14143標(biāo)準(zhǔn)的功能點(diǎn)操作方法有5種,依次是MarkII標(biāo)準(zhǔn)、COSMIC標(biāo)準(zhǔn)、NESMA標(biāo)準(zhǔn)、FISMA標(biāo)準(zhǔn)以及IFPUG標(biāo)準(zhǔn)。下面各節(jié)對(duì)這些操作標(biāo)準(zhǔn)的主要特點(diǎn)和操作方法進(jìn)行簡(jiǎn)要說明。1.4MarkII功能點(diǎn)標(biāo)準(zhǔn)1991年,英國人CharlesSymons在自己的《SoftwareSizingandEstimating:MkIIFunctionPointAnalysis》一書中介紹了MarkII功能點(diǎn)的操作方法。Symnos先生在為畢馬威咨詢公司工作期間提出了MarkII功能點(diǎn)操作方法,在該操作方法的基礎(chǔ)之上形成了MarkII功能點(diǎn)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)提出后被英國政府所采納,目前該標(biāo)準(zhǔn)由英國軟件行業(yè)協(xié)會(huì)維護(hù)①。MarkII功能點(diǎn)標(biāo)準(zhǔn)目前主要在英國應(yīng)用此外在印度等國家也有一定的應(yīng)用正如Symons先生自己所言②,該功能點(diǎn)標(biāo)準(zhǔn)受到Albreht先生的功能點(diǎn)操作方法啟發(fā),不過采用了不同的加權(quán)方式來定義功能點(diǎn)標(biāo)準(zhǔn)。除了功能點(diǎn)的操作方法外,該標(biāo)準(zhǔn)還包含了功能點(diǎn)的應(yīng)用建議,例如如何基于MarkII功能點(diǎn)標(biāo)準(zhǔn)來計(jì)算項(xiàng)目的生產(chǎn)率和工作量等內(nèi)容。1.4.1MarkII功能規(guī)模度量規(guī)則為了保證MarkII功能點(diǎn)標(biāo)準(zhǔn)的一致性,該標(biāo)準(zhǔn)采用了基于規(guī)則的度量方式。MarkII的度量規(guī)則共有6條,分述如下:規(guī)則1邊界(1)MarkII功能點(diǎn)標(biāo)準(zhǔn)用于度量應(yīng)用系統(tǒng)的用戶所要求功能的規(guī)模。(2)由邊界所包含的應(yīng)用或部分應(yīng)用必須是邏輯一致的功能,包含一個(gè)或多個(gè)完整的事務(wù)邏輯類型。規(guī)則2功能規(guī)模與邏輯事務(wù)(1)應(yīng)用系統(tǒng)的功能規(guī)模是邏輯事務(wù)的規(guī)模之和,每個(gè)邏輯事務(wù)的輸入和輸出部分穿越應(yīng)用邊界。(2)邏輯事務(wù)是最低級(jí)別的完整過程,它包含三個(gè)組成部分:進(jìn)入邊界的輸入、邊界內(nèi)和存儲(chǔ)數(shù)據(jù)相關(guān)的處理以及離開邊界的輸出。(3)邏輯事務(wù)由用戶關(guān)心的獨(dú)特的事件觸發(fā),當(dāng)事務(wù)完成時(shí),應(yīng)用系統(tǒng)處于邏輯完整的狀態(tài)③。邏輯事務(wù)也可以由用戶從應(yīng)用系統(tǒng)獲取信息的需求觸發(fā),此時(shí)應(yīng)用系統(tǒng)為未修改狀態(tài)。(4)在度量應(yīng)用的功能規(guī)模時(shí),一個(gè)邏輯事務(wù)即使在應(yīng)用系統(tǒng)出現(xiàn)多次也只能度量一次。(5)對(duì)修改的應(yīng)用系統(tǒng)規(guī)模度量時(shí),將增加的、修改的和刪除的邏輯事務(wù)規(guī)模相加。這意味著當(dāng)邏輯事務(wù)的輸入、處理和輸出三部分出現(xiàn)增加、修改和刪除時(shí),將其視為事務(wù)的修改情形。規(guī)則3邏輯事務(wù)的處理類型(1)邏輯事務(wù)的處理類型根據(jù)對(duì)存儲(chǔ)數(shù)據(jù)的操作確定,例如包含新增、刪除、修改和查詢。英國軟件行業(yè)協(xié)會(huì)網(wǎng)站為,讀者可以訪問該網(wǎng)站并下載MarkII功能點(diǎn)標(biāo)準(zhǔn)。Symons先生不但作為MarkII功能點(diǎn)標(biāo)準(zhǔn)的創(chuàng)始人,最近他又作為COSMIC功能點(diǎn)標(biāo)準(zhǔn)的度量委員會(huì)成員,積極倡導(dǎo)COSMIC功能點(diǎn)標(biāo)準(zhǔn)的推廣與應(yīng)用。筆者曾在2007年與Symons先生在羅馬有一面之緣,Symons先生是一位睿智和藹的長(zhǎng)者,對(duì)于功能點(diǎn)標(biāo)準(zhǔn)在軟件行業(yè)的應(yīng)用多有真知灼見。Self-consistentstate邏輯完整的狀態(tài),說明事務(wù)功能巳經(jīng)完成,不存在只有輸入或者只有輸出的狀態(tài)。(2)處理部分的規(guī)模取決于邏輯事務(wù)所引用的主要實(shí)體類型以及系統(tǒng)實(shí)體類型。(3)對(duì)所有非主要實(shí)體類型的訪問均視為對(duì)系統(tǒng)實(shí)體類型的訪問。(4)在一個(gè)應(yīng)用邊界內(nèi)只能存在一個(gè)系統(tǒng)實(shí)體①邏輯事務(wù)類型的處理過程最多只能對(duì)其引用一次。規(guī)則4邏輯事務(wù)的輸入和輸出(1)邏輯事務(wù)輸入與輸出規(guī)模根據(jù)穿越應(yīng)用系統(tǒng)邊界的數(shù)據(jù)元素類型確定。(2)數(shù)據(jù)元素類型是邏輯事務(wù)類型中特定的處理信息,它不可分割,是穿越應(yīng)用系統(tǒng)邊界的輸入或輸出數(shù)據(jù)流的一部分。規(guī)則5邏輯事務(wù)規(guī)模(1)邏輯事務(wù)規(guī)模為輸入、處理和輸出三個(gè)組成部分的加權(quán)和。(2)該標(biāo)準(zhǔn)設(shè)定的加權(quán)方式為:輸入加權(quán)為0.58(每個(gè)輸入的數(shù)據(jù)元素類型、處理加權(quán)為1.66(每個(gè)引用的實(shí)體類型)、輸出加權(quán)為0.26(每個(gè)輸出的數(shù)據(jù)元素類型)。規(guī)則6MarkII功能計(jì)數(shù)結(jié)果根據(jù)該功能點(diǎn)計(jì)數(shù)標(biāo)準(zhǔn)所獲得的結(jié)果應(yīng)包含對(duì)應(yīng)的標(biāo)準(zhǔn)版本號(hào),例如“600MarkII功能點(diǎn)(V1.3)”或“MarkII功能點(diǎn)=600(V1.3)”。1.4.2MarkII功能規(guī)模度量步驟MarkII功能點(diǎn)標(biāo)準(zhǔn)不但定義了詳細(xì)的功能點(diǎn)技術(shù)規(guī)則,還規(guī)定了在度量軟件規(guī)模中應(yīng)遵循的完整步驟,根據(jù)這些步驟要求可以得到應(yīng)用系統(tǒng)的MarkII功能規(guī)模。MarkII功能規(guī)模度量包含11個(gè)步驟,步驟1?6規(guī)定了MarkII的計(jì)數(shù)過程;步驟7和步驟8用于確定開發(fā)或維護(hù)應(yīng)用系統(tǒng)所需的工作量、工期等關(guān)鍵的項(xiàng)目管理指標(biāo);步驟9?11則進(jìn)一步考慮了技術(shù)復(fù)雜系數(shù)。MarkII功能點(diǎn)度量步驟如圖1.2所示。圖1.2MarkII功能點(diǎn)度量步驟①M(fèi)arkII方法中對(duì)于數(shù)據(jù)類型的定義,其含義為應(yīng)用內(nèi)部所有非主要實(shí)體類型數(shù)據(jù)的集合,即代碼數(shù)據(jù)的集合。應(yīng)用內(nèi)無論存在多少個(gè)代碼數(shù)據(jù)文件,都將其視為一個(gè)系統(tǒng)實(shí)體。功能點(diǎn)度量應(yīng)該基于應(yīng)用系統(tǒng)的用戶角度來進(jìn)行,對(duì)于那些系統(tǒng)所提供的,但用戶卻不需要的功能在功能點(diǎn)計(jì)數(shù)時(shí)不予考慮。功能點(diǎn)度量本身也需要花費(fèi)一定的投入,根據(jù)MarkII功能點(diǎn)標(biāo)準(zhǔn)的特點(diǎn),功能點(diǎn)度量所花費(fèi)的工作量為項(xiàng)目總工作量的0.2%?0.4%。下面簡(jiǎn)述MarkII功能點(diǎn)度量的各個(gè)步驟。步驟1:確定計(jì)數(shù)目的與計(jì)數(shù)類型。首先應(yīng)該識(shí)別計(jì)數(shù)的客戶是誰。例如,是為了衡量開發(fā)團(tuán)隊(duì)的工作產(chǎn)出,還是希望了解特定用戶所擁有的功能數(shù)量?另外考慮不同的因素有助于確定計(jì)數(shù)目的和計(jì)數(shù)類型,例如項(xiàng)目是否包含開發(fā)、修改、維護(hù)或支持各個(gè)階段,項(xiàng)目的起始與截止時(shí)間等。步驟2:確定計(jì)數(shù)邊界。該步驟與步驟1密切相關(guān)。確定邊界將有助于識(shí)別計(jì)數(shù)過程中應(yīng)包含的邏輯事務(wù)以及識(shí)別相應(yīng)的接口。步驟3:識(shí)別邏輯事務(wù)。邏輯事務(wù)是應(yīng)用系統(tǒng)所支持的最底層過程,其識(shí)別方式參見規(guī)則2。步驟4:實(shí)體類型識(shí)別與分類。識(shí)別實(shí)體類型時(shí)最好能夠得到相應(yīng)的實(shí)體關(guān)系數(shù)據(jù)模型。但因?yàn)橹恍枰饕膶?shí)體類型(PrimaryEntityTypes),所以并不需要完全符合第三范式的數(shù)據(jù)庫模型。步驟5:輸入、過程與輸出計(jì)數(shù)。對(duì)每個(gè)邏輯事務(wù)計(jì)數(shù)時(shí),度量輸入數(shù)據(jù)元素類型(Ni)的數(shù)量、引用的數(shù)據(jù)實(shí)體類型的數(shù)量(Ne)以及輸出的數(shù)據(jù)元素類型的數(shù)量(No)。步驟6:計(jì)算功能規(guī)模。功能規(guī)模(功能點(diǎn)指數(shù),F(xiàn)unctionPointIndex)是所有事務(wù)功能的加權(quán)和,其計(jì)算公式如下:FPI=WxSN+WxZN+WxSN(公式1.1)其中的加權(quán)系數(shù)取值依次為W=0.58;6We=1.66;^=0.26。步驟7:確定工作量。16°根據(jù)項(xiàng)目的特點(diǎn)確定項(xiàng)目的總工作量和開發(fā)工期,參見MarkII功能點(diǎn)標(biāo)準(zhǔn)第7章。步驟8:計(jì)算生產(chǎn)率與其他績(jī)效系數(shù)。生產(chǎn)率的計(jì)算公式為:生產(chǎn)率=FPI/工作量;交付率的計(jì)算公式可以表示為:交付率=FPI/工期。參見MarkII功能點(diǎn)標(biāo)準(zhǔn)第8章。步驟9:影響度評(píng)分。使用技術(shù)復(fù)雜度特征來評(píng)估影響程度,參見MarkII功能點(diǎn)標(biāo)準(zhǔn)附錄1。步驟10:計(jì)算技術(shù)復(fù)雜度調(diào)整系數(shù)。計(jì)算技術(shù)復(fù)雜度調(diào)整系數(shù),參見MarkII功能點(diǎn)標(biāo)準(zhǔn)附錄1。步驟11:計(jì)算調(diào)整后的功能規(guī)模。根據(jù)步驟10計(jì)算得到的技術(shù)復(fù)雜度調(diào)整系數(shù)計(jì)算調(diào)整后的功能規(guī)模該功能規(guī)模也可替代步驟6所計(jì)算的FPI,在此基礎(chǔ)上,再根據(jù)步驟7和步驟8進(jìn)行計(jì)算,估算項(xiàng)目的工作量、工期和其他績(jī)效系數(shù)。1.4.3MarkII功能規(guī)模度量應(yīng)用MarkII功能點(diǎn)標(biāo)準(zhǔn)可廣泛地應(yīng)用于以下方面:(1)撰寫應(yīng)用系統(tǒng)的需求規(guī)格或功能規(guī)格。(2)應(yīng)用于為客戶定制的應(yīng)用系統(tǒng)(例如ERP、CRM系統(tǒng)的實(shí)施)、批處理應(yīng)用或?qū)崟r(shí)應(yīng)用系統(tǒng)。(3)度量項(xiàng)目級(jí)別或組織級(jí)別的項(xiàng)目績(jī)效(例如生產(chǎn)率、交付率和缺陷率等)。(4)比較組織內(nèi)外部的IT工作績(jī)效。(5)比較應(yīng)用系統(tǒng)的質(zhì)量和可靠性。(6)比較不同平臺(tái)上歸一化之后的開發(fā)成本、維護(hù)成本或支持成本。(7)估算項(xiàng)目所需的資源、工期和成本。(8)分析新項(xiàng)目的成本和業(yè)務(wù)方面的風(fēng)險(xiǎn)。(9)輔助項(xiàng)目前期的需求識(shí)別。(10)控制項(xiàng)目的“需求潛變”①。(11)為人員分派工作提供依據(jù)。(12)確定應(yīng)用資產(chǎn)規(guī)模。(13)為那些缺乏功能定義文檔的遺留系統(tǒng)提供相應(yīng)的功能說明。(14)確定應(yīng)用系統(tǒng)的重置費(fèi)用。1.5COSMIC功能點(diǎn)標(biāo)準(zhǔn)COSMIC(COmmonSoftwareMeasurementInternationalConsortium,通用軟件度量國際聯(lián)盟)功能點(diǎn)的前身來源于1997年所提出的FFP(FullFunctionPoint,全面功能點(diǎn))功能點(diǎn)標(biāo)準(zhǔn),后來FFP組織又與COSMIC組織共同合作于1999年提出了COSMIC功能點(diǎn)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)歷經(jīng)修訂,目前的最新版本為該組織于2009年所提出的3.0.1版本,該標(biāo)準(zhǔn)也于2003年被ISO組織接納成為國際標(biāo)準(zhǔn)。COSMIC組織提出該功能點(diǎn)標(biāo)準(zhǔn)的初衷在于克服IFPUG所維護(hù)的功能點(diǎn)標(biāo)準(zhǔn)的不足,COSMIC功能點(diǎn)標(biāo)準(zhǔn)對(duì)于實(shí)時(shí)類軟件、嵌入式軟件有更好的適用性,同時(shí)對(duì)典型的MIS系統(tǒng)也具有良好的適用性②。需求潛變(ScopeCreep)描述因?yàn)轫?xiàng)目前期需求定義不明確,在項(xiàng)目后期需求不斷蔓延和擴(kuò)展所對(duì)應(yīng)的情形。COSMIC組織所聲稱的IFPUG功能點(diǎn)標(biāo)準(zhǔn)的不足并沒有得到業(yè)界的認(rèn)同,IFPUG功能點(diǎn)在實(shí)時(shí)類軟件和嵌入式軟件的應(yīng)用并不存在障礙。對(duì)于實(shí)時(shí)類軟件和嵌入式軟件的工作量評(píng)判和工期判定不應(yīng)只考慮項(xiàng)目的功能規(guī)模,還應(yīng)結(jié)合項(xiàng)目的其他特征,例如行業(yè)類型、技術(shù)類型和開發(fā)平臺(tái)等因素。許多人潛意識(shí)地認(rèn)為既然定義了功能點(diǎn),那么不同行業(yè)、不同技術(shù)路線的軟件項(xiàng)目都應(yīng)該具備相同的生產(chǎn)率、交付率和缺陷率等,這種觀點(diǎn)就如要求每平方米的房子造價(jià)都相同那樣經(jīng)不住推敲。
1.5.1COSMIC功能規(guī)模度量過程與MarkII功能點(diǎn)標(biāo)準(zhǔn)相似,COSMIC將度量軟件功能點(diǎn)的過程劃分為4個(gè)階段,依次是度量規(guī)劃階段、映射階段、度量階段和報(bào)告階段,如圖1.3所示。軟件關(guān)畦模W度吊階段陂度成軟件的功能用戶需求誦用軟件模型度域目的,被度球件每…部分的范圍函用軟件椎型盼式的川戶期E軟件關(guān)畦模W度吊階段陂度成軟件的功能用戶需求誦用軟件模型度域目的,被度球件每…部分的范圍函用軟件椎型盼式的川戶期E需求以的軟件功能規(guī)模度Ed現(xiàn)劃階股報(bào)告折段映射階段圖1.3COSMIC功能點(diǎn)度量的4個(gè)階段相對(duì)于其他功能點(diǎn)標(biāo)準(zhǔn),COSMIC功能點(diǎn)標(biāo)準(zhǔn)聲稱可以更好地度量實(shí)時(shí)項(xiàng)目和嵌入式項(xiàng)目的軟件功能規(guī)模,因?yàn)檫@些類型的應(yīng)用通常和用戶的交互較少,更多的功能通過內(nèi)部過程實(shí)現(xiàn),所以在功能點(diǎn)計(jì)數(shù)時(shí)應(yīng)該考慮這些內(nèi)部操作的功能①因而就引入了一個(gè)重要的概念——“層(Layer)”。圖1.4給出典型的MIS類項(xiàng)目和嵌入式項(xiàng)目的物理分層模型。圖1.4MIS類項(xiàng)目的物理分層模型①在COSMIC模型中引入Layer的概念固然可以反映內(nèi)部過程的復(fù)雜性,但Layer的劃分更傾向于從技術(shù)實(shí)現(xiàn)的角度進(jìn)行劃分,所以“功能點(diǎn)標(biāo)準(zhǔn)對(duì)用戶透明”這一基本特征可能就會(huì)受到負(fù)面的影響。圖1.4的MIS類項(xiàng)目可分為軟件層和硬件層,其中軟件層又包含應(yīng)用層、中間件層、數(shù)據(jù)庫管理層和操作系統(tǒng)層;而硬件則是單獨(dú)的一層。圖1.5數(shù)據(jù)庫管理層和操作系統(tǒng)層;而硬件則是單獨(dú)的一層。圖1.5嵌入式項(xiàng)目的物理分層模型EIndicatesEIndicates富messagelhatkkilledasanEx記datainoveffiefil.—icnas虻否aboudary乙nd禎rteeivedasEntrychM[tiovemenl嵌入式項(xiàng)目也分為軟件層和硬件層見圖1.5。其中軟件分為嵌入式應(yīng)用層和操作系統(tǒng)層,硬件則為單獨(dú)的一層。根據(jù)MarkII功能點(diǎn)標(biāo)準(zhǔn)或基于IFPUG的功能點(diǎn)標(biāo)準(zhǔn),用戶與應(yīng)用系統(tǒng)通過邊界進(jìn)行交互。而根據(jù)COSMIC功能點(diǎn)標(biāo)準(zhǔn),用戶不但通過邊界與應(yīng)用系統(tǒng)交互,應(yīng)用系統(tǒng)內(nèi)的各個(gè)層之間也進(jìn)行數(shù)據(jù)的交互,可以將一個(gè)層視為另一個(gè)層的用戶,如圖1.6所示。Hie
appliicatioa
layer圖1.6用戶與層以及層與層之間的數(shù)據(jù)交互示意圖1.5.2COSMIC功能規(guī)模度量規(guī)則確定了應(yīng)用系統(tǒng)的邊界以及應(yīng)用系統(tǒng)的物理分層后,COSMIC將所有的軟件功能區(qū)分為4種類型,即進(jìn)入(Entry)、離開(Exit)、讀(Read)和寫(Write)4種功能類型。對(duì)于4種功能類型的識(shí)別,COSMIC也基于規(guī)則約束。下面簡(jiǎn)述對(duì)各個(gè)功能的識(shí)別規(guī)則。進(jìn)入功能描述從功能用戶穿過邊界轉(zhuǎn)移一個(gè)數(shù)據(jù)組到功能過程的功能。識(shí)別進(jìn)入功能應(yīng)遵循以下6條識(shí)別規(guī)則:(1)一個(gè)進(jìn)入功能從功能用戶穿過邊界轉(zhuǎn)移一個(gè)關(guān)注對(duì)象的單個(gè)數(shù)據(jù)組到應(yīng)用的功能過程。如果一個(gè)功能過程的輸入由一個(gè)以上的數(shù)據(jù)組組成,那么要對(duì)輸入中的每一個(gè)數(shù)據(jù)組識(shí)別為一個(gè)進(jìn)入功能。(2)進(jìn)入功能不會(huì)穿過邊界輸出數(shù)據(jù)或讀寫數(shù)據(jù)。(3)一個(gè)觸發(fā)進(jìn)入功能的數(shù)據(jù)組可能只包含一個(gè)數(shù)據(jù)屬性,此屬性簡(jiǎn)單通知軟件“一個(gè)事件已經(jīng)發(fā)生”。更常見地,觸發(fā)進(jìn)入的數(shù)據(jù)組可能有幾個(gè)數(shù)據(jù)屬性。(4)作為觸發(fā)事件的時(shí)鐘處于被度量軟件之外。觸發(fā)事件的發(fā)生是由硬件周期性觸發(fā)還是由被度量軟件邊界外的其他軟件觸發(fā)沒有區(qū)別。(5)除非需要特定的功能過程,否則從系統(tǒng)時(shí)鐘獲取時(shí)間不會(huì)引起一個(gè)進(jìn)入功能。(6)如果一個(gè)進(jìn)入功能轉(zhuǎn)移的數(shù)據(jù)組由n個(gè)數(shù)據(jù)屬性組成,而另一個(gè)進(jìn)入功能轉(zhuǎn)移的數(shù)據(jù)組由描述同一關(guān)注對(duì)象的此n個(gè)數(shù)據(jù)屬性的子集組成,那么應(yīng)該只識(shí)別出一個(gè)進(jìn)入功能,其數(shù)據(jù)組包括n個(gè)數(shù)據(jù)屬性。離開功能描述一個(gè)從功能過程穿過邊界轉(zhuǎn)移一個(gè)數(shù)據(jù)組到功能用戶的數(shù)據(jù)移動(dòng)。離開功能與進(jìn)入功能移動(dòng)數(shù)據(jù)的方向正好相反。識(shí)別離開功能應(yīng)遵循以下4條規(guī)則:(1)一個(gè)離開功能從功能過程穿過邊界轉(zhuǎn)移一個(gè)關(guān)注對(duì)象的單個(gè)數(shù)據(jù)組到功能用戶。如果一個(gè)功能過程的輸出由一個(gè)以上的數(shù)據(jù)組組成,那么要對(duì)輸出中的每一個(gè)數(shù)據(jù)組識(shí)別一個(gè)離開功能。(2)離開功能不會(huì)穿過邊界輸入數(shù)據(jù)或讀、寫數(shù)據(jù)。(3)軟件產(chǎn)生或輸出的不含用戶數(shù)據(jù)的所有消息(如出錯(cuò)信息)被認(rèn)為是一個(gè)關(guān)注對(duì)象(錯(cuò)誤指示)的一個(gè)屬性的值。因此含有此功能的每個(gè)功能過程中的所有此類消息的輸出識(shí)別為一個(gè)離開功能。(4)如果一個(gè)離開功能轉(zhuǎn)移的數(shù)據(jù)組由n個(gè)數(shù)據(jù)屬性組成,而另一個(gè)離開功能轉(zhuǎn)移的數(shù)據(jù)組由描述同一關(guān)注對(duì)象的此n個(gè)數(shù)據(jù)屬性的子集組成,那么應(yīng)該只識(shí)別出一個(gè)離開功能,其數(shù)據(jù)組包括n個(gè)數(shù)據(jù)屬性。讀功能描述從固定存儲(chǔ)轉(zhuǎn)移一個(gè)數(shù)據(jù)組到功能過程的數(shù)據(jù)移動(dòng)。判斷是否為讀功能遵循以下3條規(guī)則:(1)一個(gè)讀功能從固定存儲(chǔ)轉(zhuǎn)移描述一個(gè)關(guān)注對(duì)象的單個(gè)數(shù)據(jù)組到功能過程。如果一個(gè)功能過程需要從固定存儲(chǔ)中提取一個(gè)以上的數(shù)據(jù)組,那么要對(duì)提取的每一個(gè)數(shù)據(jù)組都識(shí)別為一個(gè)讀功能。(2)讀功能不會(huì)穿過邊界接收或輸出數(shù)據(jù),也不會(huì)寫數(shù)據(jù)。(3)在一個(gè)功能過程中,如果常量或變量的數(shù)據(jù)移動(dòng)或處理只能由程序員進(jìn)行,或者是計(jì)算的中間結(jié)果,或者功能過程存儲(chǔ)的數(shù)據(jù)是軟件實(shí)現(xiàn)的需要,而不是功能用戶需求,則不能算做讀數(shù)據(jù)移動(dòng)。寫功能描述從功能過程轉(zhuǎn)移一個(gè)數(shù)據(jù)組到固定存儲(chǔ)的數(shù)據(jù)移動(dòng),寫功能的操作方向與
讀功能的數(shù)據(jù)操作方向相反。寫功能的識(shí)別應(yīng)遵循以下3條規(guī)則:(1)一個(gè)寫功能從功能過程轉(zhuǎn)移描述一個(gè)關(guān)注對(duì)象的單個(gè)數(shù)據(jù)組到固定存儲(chǔ)。如果一個(gè)功能過程需要轉(zhuǎn)移一個(gè)以上的數(shù)據(jù)組到固定存儲(chǔ),那么要對(duì)轉(zhuǎn)移到固定存儲(chǔ)的每一個(gè)數(shù)據(jù)組識(shí)別一個(gè)寫。(2)寫功能不會(huì)穿過邊界接收或輸出數(shù)據(jù),也不會(huì)讀數(shù)據(jù)。(3)從固定存儲(chǔ)中刪除一個(gè)數(shù)據(jù)組的需求算做一個(gè)單獨(dú)的寫數(shù)據(jù)移動(dòng)。1.5.3COSMIC功能規(guī)模計(jì)算根據(jù)COSMIC規(guī)則識(shí)別了描述數(shù)據(jù)移動(dòng)的4種功能之后,將4種功能的數(shù)量相加,即得到軟件應(yīng)用相應(yīng)的COSMIC功能規(guī)模,如公式1.2所述。功能規(guī)模=功能規(guī)模=工輸入,.+工離開,.+工讀^+X寫(公式1.2)i=1i=1i=1i=1根據(jù)COSMIC功能點(diǎn)標(biāo)準(zhǔn),用戶還可以在使用該標(biāo)準(zhǔn)的同時(shí)對(duì)其規(guī)則進(jìn)行適當(dāng)?shù)臄U(kuò)充,經(jīng)擴(kuò)充后的功能規(guī)??杀硎鰹槿缦滦问?。(公式1.3)功能規(guī)模=xCFP(v.y)+zLocalFP(公式1.3)其中,x表示CFP的數(shù)量;CFP表示為一個(gè)COSMIC標(biāo)準(zhǔn)功能點(diǎn);v.y表示COSMIC標(biāo)準(zhǔn)的版本;z表示擴(kuò)充的FP數(shù)量;LocalFP表示擴(kuò)充或本地化的功能點(diǎn)。1.6NESMA功能點(diǎn)標(biāo)準(zhǔn)前文已經(jīng)述及5種功能點(diǎn)操作標(biāo)準(zhǔn)有較強(qiáng)的相似性,其他4種標(biāo)準(zhǔn)均有意識(shí)地借鑒和使用了IFPUG的功能點(diǎn)標(biāo)準(zhǔn)。但其中NESMA標(biāo)準(zhǔn)對(duì)IFPUG功能點(diǎn)的借鑒尤為徹底,例如功能點(diǎn)標(biāo)準(zhǔn)的度量過程與術(shù)語完全一致。說的夸張一些,就是將英文版本的IFPUG功能點(diǎn)標(biāo)準(zhǔn)翻譯為荷蘭語標(biāo)準(zhǔn)而已,例如IFPUG的CPM4.2英文標(biāo)準(zhǔn)與NESMA的CPM2.2荷蘭語標(biāo)準(zhǔn)幾乎完全相同。NESMA為荷蘭軟件度量協(xié)會(huì)的簡(jiǎn)稱(NEtherlandSoftwareMeasurementAssociation),NESMA功能點(diǎn)標(biāo)準(zhǔn)主要在荷蘭本國采用,在荷蘭之外的國家?guī)缀鯖]有用戶。功能點(diǎn)標(biāo)準(zhǔn)在荷蘭的應(yīng)用還是較為普遍的,筆者曾于2005年秋季前往荷蘭參加功能點(diǎn)應(yīng)用方面的學(xué)術(shù)交流活動(dòng),參與會(huì)議的代表大概有七八十人之多(其中國際代表約為20人),可見功能點(diǎn)應(yīng)用在該國的普及狀況。要知道荷蘭的總?cè)丝谝簿?600萬左右,比北京市現(xiàn)在的常住人口數(shù)量還差400萬呢。當(dāng)然,NESMA功能點(diǎn)標(biāo)準(zhǔn)與IFPUG并不完全相同,它們之間還存在些許差異,具體表現(xiàn)在外部查詢與外部輸出的識(shí)別差異、外部查詢的復(fù)雜度確定、隱含查詢處理和代碼表處理等方面。1.外部查詢(EQ)與外部輸出(EO)根據(jù)IFPUG的功能點(diǎn)標(biāo)準(zhǔn),EQ與EO的主要目的都是“向應(yīng)用邊界外的用戶呈現(xiàn)信息”,不同之處在于EQ不能包含任何額外的處理邏輯(包括計(jì)算、生成衍生數(shù)據(jù)、更新內(nèi)部邏輯文件和更改系統(tǒng)行為),否則即是EO。對(duì)于NESMA功能點(diǎn)標(biāo)準(zhǔn)而言,對(duì)于那些包含特定的選擇功能的EQ視為EO(例如包含“顯示所有客戶”選項(xiàng)的EQ在IFPUG功能點(diǎn)標(biāo)準(zhǔn)中仍被視為EQ,而在NESMA標(biāo)準(zhǔn)中卻當(dāng)作EO)。盡管如此,這種差異并不會(huì)引起功能點(diǎn)度量結(jié)果方面的明顯不同。EQ的復(fù)雜度判定根據(jù)NESMA標(biāo)準(zhǔn),EQ復(fù)雜度的判定要根據(jù)兩方面的復(fù)雜度比較結(jié)果而定,即根據(jù)外部輸入(EI)的規(guī)則判定EQ輸入端的復(fù)雜度,然后再根據(jù)EO的規(guī)則判定EQ輸出端的復(fù)雜度,兩者相比較后取復(fù)雜度較高的值作為EQ最終的復(fù)雜度。IFPUG的EQ判斷規(guī)則與EI和EO的判斷規(guī)則相似,根據(jù)EQ的數(shù)據(jù)元素類型和文件引用類型確定其復(fù)雜度。因?yàn)镋I、EO、EQ本身的復(fù)雜度非常接近,所以EQ即使采用不同的判定規(guī)則,對(duì)最終的功能點(diǎn)度量結(jié)果影響也是微乎其微。隱含查詢判定隱含查詢是指當(dāng)需要修改或刪除數(shù)據(jù)時(shí),首先需要展示數(shù)據(jù),該功能即稱為隱含查詢。根據(jù)NESMA標(biāo)準(zhǔn),對(duì)該情形并不會(huì)做特別的考慮。而在IFPUG功能點(diǎn)標(biāo)準(zhǔn)中規(guī)定當(dāng)該隱含查詢功能已經(jīng)在其他地方出現(xiàn)過,判斷修改功能或刪除功能時(shí)不考慮該隱含查詢功能所對(duì)應(yīng)的數(shù)據(jù)元素類型和文件引用類型,否則需要考慮隱含查詢對(duì)應(yīng)的功能點(diǎn)數(shù)量。對(duì)于隱含查詢的不同判定方式也不會(huì)引起兩種標(biāo)準(zhǔn)度量結(jié)果的明顯不同。代碼表處理通常所說的實(shí)體概念由主要數(shù)據(jù)(業(yè)務(wù)對(duì)象)和次要數(shù)據(jù)(支持?jǐn)?shù)據(jù))組成。對(duì)于描述業(yè)務(wù)對(duì)象的主要數(shù)據(jù),NESMA功能點(diǎn)標(biāo)準(zhǔn)和IFPUG功能點(diǎn)標(biāo)準(zhǔn)都遵循IFPUG功能點(diǎn)標(biāo)準(zhǔn)所設(shè)定的規(guī)則。兩種標(biāo)準(zhǔn)對(duì)于次要數(shù)據(jù)的處理則有差異,NESMA將次要數(shù)據(jù)視為數(shù)據(jù)功能,并識(shí)別出相應(yīng)的事務(wù)功能。例如,包含商品代碼商品描述字段的表即為典型的代碼表。IFPUG則認(rèn)為次要數(shù)據(jù)的代碼表并不是基于業(yè)務(wù)角度考慮,完全屬于技術(shù)實(shí)現(xiàn)范疇的內(nèi)容,因而進(jìn)行功能點(diǎn)度量時(shí)既不考慮對(duì)應(yīng)的數(shù)據(jù)功能,也不考慮與代碼數(shù)據(jù)關(guān)聯(lián)的事務(wù)功能。如果NESMA功能點(diǎn)操作標(biāo)準(zhǔn)和IFPUG操作標(biāo)準(zhǔn)在前面三種情形中的差異可以忽略的話,兩者在代碼表方面的差異可能會(huì)較為明顯。例如在NESMA功能點(diǎn)操作標(biāo)準(zhǔn)中一個(gè)代碼表的數(shù)據(jù)功能可能為7個(gè)功能點(diǎn)①,對(duì)應(yīng)的事務(wù)功能可能只包含創(chuàng)建和查詢兩個(gè)事務(wù)功能,因而對(duì)應(yīng)的功能點(diǎn)數(shù)均為3個(gè)功能點(diǎn)②,所以是否將一個(gè)次要數(shù)據(jù)代碼表作為功能點(diǎn)度量范疇的內(nèi)容,可能意味著13個(gè)功能點(diǎn)的差異。盡管NESMA功能點(diǎn)標(biāo)準(zhǔn)與IFPUG功能點(diǎn)標(biāo)準(zhǔn)之間存在一定的差異,但與其他的功能點(diǎn)標(biāo)準(zhǔn)相比較(MarkII功能點(diǎn)標(biāo)準(zhǔn)、COSMIC功能點(diǎn)標(biāo)準(zhǔn)和FISMA功能點(diǎn)標(biāo)準(zhǔn)),NESMA功能點(diǎn)標(biāo)準(zhǔn)仍然與IFPUG功能點(diǎn)標(biāo)準(zhǔn)保持了最好的一致性。次要數(shù)據(jù)代碼一般只有兩個(gè)數(shù)據(jù)元素類型,因而復(fù)雜度為簡(jiǎn)單,根據(jù)功能點(diǎn)復(fù)雜度轉(zhuǎn)換表,該數(shù)據(jù)功能為簡(jiǎn)單時(shí)對(duì)應(yīng)7個(gè)功能點(diǎn)。因次要數(shù)據(jù)代碼表一般只包含兩個(gè)數(shù)據(jù)元素類型,所以對(duì)應(yīng)的事務(wù)功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林省梅河口市曙光鎮(zhèn)中學(xué)九年級(jí)化學(xué)上冊(cè) 緒言 化學(xué)使世界變得更加徇麗多彩教案 新人教版
- 高中化學(xué) 第三冊(cè) 第九章 初識(shí)元素周期律 9.31 元素周期律教案 滬科版
- 2024年定制家具購買合同
- 2024年【互聯(lián)網(wǎng)服務(wù)合同】網(wǎng)絡(luò)平臺(tái)接入服務(wù)合同
- 2024年廠房改建項(xiàng)目木工施工材料供應(yīng)合同書
- 2024年工廠生產(chǎn)設(shè)備采購與承包合同
- 2024年廣告服務(wù)采購合同
- 2024年國內(nèi)某知名電商平臺(tái)與物流公司之間的倉儲(chǔ)配送合同
- 2024年工程人員臨時(shí)借調(diào)合同
- 2024年太空探索技術(shù)合作合同
- 新人教版八年級(jí)物理上冊(cè)期中考試及答案【可打印】
- 綠色鋼鐵產(chǎn)業(yè)鏈構(gòu)建
- 2024年企業(yè)股東退股補(bǔ)償協(xié)議版
- 河南省商丘市2023-2024學(xué)年高一上學(xué)期期中考試化學(xué)試題(含答案)
- V帶傳動(dòng)設(shè)計(jì)說明書
- 墓地長(zhǎng)期租用合同模板
- 兒童社區(qū)獲得性肺炎管理指南(2024修訂)解讀
- 培訓(xùn)員工的課件
- 2025年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
- 2024秋期國家開放大學(xué)《公共行政學(xué)》一平臺(tái)在線形考(形考任務(wù)一至三)試題及答案
- (中圖版)地理八年級(jí)知識(shí)總結(jié)
評(píng)論
0/150
提交評(píng)論