計(jì)春雷,肖 薇
(1.上海電機(jī)學(xué)院 電子信息學(xué)院,上海 200240;2.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
統(tǒng)一建模語言的全功能點(diǎn)度量方法
計(jì)春雷1,肖 薇2
(1.上海電機(jī)學(xué)院 電子信息學(xué)院,上海 200240;2.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
分析了統(tǒng)一建模語言(UML)主要部件和全功能點(diǎn)規(guī)模估算方法COSMIC-FFP主要元素之間的概念映射關(guān)系,建立了22條度量映射規(guī)則,提出了UML的全功能點(diǎn)度量方法,闡述了UML的全功能點(diǎn)度量過程,并提出了相應(yīng)的度量步驟。對實(shí)例分析后表明,該方法能比較客觀和有效地度量軟件功能規(guī)模。
全功能點(diǎn)度量方法;統(tǒng)一建模語言;功能過程;映射規(guī)則;度量過程
全功能點(diǎn)規(guī)模估算方法COSMIC-FFP是第2代軟件功能規(guī)模度量方法,它不僅適合于管理信息系統(tǒng)的功能規(guī)模度量,還適合于實(shí)時系統(tǒng)和多層系統(tǒng)的功能規(guī)模度量,已被ISO接受為國際標(biāo)準(zhǔn)(ISO/IEC 19761:2003)。該方法可在軟件開發(fā)生命周期的各個階段使用,從用戶功能的視角入手,不需要調(diào)整因子,簡單易行,彌補(bǔ)了最初功能點(diǎn)方法的一些缺陷[1]。
統(tǒng)一建模語言(Unified Modeling Language,UML)是一種用于各種應(yīng)用領(lǐng)域的軟件建模語言,其定義良好、易于表達(dá)、使用方便、功能強(qiáng)大,目前已成為面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語言。
本文通過研究UML技術(shù)的主要部件(用例圖、類圖和順序圖)和COSMIC-FFP度量方法的主要元素(層、邊界、功能用戶、數(shù)據(jù)組、功能過程和數(shù)據(jù)移動等),分析了UML主要部件與COSMIC-FFP主要元素之間的概念映射關(guān)系,建立了從UML用例圖、類圖和順序圖到COSMIC-FFP主要元素間的22條度量映射規(guī)則,闡述了從用例圖、類圖和順序圖到度量結(jié)果計(jì)算的度量過程,提出了UML的COSMICFFP度量方法的度量步驟,同時給出了應(yīng)用實(shí)例。
UML利用模型來描述軟件系統(tǒng)的結(jié)構(gòu)、靜態(tài)特征、行為或動態(tài)特征,從不同的視角為系統(tǒng)的架構(gòu)建模形成系統(tǒng)的不同視圖,主要有用例圖、類圖、順序圖等[2]。
COSMIC-FFP是一種應(yīng)用于商業(yè)軟件、實(shí)時系統(tǒng)和嵌入式系統(tǒng)的軟件功能規(guī)模度量方法[3]。COSMIC-FFP方法通過輸入(Entry)、輸出(Exit)、讀(Read)和寫(Write)4個數(shù)據(jù)移動類別來決定軟件功能規(guī)模。其度量標(biāo)準(zhǔn)單位是CFP(Cosmic Function Point,CFP),即一個數(shù)據(jù)移動。一個數(shù)據(jù)移動是一個數(shù)據(jù)組的傳輸,一個數(shù)據(jù)組是一個非空、有區(qū)別的、無順序且無冗余的數(shù)據(jù)屬性的集合。COSMIC-FFP中的主要元素包括:層、邊界、功能用戶、功能過程、關(guān)注對象和數(shù)據(jù)組等[4]。
COSMIC-FFP的度量過程分為映射和度量2個階段,可進(jìn)一步細(xì)化為8個流程,其度量步驟如圖1所示。
圖1 COSMIC-FFP度量步驟Fig.1 Measurement steps of COSMIC-FFP
利用UML建模語言實(shí)現(xiàn)COSMIC-FFP功能規(guī)模度量方法的關(guān)鍵是將UML主要視圖中的重要元素映射到COSMIC-FFP方法的度量模型中。本文在文獻(xiàn)[4-14]的基礎(chǔ)上,研究并建立了COSMIC-FFP度量模型與UML3種主要視圖中重要元素間的概念映射關(guān)系,如表1所示。
表1 COSMIC-FFP與UML概念之間的關(guān)系Tab.1 Notional relationship between COSMIC-FFP and UML
表1中,COSMIC-FFP主要關(guān)注的概念都在用例圖、類圖和順序圖中有相應(yīng)的體現(xiàn)[15]。本文給出UML 3種主要視圖(用例圖、類圖和順序圖)與COSMIC-FFP主要元素之間的映射規(guī)則。
用例圖可幫助確定度量范圍(所有用例的集合)、軟件邊界、層、功能用戶和功能過程。其相關(guān)映射規(guī)則如下:
R1 應(yīng)用層常處于最高層,從屬層的軟件可不依賴于使用它的層而獨(dú)立存在。若用例A依賴用例B,但B不依賴A,則認(rèn)為它們處于不同層。
R2 數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、設(shè)備驅(qū)動等功能性服務(wù)包通常處于單獨(dú)的層中。
R3 用例圖中參與者和其關(guān)聯(lián)的用例之間存在邊界。
R4 同一層的任何兩個對等組件之間存在邊界;具有從屬關(guān)系的層之間存在邊界。
R5 功能用戶是用例圖中所表示的發(fā)起功能性用例的對象,包括人和非人參與者。
R6 功能用戶位于系統(tǒng)外部,如系統(tǒng)管理員、系統(tǒng)維護(hù)員、系統(tǒng)的主要使用者、使用系統(tǒng)提供數(shù)據(jù)的人或設(shè)備、系統(tǒng)控制的硬件及與系統(tǒng)交換數(shù)據(jù)的其他軟件系統(tǒng),但操作系統(tǒng)不被視為功能用戶。
R7 功能過程存在于用例中,并且必須由外部事件觸發(fā)。
R8 功能過程必須從用戶功能需求(FUR)中用戶的角度直接識別出來。
R9 對于每個功能用戶,選取用例圖中與它們直接相關(guān)聯(lián)的用例(包括主要用例和擴(kuò)展用例)作為功能過程的候選。
類圖可用來確定COSMIC-FFP度量方法中的關(guān)注對象和數(shù)據(jù)組,相關(guān)映射規(guī)則如下:
R10 從功能用戶的角度,以可識別的類為關(guān)注對象,類圖中類版型為“Entity”和“Control”的類可作為關(guān)注對象的候選。
R11 每個數(shù)據(jù)組必須在用例中有明確的描述,關(guān)注對象的屬性組可作為數(shù)據(jù)組的候選。
R12 所有的查詢條件、查詢結(jié)果和出錯提示信息都識別為數(shù)據(jù)組。
R13 如果一個類同其他類之間存在繼承關(guān)系,若父類是抽象類,則父類不作為數(shù)據(jù)組的候選;反之,為數(shù)據(jù)組的候選。如果一個類同其他類存在組合關(guān)系,則將整體作為數(shù)據(jù)組的候選。如果一個類同其他類存在聚集關(guān)系,若其共存亡,則將其作為一個數(shù)據(jù)組的候選;反之,為不同數(shù)據(jù)組的候選。
R14 如果一個類同其他類之間不存在組合、聚集和繼承關(guān)系,且該類不是抽象類,則作為數(shù)據(jù)組的候選;反之,不作為數(shù)據(jù)組的候選。
R15 每一個數(shù)據(jù)組只能包含屬于同一個關(guān)注對象的屬性,如果涉及的屬性屬于不同的關(guān)注對象,則識別為多個不同的數(shù)據(jù)組。
順序圖描述了功能過程的執(zhí)行步驟,反映了軟件的動態(tài)行為能力規(guī)模,其相關(guān)映射規(guī)則如下:
R16 順序圖中一個有序的、完成了某個功能的消息序列具體描述了功能過程,該消息序列由稱之為觸發(fā)事件的某個消息觸發(fā),結(jié)束于指向功能用戶或持久存儲器的消息。
R17 順序圖中出現(xiàn)的每個實(shí)體類和每個參與者(功能用戶)識別為一個數(shù)據(jù)組。
R18 順序圖中消息攜帶的參數(shù)(組)識別為數(shù)據(jù)組的個數(shù)等于消息參數(shù)涉及到的、不同關(guān)注對象的個數(shù)。
R19 順序圖中對象間傳遞的每一個消息都被看作一次數(shù)據(jù)移動,其類型可為輸入、輸出、讀和寫;其中,由功能用戶穿過邊界發(fā)送到內(nèi)部對象的消息識別為該功能過程的觸發(fā)事件。
R20 數(shù)據(jù)移動類型的判斷。從功能用戶到接口對象的消息為輸入;從接口對象到功能用戶的消息為輸出;對象間傳遞的消息為讀或?qū)懀豁樞驁D中消息發(fā)生的條件和用例圖中用例發(fā)生的前置條件可視為讀的數(shù)據(jù)移動。
R21 數(shù)據(jù)移動大小的判斷。以其涉及到的不同數(shù)據(jù)組的個數(shù)來計(jì)算,通常為該次數(shù)據(jù)移動的數(shù)據(jù)項(xiàng)所涉及到的不同關(guān)注對象的個數(shù)。
R22 消除重復(fù)的數(shù)據(jù)移動規(guī)則。在同一個功能過程中,若一個數(shù)據(jù)移動的數(shù)據(jù)組與另一個同類型的數(shù)據(jù)移動的數(shù)據(jù)組相同,則它們被識別為同一個數(shù)據(jù)移動。
圖2為UML的COSMIC-FFP度量過程。該度量過程包括數(shù)據(jù)組識別階段、數(shù)據(jù)移動識別階段(度量功能過程的規(guī)模)和度量結(jié)果統(tǒng)計(jì)階段。
圖2 度量流程圖Fig.2 Measurement process diagram
4.1.1 數(shù)據(jù)組識別階段 根據(jù)實(shí)體-關(guān)系圖或?qū)嶓w類圖,利用“數(shù)據(jù)組”的識別規(guī)則識別出每一個數(shù)據(jù)組。
4.1.2 數(shù)據(jù)移動識別階段 如圖2所示,用戶功能需求(FUR)中提供的各種文檔的結(jié)構(gòu)依次為用例圖、用例、順序圖和消息。由于由若干個用例構(gòu)成了每個用例圖,而每個用例又由若干個順序圖來解釋,故在度量某個功能過程的功能規(guī)模前,應(yīng)先搞清楚順序圖和用例的關(guān)系,分析并了解該順序圖描述哪個用例圖,再對用例的每個順序圖通過識別數(shù)據(jù)移動類型逐個度量。利用文獻(xiàn)[16]中度量規(guī)則可識別出各個功能過程與消息,應(yīng)用映射規(guī)則R17-R21可識別出各個數(shù)據(jù)移動類型。4.1.3 度量結(jié)果統(tǒng)計(jì)階段 根據(jù)用戶的軟件功能規(guī)模度量需求,可以計(jì)算出某個功能過程的功能規(guī)模,也可以統(tǒng)計(jì)出被度量軟件整體的功能規(guī)模。
當(dāng)為每一個功能過程識別出其應(yīng)有的所有數(shù)據(jù)移動后,將它們累加在一起就可得到這個功能過程的功能規(guī)模Size(功能過程i),即
被度量軟件的整體功能規(guī)模Size(被度量軟體)等于該軟件全部功能過程的功能規(guī)模之和,
根據(jù)給出的UML主要部件與COSMIC-FFP主要元素之間的概念映射關(guān)系、映射規(guī)則與度量過程,可得出UML的COSMIC-FFP度量方法的度量步驟如下:① 由FUR和用例圖確定軟件的度量范圍和度量視角;② 應(yīng)用規(guī)則R1~R9確定軟件邊界、層和功能用戶,同時識別出各功能過程和它們的觸發(fā)事件;③ 對類圖和順序圖應(yīng)用規(guī)則R10~R16識別出關(guān)注對象和數(shù)據(jù)組;④ 對于描述每個功能過程的順序圖,應(yīng)用規(guī)則R17-R21并根據(jù)文獻(xiàn)[16]中所述方法和度量規(guī)則識別出該功能過程包含的數(shù)據(jù)移動個數(shù)及類型;⑤ 將度量范圍內(nèi)的各功能過程的功能規(guī)模(CFP)值累加,得到整個被度量軟件的功能規(guī)模(CFP)值。
本文以圖書信息管理系統(tǒng)的一個模塊作為應(yīng)用實(shí)例進(jìn)行分析。該系統(tǒng)主要包括基本業(yè)務(wù)處理、信息查詢和系統(tǒng)維護(hù)等系統(tǒng)模塊;系統(tǒng)的功能性需求主要包括系統(tǒng)管理員管理、圖書管理員管理、圖書借閱者服務(wù)等內(nèi)容。圖3為圖書借閱者服務(wù)功能模塊的用例圖,它顯示了圖書信息管理系統(tǒng)為圖書借閱者所提供的服務(wù)功能。
為了獲得該功能模塊的功能規(guī)模度量值,需要對此用例圖中的“預(yù)定圖書”、“查詢個人信息”和“查找圖書”3個用例用順序圖表示。
圖3 借閱者服務(wù)用例圖Fig.3 Borrower service use case diagram
先確定“借閱者服務(wù)”功能模塊的度量范圍是由該功能模塊中指定的功能組成。由于該功能模塊的功能需求屬于同一個抽象層,故應(yīng)用規(guī)則R1和R2可識別為一個單獨(dú)的軟件層;由規(guī)則R3和R4識別出用例圖中的軟件邊界;由規(guī)則R5和R6識別出“借閱者(Borrower)”為功能用戶;根據(jù)規(guī)則R7~R9識別出“預(yù)定圖書”、“查找圖書”和“查詢個人信息”用例為功能過程,“登錄系統(tǒng)”擴(kuò)展用例也為功能過程。
為說明數(shù)據(jù)移動類型的識別方法,本文以“查詢個人信息”功能過程為例進(jìn)行說明?!安樵儌€人信息”功能過程的順序圖如圖4所示。
圖4 查詢個人信息順序圖Fig.4 Inquiry personal information sequence diagram
圖4中,以規(guī)則R17識別出順序圖中的類LoginWindow和PersonInfoWindow為數(shù)據(jù)組,功能用戶(Borrower)也為數(shù)據(jù)組。該功能過程起始于借閱者通過用戶登錄界面(LoginWindow)錄入登錄信息,由消息“登錄系統(tǒng)”表示,應(yīng)用規(guī)則R20識別出此為一個“輸入”類型的數(shù)據(jù)移動。登錄后,LoginWindow返回消息顯示“登錄信息”,由規(guī)則R20可知,該消息產(chǎn)生一個“輸出”類型的數(shù)據(jù)移動。同時,LoginWindow將Borrower類實(shí)例化,產(chǎn)生了“實(shí)例化借閱者對象”消息,由規(guī)則R20識別出該消息是一個單獨(dú)的“讀”類型的數(shù)據(jù)移動;再返回給用戶信息顯示界面(PersonInfoW-indow),這由消息“返回借閱者信息”表示,由規(guī)則R20識別出其為一個“輸出”類型的數(shù)據(jù)移動。最后,系統(tǒng)用“顯示借閱者信息”的消息向借閱者返回借閱者信息,由規(guī)則R20識別出它也是一個“輸出”類型的數(shù)據(jù)移動。
對于“登錄系統(tǒng)”用例,由于其在“查找圖書”和“預(yù)定圖書”功能過程中也需使用,故由規(guī)則R22可知,該用例在度量時僅需考慮一次。
應(yīng)用式(1)得到“查詢個人信息”功能過程的功能規(guī)模為5CFP。同樣地,得到“查找圖書”功能過程和“預(yù)定圖書”功能過程的功能規(guī)模分別為4CFP和6CFP。應(yīng)用式(2)求得該圖書信息管理系統(tǒng)的“借閱者服務(wù)”功能模塊的總功能規(guī)模為15CFP。
本文較好地解決了COSMIC-FFP度量方法過于抽象、難以應(yīng)用于面向?qū)ο筌浖到y(tǒng)的問題,為利用UML技術(shù)度量各種軟件系統(tǒng)的功能規(guī)模提供了一種切實(shí)可行的解決方案,從而有利于COSMIC-FFP方法的全面推廣與應(yīng)用,并實(shí)現(xiàn)度量過程的自動化。
[1] Abran A,Desharnais J M,Aziz F.Measurement convertibility-from function points to COSMIC-FFP[C]//15th International Workshop on Software Me-asurement:IWSM2005. Montreal,Canada:Shaker Verlag,2005:227-240.
[2] 王少鋒.面向?qū)ο蠹夹g(shù)UML教程[M].北京:清華大學(xué)出版社,2004.
[3] Abran A,Oligny S,Symons C R.COSMIC FFP and the world-wide field trials strategy[J].Lecture Notes in Computer Science,2001,2006:125-134.
[4] ISO/IEC 19761-2003.COSMIC full function points measurement manual v.2.2[S].[S.l.]:The Common Software Measurement International Consortium,2003.
[5] Poels G.Definition and validation of a COSMICFFP functional size measure for object-oriented systems[C]//Proceedings of the 7th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering.[S.l.]:CiteSeer,2003:1-6.
[6] Jenner M S.COSMIC-FFP 2.0and UML:estimation of the size of a system specified in UML-Problems of granularity[C]//Proceedings of the 4th European Conference on Software Measurement and ICT Control.Heidelberg,Germany:[s.n.],2001:173-184.
[7] Wang Xi,Guo Liang,Miao Huaikou.An approach to transforming UML model to FSM model for automatic testing[C]//2008International Conference on Computer Science and Software Engineering.Wuhan,Hubei,China:IEEE,2008:251-254.
[8] Sellami A,Ben-Abdallah H.Functional size of use case diagrams:a fine-grain measurement[C]//2009 Fourth International Conference on Software Engineering Advances.Porto:IEEE,2009:282-288.
[9] Jenner M S.Automation of counting of functional size using COSMIC-FFP in UML[C]//12th International Workshop Software Measurement.Magdeburg,Germany:[s.n.],2002:43-51.
[10] Condori-Fernandez N,Abrahao S,Pastor O.On the estimation of the functional size of software from requirements specifications[J].Journal of Computer Science and Technology,2007,22(3):358-370.
[11] Sibertin-Blanc C,Tahir O,Cardoso J.Interpretation of UML sequence diagrams as causality flows[C]//International School and Symposium on Advanced Distributed Systems,No.5.Guadalajara,Mexico:Springer,2005:126-140.
[12] Nagano S,Ajisaka T.Functional metrics using COSMIC-FFP for object-oriented real-time systems[C]//13th International Workshop on Software Measurement.Montreal,Canada:[s.n.],2003:1-7.
[13] Top O O,Demirors O,Ozkan B.Reliability of COSMIC functional size measurement results:a multiple case study on industry cases[C]//35th Euromicro Conference on Software Engineering and Advanced Applications.Patras,Greece:IEEE,2009:327-334.
[14] Cuadrado-Gallego J J,Buglione L,Dominguez-Alda M J,et al.An experimental study on the conversion between IFPUG and COSMIC functional size measurement units[J].Information and Software Technology,2010,52(3):347-357.
[15] 計(jì)春雷,談葉勇,宋國新.基于 UML的COSMICFFP度量方 法 [J].計(jì) 算 機(jī) 工程,2010,36(10):41-43.
[16] 計(jì)春雷,陳文輝,宋國新.UML順序圖的COSMICFFP度量方法[J].華東理工大學(xué)學(xué)報(bào):自然科學(xué)版,2010,36(3):418-422.
UML-Based Full Function Point Measurement
JI Chunlei1,XIAO Wei2
(1.School of Electronics and Information,Shanghai Dianji University,Shanghai 200240,China;2.School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)
This paper analyzes the notional mapping between main components of unified modeling language(UML)and the method of main elements of full function point(COSMIC-FFP),and establishes 22measurement mapping rules.It proposes a full function point(FFP)method based on UML,explains the measurement process from an FFP method based on UML.The COSMIC-FFP measurement steps based on UML are proposed,and an example is presented.Experimental results show its effectiveness and objectiveness in evaluating software functions.
full function point measurement method;unified modeling language(UML);function process;mapping rules;measurement process
TP 311.52
A
2095-0020(2011)05-0319-06
2011-08-22
上海電機(jī)學(xué)院重點(diǎn)建設(shè)學(xué)科項(xiàng)目資助(07XKJ01)
計(jì)春雷(1964-),男,教授,博士,專業(yè)方向?yàn)檐浖攘考夹g(shù),E-mail:jicl@sdju.edu.cn