計春雷,肖 薇
(1.上海電機學院 電子信息學院,上海 200240;2.上海理工大學 光電信息與計算機工程學院,上海 200093)
統(tǒng)一建模語言的全功能點度量方法
計春雷1,肖 薇2
(1.上海電機學院 電子信息學院,上海 200240;2.上海理工大學 光電信息與計算機工程學院,上海 200093)
分析了統(tǒng)一建模語言(UML)主要部件和全功能點規(guī)模估算方法COSMIC-FFP主要元素之間的概念映射關系,建立了22條度量映射規(guī)則,提出了UML的全功能點度量方法,闡述了UML的全功能點度量過程,并提出了相應的度量步驟。對實例分析后表明,該方法能比較客觀和有效地度量軟件功能規(guī)模。
全功能點度量方法;統(tǒng)一建模語言;功能過程;映射規(guī)則;度量過程
全功能點規(guī)模估算方法COSMIC-FFP是第2代軟件功能規(guī)模度量方法,它不僅適合于管理信息系統(tǒng)的功能規(guī)模度量,還適合于實時系統(tǒng)和多層系統(tǒng)的功能規(guī)模度量,已被ISO接受為國際標準(ISO/IEC 19761:2003)。該方法可在軟件開發(fā)生命周期的各個階段使用,從用戶功能的視角入手,不需要調(diào)整因子,簡單易行,彌補了最初功能點方法的一些缺陷[1]。
統(tǒng)一建模語言(Unified Modeling Language,UML)是一種用于各種應用領域的軟件建模語言,其定義良好、易于表達、使用方便、功能強大,目前已成為面向?qū)ο蠹夹g領域內(nèi)占主導地位的標準建模語言。
本文通過研究UML技術的主要部件(用例圖、類圖和順序圖)和COSMIC-FFP度量方法的主要元素(層、邊界、功能用戶、數(shù)據(jù)組、功能過程和數(shù)據(jù)移動等),分析了UML主要部件與COSMIC-FFP主要元素之間的概念映射關系,建立了從UML用例圖、類圖和順序圖到COSMIC-FFP主要元素間的22條度量映射規(guī)則,闡述了從用例圖、類圖和順序圖到度量結果計算的度量過程,提出了UML的COSMICFFP度量方法的度量步驟,同時給出了應用實例。
UML利用模型來描述軟件系統(tǒng)的結構、靜態(tài)特征、行為或動態(tài)特征,從不同的視角為系統(tǒng)的架構建模形成系統(tǒng)的不同視圖,主要有用例圖、類圖、順序圖等[2]。
COSMIC-FFP是一種應用于商業(yè)軟件、實時系統(tǒng)和嵌入式系統(tǒng)的軟件功能規(guī)模度量方法[3]。COSMIC-FFP方法通過輸入(Entry)、輸出(Exit)、讀(Read)和寫(Write)4個數(shù)據(jù)移動類別來決定軟件功能規(guī)模。其度量標準單位是CFP(Cosmic Function Point,CFP),即一個數(shù)據(jù)移動。一個數(shù)據(jù)移動是一個數(shù)據(jù)組的傳輸,一個數(shù)據(jù)組是一個非空、有區(qū)別的、無順序且無冗余的數(shù)據(jù)屬性的集合。COSMIC-FFP中的主要元素包括:層、邊界、功能用戶、功能過程、關注對象和數(shù)據(jù)組等[4]。
COSMIC-FFP的度量過程分為映射和度量2個階段,可進一步細化為8個流程,其度量步驟如圖1所示。
圖1 COSMIC-FFP度量步驟Fig.1 Measurement steps of COSMIC-FFP
利用UML建模語言實現(xiàn)COSMIC-FFP功能規(guī)模度量方法的關鍵是將UML主要視圖中的重要元素映射到COSMIC-FFP方法的度量模型中。本文在文獻[4-14]的基礎上,研究并建立了COSMIC-FFP度量模型與UML3種主要視圖中重要元素間的概念映射關系,如表1所示。
表1 COSMIC-FFP與UML概念之間的關系Tab.1 Notional relationship between COSMIC-FFP and UML
表1中,COSMIC-FFP主要關注的概念都在用例圖、類圖和順序圖中有相應的體現(xiàn)[15]。本文給出UML 3種主要視圖(用例圖、類圖和順序圖)與COSMIC-FFP主要元素之間的映射規(guī)則。
用例圖可幫助確定度量范圍(所有用例的集合)、軟件邊界、層、功能用戶和功能過程。其相關映射規(guī)則如下:
R1 應用層常處于最高層,從屬層的軟件可不依賴于使用它的層而獨立存在。若用例A依賴用例B,但B不依賴A,則認為它們處于不同層。
R2 數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、設備驅(qū)動等功能性服務包通常處于單獨的層中。
R3 用例圖中參與者和其關聯(lián)的用例之間存在邊界。
R4 同一層的任何兩個對等組件之間存在邊界;具有從屬關系的層之間存在邊界。
R5 功能用戶是用例圖中所表示的發(fā)起功能性用例的對象,包括人和非人參與者。
R6 功能用戶位于系統(tǒng)外部,如系統(tǒng)管理員、系統(tǒng)維護員、系統(tǒng)的主要使用者、使用系統(tǒng)提供數(shù)據(jù)的人或設備、系統(tǒng)控制的硬件及與系統(tǒng)交換數(shù)據(jù)的其他軟件系統(tǒng),但操作系統(tǒng)不被視為功能用戶。
R7 功能過程存在于用例中,并且必須由外部事件觸發(fā)。
R8 功能過程必須從用戶功能需求(FUR)中用戶的角度直接識別出來。
R9 對于每個功能用戶,選取用例圖中與它們直接相關聯(lián)的用例(包括主要用例和擴展用例)作為功能過程的候選。
類圖可用來確定COSMIC-FFP度量方法中的關注對象和數(shù)據(jù)組,相關映射規(guī)則如下:
R10 從功能用戶的角度,以可識別的類為關注對象,類圖中類版型為“Entity”和“Control”的類可作為關注對象的候選。
R11 每個數(shù)據(jù)組必須在用例中有明確的描述,關注對象的屬性組可作為數(shù)據(jù)組的候選。
R12 所有的查詢條件、查詢結果和出錯提示信息都識別為數(shù)據(jù)組。
R13 如果一個類同其他類之間存在繼承關系,若父類是抽象類,則父類不作為數(shù)據(jù)組的候選;反之,為數(shù)據(jù)組的候選。如果一個類同其他類存在組合關系,則將整體作為數(shù)據(jù)組的候選。如果一個類同其他類存在聚集關系,若其共存亡,則將其作為一個數(shù)據(jù)組的候選;反之,為不同數(shù)據(jù)組的候選。
R14 如果一個類同其他類之間不存在組合、聚集和繼承關系,且該類不是抽象類,則作為數(shù)據(jù)組的候選;反之,不作為數(shù)據(jù)組的候選。
R15 每一個數(shù)據(jù)組只能包含屬于同一個關注對象的屬性,如果涉及的屬性屬于不同的關注對象,則識別為多個不同的數(shù)據(jù)組。
順序圖描述了功能過程的執(zhí)行步驟,反映了軟件的動態(tài)行為能力規(guī)模,其相關映射規(guī)則如下:
R16 順序圖中一個有序的、完成了某個功能的消息序列具體描述了功能過程,該消息序列由稱之為觸發(fā)事件的某個消息觸發(fā),結束于指向功能用戶或持久存儲器的消息。
R17 順序圖中出現(xiàn)的每個實體類和每個參與者(功能用戶)識別為一個數(shù)據(jù)組。
R18 順序圖中消息攜帶的參數(shù)(組)識別為數(shù)據(jù)組的個數(shù)等于消息參數(shù)涉及到的、不同關注對象的個數(shù)。
R19 順序圖中對象間傳遞的每一個消息都被看作一次數(shù)據(jù)移動,其類型可為輸入、輸出、讀和寫;其中,由功能用戶穿過邊界發(fā)送到內(nèi)部對象的消息識別為該功能過程的觸發(fā)事件。
R20 數(shù)據(jù)移動類型的判斷。從功能用戶到接口對象的消息為輸入;從接口對象到功能用戶的消息為輸出;對象間傳遞的消息為讀或?qū)?;順序圖中消息發(fā)生的條件和用例圖中用例發(fā)生的前置條件可視為讀的數(shù)據(jù)移動。
R21 數(shù)據(jù)移動大小的判斷。以其涉及到的不同數(shù)據(jù)組的個數(shù)來計算,通常為該次數(shù)據(jù)移動的數(shù)據(jù)項所涉及到的不同關注對象的個數(shù)。
R22 消除重復的數(shù)據(jù)移動規(guī)則。在同一個功能過程中,若一個數(shù)據(jù)移動的數(shù)據(jù)組與另一個同類型的數(shù)據(jù)移動的數(shù)據(jù)組相同,則它們被識別為同一個數(shù)據(jù)移動。
圖2為UML的COSMIC-FFP度量過程。該度量過程包括數(shù)據(jù)組識別階段、數(shù)據(jù)移動識別階段(度量功能過程的規(guī)模)和度量結果統(tǒng)計階段。
圖2 度量流程圖Fig.2 Measurement process diagram
4.1.1 數(shù)據(jù)組識別階段 根據(jù)實體-關系圖或?qū)嶓w類圖,利用“數(shù)據(jù)組”的識別規(guī)則識別出每一個數(shù)據(jù)組。
4.1.2 數(shù)據(jù)移動識別階段 如圖2所示,用戶功能需求(FUR)中提供的各種文檔的結構依次為用例圖、用例、順序圖和消息。由于由若干個用例構成了每個用例圖,而每個用例又由若干個順序圖來解釋,故在度量某個功能過程的功能規(guī)模前,應先搞清楚順序圖和用例的關系,分析并了解該順序圖描述哪個用例圖,再對用例的每個順序圖通過識別數(shù)據(jù)移動類型逐個度量。利用文獻[16]中度量規(guī)則可識別出各個功能過程與消息,應用映射規(guī)則R17-R21可識別出各個數(shù)據(jù)移動類型。4.1.3 度量結果統(tǒng)計階段 根據(jù)用戶的軟件功能規(guī)模度量需求,可以計算出某個功能過程的功能規(guī)模,也可以統(tǒng)計出被度量軟件整體的功能規(guī)模。
當為每一個功能過程識別出其應有的所有數(shù)據(jù)移動后,將它們累加在一起就可得到這個功能過程的功能規(guī)模Size(功能過程i),即
被度量軟件的整體功能規(guī)模Size(被度量軟體)等于該軟件全部功能過程的功能規(guī)模之和,
根據(jù)給出的UML主要部件與COSMIC-FFP主要元素之間的概念映射關系、映射規(guī)則與度量過程,可得出UML的COSMIC-FFP度量方法的度量步驟如下:① 由FUR和用例圖確定軟件的度量范圍和度量視角;② 應用規(guī)則R1~R9確定軟件邊界、層和功能用戶,同時識別出各功能過程和它們的觸發(fā)事件;③ 對類圖和順序圖應用規(guī)則R10~R16識別出關注對象和數(shù)據(jù)組;④ 對于描述每個功能過程的順序圖,應用規(guī)則R17-R21并根據(jù)文獻[16]中所述方法和度量規(guī)則識別出該功能過程包含的數(shù)據(jù)移動個數(shù)及類型;⑤ 將度量范圍內(nèi)的各功能過程的功能規(guī)模(CFP)值累加,得到整個被度量軟件的功能規(guī)模(CFP)值。
本文以圖書信息管理系統(tǒng)的一個模塊作為應用實例進行分析。該系統(tǒng)主要包括基本業(yè)務處理、信息查詢和系統(tǒng)維護等系統(tǒng)模塊;系統(tǒng)的功能性需求主要包括系統(tǒng)管理員管理、圖書管理員管理、圖書借閱者服務等內(nèi)容。圖3為圖書借閱者服務功能模塊的用例圖,它顯示了圖書信息管理系統(tǒng)為圖書借閱者所提供的服務功能。
為了獲得該功能模塊的功能規(guī)模度量值,需要對此用例圖中的“預定圖書”、“查詢個人信息”和“查找圖書”3個用例用順序圖表示。
圖3 借閱者服務用例圖Fig.3 Borrower service use case diagram
先確定“借閱者服務”功能模塊的度量范圍是由該功能模塊中指定的功能組成。由于該功能模塊的功能需求屬于同一個抽象層,故應用規(guī)則R1和R2可識別為一個單獨的軟件層;由規(guī)則R3和R4識別出用例圖中的軟件邊界;由規(guī)則R5和R6識別出“借閱者(Borrower)”為功能用戶;根據(jù)規(guī)則R7~R9識別出“預定圖書”、“查找圖書”和“查詢個人信息”用例為功能過程,“登錄系統(tǒng)”擴展用例也為功能過程。
為說明數(shù)據(jù)移動類型的識別方法,本文以“查詢個人信息”功能過程為例進行說明。“查詢個人信息”功能過程的順序圖如圖4所示。
圖4 查詢個人信息順序圖Fig.4 Inquiry personal information sequence diagram
圖4中,以規(guī)則R17識別出順序圖中的類LoginWindow和PersonInfoWindow為數(shù)據(jù)組,功能用戶(Borrower)也為數(shù)據(jù)組。該功能過程起始于借閱者通過用戶登錄界面(LoginWindow)錄入登錄信息,由消息“登錄系統(tǒng)”表示,應用規(guī)則R20識別出此為一個“輸入”類型的數(shù)據(jù)移動。登錄后,LoginWindow返回消息顯示“登錄信息”,由規(guī)則R20可知,該消息產(chǎn)生一個“輸出”類型的數(shù)據(jù)移動。同時,LoginWindow將Borrower類實例化,產(chǎn)生了“實例化借閱者對象”消息,由規(guī)則R20識別出該消息是一個單獨的“讀”類型的數(shù)據(jù)移動;再返回給用戶信息顯示界面(PersonInfoW-indow),這由消息“返回借閱者信息”表示,由規(guī)則R20識別出其為一個“輸出”類型的數(shù)據(jù)移動。最后,系統(tǒng)用“顯示借閱者信息”的消息向借閱者返回借閱者信息,由規(guī)則R20識別出它也是一個“輸出”類型的數(shù)據(jù)移動。
對于“登錄系統(tǒng)”用例,由于其在“查找圖書”和“預定圖書”功能過程中也需使用,故由規(guī)則R22可知,該用例在度量時僅需考慮一次。
應用式(1)得到“查詢個人信息”功能過程的功能規(guī)模為5CFP。同樣地,得到“查找圖書”功能過程和“預定圖書”功能過程的功能規(guī)模分別為4CFP和6CFP。應用式(2)求得該圖書信息管理系統(tǒng)的“借閱者服務”功能模塊的總功能規(guī)模為15CFP。
本文較好地解決了COSMIC-FFP度量方法過于抽象、難以應用于面向?qū)ο筌浖到y(tǒng)的問題,為利用UML技術度量各種軟件系統(tǒng)的功能規(guī)模提供了一種切實可行的解決方案,從而有利于COSMIC-FFP方法的全面推廣與應用,并實現(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ū)ο蠹夹gUML教程[M].北京:清華大學出版社,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] 計春雷,談葉勇,宋國新.基于 UML的COSMICFFP度量方 法 [J].計 算 機 工程,2010,36(10):41-43.
[16] 計春雷,陳文輝,宋國新.UML順序圖的COSMICFFP度量方法[J].華東理工大學學報:自然科學版,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
上海電機學院重點建設學科項目資助(07XKJ01)
計春雷(1964-),男,教授,博士,專業(yè)方向為軟件度量技術,E-mail:jicl@sdju.edu.cn