[摘要] 在對軟件系統進行UML需求分析的基礎上,以質量功能展開中的質量屋系列矩陣為主線,提出了一種基于UML的QFD需求定量分析方法,對需求的優先級和技術特性需求的重要度進行定量分析,其有效性在實踐中得到了驗證。
[關鍵詞] UML QFD 需求分析
一、引言
開發軟件系統的工作首先便是獲取系統需求并進行需求分析,需求分析是軟件開發生命周期的第一個階段,它貫穿于整個開發生命周期,是軟件系統開發中的關鍵問題。但至今需求分析仍是軟件系統開發中最復雜、最困難的過程之一。表現在1.需求獲取困難。軟件需求獲取中缺乏領域知識的問題常常是模糊的、不精確的,而需求獲取及分析偏向創造性思維活動,其過程讓第三者難以理解;2.需求分析不完整。是軟件開發失敗的主要原因之一;3.需求建模較復雜。在軟件需求中混雜著各種各樣的需求,功能性需求與非功能性需求錯綜復雜的聯系,以及當前對非功能需求分析建模技術的缺乏都大大增加了需求建模的復雜性。如何有效地分析客戶需求并映射到系統設計開發過程,實現系統需求的跟蹤管理和控制,是軟件系統開發中的重要課題。
針對需求分析中存在的困難,提出了一種基于UML的QFD需求定量分析方法,把UML用例建模應用到軟件需求分析中,用作為需求獲取和分析過程可視化,以及建立可視化模型的工具,利用QFD客觀地使需求項目層次化,可視化和充分化,從而降低需求建模的復雜性。同時給出一個需求分析框架,使該方法具有較強的可操作性。
二、UML需求建模
UML(Unified Modeling Language) 是一種通用的可視化建模語言,它支持從需求分析開始的軟件系統開發的全過程。在軟件系統需求分析中可通過用例圖對系統的需求進行分析建模。UML 作為一種強大的圖形化建模語言,是理想的需求描述和建模分析工具,對大規模的、復雜的、不斷變化的用戶需求有著很強的控制力。
用例(USE CASE)是系統執行的一系列動作,通過這些動作能獲得對參與者(Actor,包括客戶、用戶和開發人員等)有價值的結果。
1.用例與需求的關系。用例體現參與者需要系統完成何種操作,強調實現用戶的真正目標,以一種簡單而有效的方式表達系統的行為,更體現系統對用戶的價值,把需求書寫者的注意力從程序員關心的系統功能列表,回到用戶需求上。
需求分為業務需求、用戶需求、軟件需求三個層次,如圖1所示。需求工程應該從上向下,從宏觀到微觀,且循環迭代補充完整。
在UML中,軟件需求定義為“系統所需的特性、屬性或行為”。軟件需求就是系統必須遵循的條件和所具備功能的陳述,它們都是可以觀察的外部系統行為規范,它表明了用戶或者另一系統要求調用系統必須完成的工作,因此這些需求必須是詳細且明確的,同時軟件的需求又可以明確地指導系統的實現和測試工作。
用例圖關注的是系統功能高層次的形狀,而不關注系統的具體實現方法,它著重從用戶的角度描述系統功能,適用于系統的需求分析階段,是系統的核心,驅動著其他模型的開發。
系統所有的參與者和所有用例組成用例模型,用例模型幫助參與者在如何使用系統方面達成共識,參與者在與用例進行交互時使用系統。一張用例圖描述部分用例模型,顯示帶有關聯關系的用例和參與者的集合。用例建模得到的功能需求明確規定了參與者執行的特定任務,使用戶能清晰看到系統提供的有價值操作,有效地降低待開發系統的復雜度,幫助人們理解復雜的問題。
2.使用用例進行需求分析。在軟件需求分析過程中,需求一般可以分為兩類:功能需求和非功能需求。功能需求是系統必須能夠實現的系統行為,而不需要在條件中加入物理約束,它指定了系統的輸入和輸出行為;非功能性需求指定了了系統必須具有的其他性質,描述的是系統的特征或者系統的環境特征。
在使用UML進行需求建模時,通過用例圖從用戶目標和系統交互功能兩方面來分析。在軟件系統開發的過程中,客戶先給了項目組《用戶需求書》,其中描述了業務需求和用戶需求,主要內容是用戶希望的系統功能,然后由需求小組進行需求獲取和需求分析。用例將軟件需求放在環境中,將功能性需求放入實際操作的用戶環境中,當系統與用戶或其他系統交互時,可以描述系統的行為。
(1)用例的提取。通過《用戶需求書》,對領域內的相關詞法進行分析,將用戶和客戶的需要作為需求,篩選出有效的備選需求,將功能性需求表示為用例模型中的用例,其他的需求放到一個單獨的列表中,以待在質量功能展開時進行分析,同時對用例圖中的用例進行語義描述。
(2)建立需求用例模型。用例模型是所有用于描述指定系統的用例、參與者和用例—參與者關聯關系的組合。在UML中用例模型是這樣定義的:用例模型可用于描述系統的功能性需求或者用例的其他分類。在軟件開發過程中,使用模型對現實進行簡化、概括,從而可以加強對真實構建系統的理解。
通過用例描述發現用例之間的關系,在用例圖中描述出來建立用例模型,對用例之間的關系進行可視化的描述,使用戶和領域專家能夠更好地對系統的需求分析及其建模結果進行審評,及早發現需求的不足,減少系統開發的風險。
3.質量功能展開需求分析。通過UML可視化地表達系統需求的發現與描述,克服了系統需求分析中純文字性說明的不足之處,體現了直觀、規范、易交流等優點,這是需求表達的一種有效手段。在需求分析階段,還有一個關鍵的工作在于怎樣盡力降低初始階段的開發費用,加快初始階段的開發進度。但在系統分析人員缺少相關的領域知識,不熟悉其業務流程的情況下, 提取需求、精確描述需求之間關系、對于需求用例的優先級控制、性能性需求和技術特性需求等問題難以解決。
質量功能展開QFD (Quality Function Deployment)模型也是針對軟件系統開發周期各階段而建立的模型,特別是可對需求和技術特性進行定量需求分析。在系統需求分析中,QFD以用戶的需求為輸入,采用關系矩陣的方法對用戶需求加以描述、迭代展開,將用戶需求與技術特性、用戶需求的重要性與競爭性聯系起來,并把用戶的需求轉化為技術特性、構件接口和體系框架,從而提高系統需求獲取質量和需求分析質量,為從需求到設計的映射打下了好的基礎。
質量屋HOQ (House of Quality) 的概念是由美國學者J. R. Hauser和Don Clausing在1988年提出的。質量屋是由一個輸入到—個輸出的轉換過程,它提供了一種將用戶需求轉化成為技術特性,并配置到建造過程中去的結構方法。QFD采用HOQ建立用戶需求和功能特性之間的相互聯系,針對需求抽取困難的問題,把QFD應用到系統需求管理中,質量屋矩陣可用作需求獲取和分析過程可視化,及構造可視化模型的工具。質量屋的基本結構如圖2所示。
一個完整的質量屋包括6個部分:(1)用戶需求及重要度:確定了什么才是用戶最需要的;(2)技術特性:在需求分析時,由系統項目組根據用戶需求來提取出滿足這些需求的技術特性;(3)關系矩陣:描述了用戶需求和技術特性之間的關系程度;(4)競爭分析:站在用戶的角度,對本軟件系統在滿足用戶需求方面進行評估,以確定本系統的競爭優勢和劣勢以尋找突破性的改進方向和領域;(5)技術評估:技術評估包括技術特性的權重、競爭性評估和設計質量;(6)關聯矩陣:表示出了各技術特性之間相互支持或阻礙的關系。
經過反復的質量功能展開,HOQ陣逐漸被整理成層次化結構形式,而軟件需求和數據項目也被同時并列地層次化。HOQ矩陣的層次與需求項目的層次相對應,反映了需求的一次水平、二次水平、三次水平等層次關系,并通過技術評估檢驗需求是否滿足要求。
4.基于UML的QFD軟件系統需求定量分析過程。基于已建立的初始用例模型,由于領域業務、需求變化的因素可能導致需求分析的演化,即在現有需求分析的基礎上進行下一遍的需求分析及建模。基于不同領域知識互補的必要性,以演化的觀點來考慮系統的需求分析,項目經理應與參與者共同分析。不同類型的參與者在需求分析建模過程中,從不同的層次、不同的角度分析系統的需求,并通過UML表示出需求。如,需求分析人員主要考慮系統范圍的設定;構架設計師必需處理關鍵和重大的風險,確認那些制定構架計劃所需要的用例。經過QFD展開分析定量確定用例的優先級,對于本階段的目標是無關緊要的用例,只投入少量的精力,同時檢驗分析的需求是否足夠地滿足用戶的需求。
需求分析及建模需要經過多次反復才能完成,系統需求分析包括提煉、分析和仔細審查已收集到的需求,以確保所有的風險承擔者都明白其含義并找出其中的錯誤、遺漏或其他不足的地方。基于UML的QFD軟件系統需求定量分析過程包括以下的循環過程:
(1)對領域內的相關詞法進行分析,篩選出有效的備選需求;
(2)將功能性需求表示為用例;
(3)建立需求用例模型;
(4)列出用例模型中的功能需求和用戶的性能需求;
(5)對每一個需求盡可能量化應該做的工作;
(6)列出用戶需求與技術特性之間的關系;
(7)對需求的重要性進行排序,并給出評分;
(8)需求評審,對技術特性相對重要度較低的需求重復上述過程進行修正。
基于UML的QFD軟件系統需求定量分析模型如圖3所示。
用例作為新的需求分析技術,但若項目組對用例的劃分、用例的描述、用例與用例之間的關系把握不好,仍會造成項目的失敗。所以在實際工作中,建立用例模型后,為了保證獲取正確的需求,應采用關系矩陣的方法加以描述、迭代展開,從而提高需求分析的質量,保證對用例的一致理解,最終獲取需求的成功。
本文提出的基于UML的QFD需求定量分析方法已用于通用多媒體播放器的界面設計、超市管理系統的需求分析及中小企業ERP實施規劃中,收到了很好的效果。
參考文獻:
[1]熊偉新藤久和渡邊喜道:軟件需求定量分析及其映射的模糊層次分析法[J].軟件學報.Vol.16, No.3,2005,16(3) 427~433
[2]黃雨田聶麗琴段富何華軍:用例需求分析技術的應用[J].太原理工大學學報.Vol.36, No.2,2005(3)24~27
[3]閆健恩王翠華林建秋王俊義:用例建模在軟件需求分析中的應用[J].內蒙古大學學報(自然科學版) Vol.38 No.5,2007(9)578~581
[4]劉渝妍趙卿陳媛:基于UML的老年人口生活質量指標體系框架模型設計[J].重慶工學院學報. 2005(10):20~25
[5]王敏:基于UML的快速原型方法的研究和實現-推理快速生成法IFBM[J].華東師范大學碩士論文2005(10)
[6]劉渝妍楊永發:基于SQFD的軟件需求分析技術[J].計算機應用研究增刊2007
[7]邵家駿:質量功能展開[M].北京:機械工業出版社.2004
[8]劉渝妍:基于質量屋的人機界面設計[J].昆明大學學報,2006(4)
[9]孫挺:基于UML的需求獲取技術研究[J].鄭州大學碩士學位論文,2002(5)