【摘 要】準(zhǔn)確識(shí)別功能用戶是確保度量質(zhì)量的重要前提之一。本文總結(jié)了度量實(shí)踐中識(shí)別功能用戶時(shí)出現(xiàn)的常見錯(cuò)誤,并對(duì)這些錯(cuò)誤進(jìn)行了深入分析,并提出相應(yīng)對(duì)策,最后形成識(shí)別功能用戶的控制流程。
【關(guān)鍵詞】功能用戶 常見錯(cuò)誤 控制流程
一、識(shí)別功能用戶
COSMIC方法中,功能用戶是軟件的FUR中數(shù)據(jù)的發(fā)送者或者數(shù)據(jù)的意向接收者。也就是說功能用戶是向軟件發(fā)送數(shù)據(jù)的發(fā)送者,或者從軟件接收數(shù)據(jù)的接收者和意向接收者[1]。
準(zhǔn)確識(shí)別功能用戶是確保度量質(zhì)量的重要前提之一。首先功能用戶的識(shí)別是識(shí)別功能功能過程的先決條件。此外軟件功能的大小會(huì)隨功能用戶的不同而變化。也就是說當(dāng)我們度量某一軟件時(shí),針對(duì)不同的功能用戶,軟件規(guī)模大小是不相同的。特別是功能用戶的識(shí)別影響對(duì)數(shù)據(jù)移動(dòng)的判定。
二、常見錯(cuò)誤分析及對(duì)策
錯(cuò)誤1:度量員往往錯(cuò)誤的認(rèn)為功能用戶必須是軟件的所有功能用戶。COSMIC方法沒有明確闡述識(shí)別功能用戶的范圍,導(dǎo)致度量員將不屬于識(shí)別范圍內(nèi)的功能用戶識(shí)別進(jìn)來。度量軟件的功能用戶必須從度量目的導(dǎo)出,不一定包含軟件所有的功能用戶。不同的度量目的對(duì)應(yīng)的度量軟件FUR是不相同的,而功能用戶因軟件FUR的不同而不同,也就是說不同的度量目的導(dǎo)出的功能用戶是不同的。因此,度量軟件的功能用戶必須從度量目的導(dǎo)出。特別注意,當(dāng)軟件度量目的與更新或者修改軟件的工作量相關(guān)時(shí),功能用戶應(yīng)該是新的或者修改的功能被提供給的那些對(duì)象。
對(duì)策:每一個(gè)識(shí)別出的功能用戶都應(yīng)該在軟件FUR追蹤到;根據(jù)定義的度量目的和范圍排除范圍外的功能用戶。錯(cuò)誤2:度量員往往錯(cuò)誤的具有包含關(guān)系的功能用戶識(shí)別為一個(gè)“大”的功能用戶。原因分析:不同粒度級(jí)別下識(shí)別的功能用戶可能會(huì)不同,這一點(diǎn)方法中沒有明確。功能用戶應(yīng)放在標(biāo)準(zhǔn)粒度級(jí)別下識(shí)別。在該級(jí)別上功能用戶是單獨(dú)的人、工程設(shè)備或軟件,而不是它們的任何組。并且必須能獨(dú)立響應(yīng)的事件的單次發(fā)生(不是事件組的級(jí)別)。在實(shí)踐中,包含F(xiàn)UR的軟件文檔通常在不同的粒度級(jí)別上描述功能,尤其當(dāng)文檔還在演進(jìn)時(shí)。此時(shí),應(yīng)將粒度級(jí)別近似的縮放至標(biāo)準(zhǔn)粒度級(jí)別,功能用戶的識(shí)別應(yīng)在最低級(jí)別下進(jìn)行。
對(duì)策:識(shí)別功能用戶應(yīng)該與識(shí)別粒度級(jí)別迭代進(jìn)行;檢查功能用戶是否在標(biāo)準(zhǔn)粒度級(jí)別下識(shí)別;當(dāng)候選功能用戶存在包含關(guān)系時(shí),以低級(jí)別識(shí)別出來的功能用戶為準(zhǔn)。當(dāng)某候選功能用戶可以進(jìn)一步識(shí)別出獨(dú)立的功能用戶時(shí),即候選功能用戶存在包含關(guān)系時(shí),以低級(jí)別識(shí)別出的功能用戶為準(zhǔn)。錯(cuò)誤3:度量員往往錯(cuò)誤將“操作系統(tǒng)”等識(shí)別為功能用戶。COSMIC方法沒有把功能用戶與用戶的區(qū)別闡述清楚,尤其是與特殊“用戶”的區(qū)別。
“特殊用戶”不是功能用戶,不能作為一個(gè)功能過程的發(fā)起者(時(shí)鐘除外),但是,特殊“用戶”卻參與了功能過程子過程(數(shù)據(jù)移動(dòng)和數(shù)據(jù)操作)的執(zhí)行[2]。即特殊“用戶”可以作為數(shù)據(jù)移動(dòng)的發(fā)起者,是數(shù)據(jù)移動(dòng)四要素之一。因此,“特殊用戶”的識(shí)別有助于度量員清楚識(shí)別數(shù)據(jù)移動(dòng)??偟挠脩艏?,即“任何與軟件交互的事物”,必須包括操作系統(tǒng)。然而任何應(yīng)用軟件的FUR都不將操作系統(tǒng)作為一個(gè)功能用戶。操作系統(tǒng)對(duì)應(yīng)用程序的任何約束對(duì)所有的應(yīng)用程序都是一樣的,通常由編譯器或者解釋器處理,對(duì)應(yīng)用程序的實(shí)際功能用戶是不可見的。在實(shí)際的功能大小度量中,操作系統(tǒng)從不被認(rèn)為是應(yīng)用程序的功能用戶。類似的用戶還有:“層(軟件內(nèi)部)”、“時(shí)鐘”以及“軟件自身”,稱為特殊“用戶”?!皩印保寒?dāng)我們度量的軟件存在內(nèi)部層次關(guān)系時(shí)的,相互鄰接的層次之間就會(huì)存在交互,即有數(shù)據(jù)的傳輸。上層給下層發(fā)送數(shù)據(jù),并觸發(fā)了一個(gè)功能過程的開始【3】。因此上層是下層的一個(gè)特殊“用戶”。特殊“用戶”不是功能用戶,不能作為一個(gè)功能過程的發(fā)起者(時(shí)鐘除外),但是,特殊“用戶”卻可以作為數(shù)據(jù)移動(dòng)的發(fā)起者。比如,讀取永久存儲(chǔ)器上的學(xué)生信息,我們就可以理解成“軟件自身從永久存儲(chǔ)器中獲取學(xué)生信息”。
對(duì)策:檢查候選功能用戶是否為功能過程的發(fā)起者;將常見特殊“用戶”收集整理;識(shí)別出的功能用戶與特殊“用戶”比對(duì)排除。錯(cuò)誤4:在度量C/S結(jié)構(gòu)的軟件時(shí)(如服務(wù)端應(yīng)用軟件),度量員將多個(gè)相同的客戶端錯(cuò)誤的識(shí)別為多個(gè)不同的功能用戶。COSMIC方法對(duì)于一“類”用戶的定義不明顯,很難引起度量員的重視。同類的客戶端軟件只能識(shí)別為一個(gè)功能用戶。度量手冊(cè)關(guān)于功能用戶的定義說明同“類”功能用戶看作一個(gè)功能用戶。因此,同一類客戶端軟件,不管安裝在多少臺(tái)計(jì)算機(jī)上也只能識(shí)別為一個(gè)功能用戶。實(shí)際上,c/s結(jié)構(gòu)軟件功能用戶的識(shí)別不是根據(jù)客戶端個(gè)數(shù)的多少,而應(yīng)該以客戶端安裝軟件的種類多少。
對(duì)策:清楚認(rèn)識(shí)客戶端與客戶端軟件的區(qū)別;分析客戶端軟件,并按種類清楚區(qū)分;屬于同一“類”的多個(gè)軟件,只識(shí)別為一個(gè)功能用戶。
三、控制流程
在識(shí)別功能用戶流程的基礎(chǔ)之上,結(jié)合上述對(duì)常見問題分析,提出相應(yīng)解決對(duì)策,最后形成識(shí)別功能用戶的控制流程。在識(shí)別出候選功能用戶后,根據(jù)以下流程進(jìn)行檢查即可大大降低錯(cuò)誤的發(fā)生。候選功能用戶是否可以在FUR追蹤到?候選功能用戶是否在所屬的度量范圍內(nèi)?候選功能用戶的識(shí)別是否對(duì)應(yīng)正確的粒度級(jí)別?候選功能用戶是否存在“用戶組”或“特殊用戶”?如有則進(jìn)一步判斷,排除同類功能功能用戶的重復(fù)識(shí)別。
參考文獻(xiàn):
[1]COSMIC,The COSMIC Functional Size Measurement Method version 3.0.1 Measurement Manual (The COSMIC Implementation Guide for ISO/IEC 19761: 2003)[M]. September 2011:10-11.
[2] COSMIC,COSMIC FSM Method v3.0 - Guideline for Sizing Business Application Software,v1.1,2008:33-36.
[3]王昕渝.COSMIC_FFP方法的研究及應(yīng)用[J]. 計(jì)算機(jī)應(yīng)用與軟件,2008,25(10):10-13.
作者簡介:
買新暉(1979-)男,陜西西安人,碩士,武警工程大學(xué)信息工程系講師