前沿技術(shù)課程報告_第1頁
前沿技術(shù)課程報告_第2頁
前沿技術(shù)課程報告_第3頁
前沿技術(shù)課程報告_第4頁
前沿技術(shù)課程報告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、武漢大學 計算機學院2010級碩士研究生課程軟件工程前沿技術(shù)研究方向主講老師: 彭蓉 學 院: 計算機學院 學 號: 26 姓 名: 程勝 需求工程中需求獲取方法綜述摘要:隨著社會信息化的飛速發(fā)展,計算機軟件變得愈來愈復雜、規(guī)模也越來越龐大,軟件工程的研究也日益深入,軟件需求則逐步成為貫穿于整個軟件開發(fā)過程的核心因素,而需求獲取則成為需求工程領(lǐng)域的新熱點。需求獲取是軟件生命周期的初始階段,也是決定軟件成敗的關(guān)鍵因素之一,由于需求不清或錯誤導致軟件失敗的案例越來越多,所以如何快速、準確地獲取軟件需求成為軟件行業(yè)研究的重點。通過需求建模來獲取需求,目前有用例驅(qū)動的交互式需求獲取、基于UML的需求獲

2、取、基于領(lǐng)域本體的需求獲取方法、基于Event-B的軟件形式化需求獲取方法、基于RGPS的網(wǎng)絡(luò)式軟件需求方法等需求獲取方法。這幾種方法都有自己的獨特的獲取需求的方法,側(cè)重于獲取過程中的不同的方面,從不同角度方向、不同領(lǐng)域來克服需求獲取中的困難,提高需求獲取的準確性。關(guān)鍵字:需求工程 、需求獲取方法、用例驅(qū)動、UML、領(lǐng)域本體、Event-B、RGPS一、引言需求工程是隨著軟件工程的發(fā)展而產(chǎn)生的。在軟件開發(fā)的初級時期,軟件規(guī)模不大,軟件開發(fā)所關(guān)注的是代碼編寫,軟件需求很少受到重視。在引入軟件生命周期的概念后,需求工程成了軟件生命周期的第一階段。隨著軟件系統(tǒng)規(guī)模的擴大,以及為了解決“軟件危機”而引

3、起的軟件工程技術(shù)與方法的發(fā)展,需求工程在整個軟件開發(fā)與維護過程中就顯得越來越重要了。人們普遍認識到,充分研究軟件需求可以避免開發(fā)系統(tǒng)時的盲目性,能夠直接關(guān)系到軟件的成功與否。隨著軟件工程的研究和應(yīng)用的逐漸深入,人們同時認識到軟件需求不再僅限于軟件開發(fā)的最初階段,它貫穿于系統(tǒng)開發(fā)的整個生命周期。許多項目開發(fā)過程中出現(xiàn)的諸多問題都與需求工程階段沒有合理完整的進行需求獲取、分析有關(guān)。由此可見,需求工程對于項目開發(fā)尤其是大型項目的研發(fā)的至關(guān)重要的作用。需求工程的準確含義,沒有嚴格統(tǒng)一的表述。一種比較常用的解釋如下:需求工程是指應(yīng)用已證實有效的技術(shù)、方法進行需求分析、確定客戶需求,幫助分析人員理解問題并

4、確定目標系統(tǒng)的所有外部特征的一門學科;它通過合適的工具和記號系統(tǒng)地描述待開發(fā)系統(tǒng)及其行為特征和相關(guān)約束,形成需求文檔;并對用戶不斷變化的需求演進給與支持。需求工程可以分為需求開發(fā)和需求管理兩部分。需求開發(fā)包括需求獲取、需求分析、編寫需求規(guī)格、需求驗證;這些子學科涵蓋了為軟件和軟件相關(guān)產(chǎn)品收集、評估和記錄需求相關(guān)的所有活動。需求管理包括需求變更控制、版本控制、需求跟蹤、需求狀態(tài)跟蹤等內(nèi)容。需求工程中如何快速獲取和準確地理解、表達用戶需求,即需求獲取,是長期困擾軟件開發(fā)者的難題。一方面,軟件開發(fā)者由于不了解應(yīng)用領(lǐng)域,只能被動地等待領(lǐng)域用戶提供信息,他們常常抱怨用戶需求不全,經(jīng)常變化,使他們無所適從

5、;他們還難免對領(lǐng)域用戶的描述產(chǎn)生錯誤的理解,因而得出不適當?shù)男枨竽P停瑢е萝浖_發(fā)半途而廢。另一方面,領(lǐng)域用戶通常不知道如何按軟件開發(fā)的要求去描述他們的需求,而且,他們一開始常常對自己的需求僅有一個模糊的認識,如果沒有任何提示和引導,就不可能立刻給出正確而完整的需求描述。確定系統(tǒng)的需求是一個連續(xù)的過程,開發(fā)人員在開發(fā)系統(tǒng)之前不可能完全詳細地說明一個系統(tǒng)的真正需求。一個不完整的需求獲取和管理過程,會對項目的生命周期產(chǎn)生多米諾骨牌的效應(yīng)。用戶需求的缺失會導致系統(tǒng)需求的缺失,從而導致設(shè)計單元及功能的缺失,并最終導致系統(tǒng)不能實現(xiàn)預期的功能,或者需要在后期花費較大的代價來修正或補充這些功能,導致項目延期

6、、產(chǎn)生嚴重的質(zhì)量問題或超出項目預算。因此,及時、準確地獲取用戶需求,是決定軟件項目能否取得成功的關(guān)鍵步驟之一。二、需求獲取及需求建模需求獲取就是通過不斷交流溝通使軟件開發(fā)者和領(lǐng)域用戶對目標系統(tǒng)形成共識?,F(xiàn)今國內(nèi)外提出了數(shù)種需求獲取的方法,從不同角度方向、不同領(lǐng)域來克服需求獲取中的困難,提高需求獲取的準確性。獲取需求存在諸多困難主要原因如下:(1) 缺乏領(lǐng)域知識、應(yīng)用領(lǐng)域的問題常常是模糊的,不準確的;(2) 存在默認的知識,即難以描述的日常知識(常識問題);(3) 存在多個知識源,而且多個知識源之間可能有沖突。通過需求建??梢詠慝@取項目需求,明確需求細節(jié)。目前需求建模方法針對軟件范型不同主要分為

7、結(jié)構(gòu)化需求建模和面向?qū)ο笮枨蠼#婕肮δ苄枨蠓治龊头枪δ苄枨蠓治?。通過對各種需求工程方法的研究,目前影響力較大的需求建模方法,分別是面向目標的需求建模方法,基于領(lǐng)域本體的需求建模方法以及面向特征的需求建模方法。1、 面向目標的建模方法面向目標的建模方法側(cè)重于對早期需求進行分析和建模,試圖幫助開發(fā)者理解領(lǐng)域中不同角色的動機和期望,可對功能和非功能需求目標識別分析。面向目標的建模方法,在需求階段的主要任務(wù)是要確定軟件系統(tǒng)需求相關(guān)者想要實現(xiàn)的各項目標,建立實現(xiàn)這些目標所需要的服務(wù)和約束條件的規(guī)格說明,并將需求按職責分配給相應(yīng)的主體來完成。該方法將“目標”看作軟件需求的源頭和依據(jù),以目標為需求獲取的

8、基本線索,誘導需求提供者按目標的分解、精華和抽象關(guān)系,逐步構(gòu)建系統(tǒng)目標與(或)樹。面向目標方法的主要特點是目標樹為需求活動提供了一種表示結(jié)構(gòu)和自頂向下的需求分析方法,有助于將零碎分散的需求信息組織成易于理解的層次結(jié)構(gòu),多種目標分解方式使得不同的設(shè)計方案得以兼顧和考慮。更為重要的是,將目標與形式化方法結(jié)合,能夠為需求工程以及軟件產(chǎn)品的正確性和完整性提供可靠的保證。面向目標的方法,考慮組織中參與者的主動需求,不僅分析單個參與者的目標分解,更研究參與者之間的各種依賴關(guān)系,如目標依賴、任務(wù)依賴、資源依賴和軟目標依賴。面向目標的方法主要有以時序邏輯為基礎(chǔ)的基于自動規(guī)約的需求獲取方法KAOS、面向目標和過

9、程分析的非功能需求框架NFR、i半建??蚣芤约敖⒃谀繕嘶A(chǔ)上的開發(fā)方法TROPOS方法。2、基于領(lǐng)域本體的建模方法本體論是一個哲學概念,用于描述事物的本質(zhì).知識工程學者借用這個概念,是為了解決知識共享中的問題。人們發(fā)現(xiàn),知識難以共享常常是因為大家對同一件事用了不同的術(shù)語來表達。于是人們提出,如果能找出事物的本質(zhì),并以此統(tǒng)一知識的組織和知識的表達,使之成為大家普遍接受的規(guī)范,就有可能解決知識共享中的問題。簡而言之,本體是對于知識的描述。就需求工程而言,本體的作用體現(xiàn)于:本體作為需求規(guī)格說明,即建立特定領(lǐng)域的本體,利用這個本體為建立多個目標應(yīng)用系統(tǒng)的需求提供知識庫。此時,本體可以看作一個公共的領(lǐng)

10、域模型,作為建立領(lǐng)域內(nèi)應(yīng)用系統(tǒng)需求規(guī)范和系統(tǒng)開發(fā)的基礎(chǔ),能夠進行知識重用。ODE方法是一種比較典型的基于本體領(lǐng)域分析方法,包含三個部分:領(lǐng)域分析、領(lǐng)域模型到對象模型的映射和Java構(gòu)建開發(fā)。ODE方法的基本步驟包括:建立目標和需求規(guī)范;基于本體捕獲領(lǐng)域概念,標識和組織相關(guān)領(lǐng)域?qū)嶓w,利用圖形化描述的模型來促進領(lǐng)域?qū)<业慕涣?;用一種形式化的語言清晰地描述本體模型;評估本體以檢查它們是否滿足需求規(guī)范;最后對所有本體加以文檔化。從領(lǐng)域本體模式中導出面向?qū)ο蟮哪P蜁r,ODE中提供了一個包括指示、設(shè)計模式和轉(zhuǎn)換規(guī)則的系統(tǒng)化方法,指示可以指導從本體結(jié)構(gòu)到面向?qū)ο笙鄳?yīng)部分的映射,設(shè)計模式和轉(zhuǎn)換規(guī)則可以用來映射

11、本體中的公理到面向?qū)ο蟮南鄳?yīng)部分。3、面向特征的建模方法面向特征的領(lǐng)域分析(Feature Oriented Domain Analysis, FODA)是由KKang等人在20世紀90年代提出的一種全面的領(lǐng)域分析過程描述,用于識別特定領(lǐng)域中一系列應(yīng)用系統(tǒng)的顯著特征,針對領(lǐng)域進行共性和個性的研究,抽取領(lǐng)域模型,從而建立可復用的軟件體系結(jié)構(gòu)。其基本思想在于,從領(lǐng)域的具體應(yīng)用系統(tǒng)中,抽象出具有代表性的功能,組成領(lǐng)域模型,從而為以后的應(yīng)用系統(tǒng)開發(fā)奠定基礎(chǔ)7。隨后,KKang等人對FODA方法進行了擴展使之應(yīng)用于軟件復用領(lǐng)域,提出了面向特征的軟件復用方法(Feature Oriented Reuse

12、Method, FORM),并且在基于構(gòu)件的開發(fā)中用FORM輔助開發(fā)軟件體系結(jié)構(gòu)和可重用構(gòu)件,確定了在軟件開發(fā)中面向特征方法的作用和意義。面向特征的領(lǐng)域分析以“特征”作為組織需求的基本單元,通過分析領(lǐng)域具有的可復用特征和特征之間的依賴關(guān)系,建立領(lǐng)域的特征模型。領(lǐng)域設(shè)計則以特征模型為輸入進行領(lǐng)域軟件體系結(jié)構(gòu)的構(gòu)造。同時,通過定制對特征模型的復用也是形成單個軟件產(chǎn)品需求模型的有效手段。三、幾種需求獲取方法目前,使用比較廣泛、研究比較熱門的幾種需求獲取方法有:(1) 用例驅(qū)動的交互式需求獲取(2) 基于UML的需求獲?。?) 基于領(lǐng)域本體的需求獲取方法(4) 基于Event-B的軟件形式化需求獲取方

13、法(5) 基于RGPS的網(wǎng)絡(luò)式軟件需求方法1、用例驅(qū)動的交互式需求獲取多年來,分析者總是利用情節(jié)或經(jīng)歷來描述用戶和軟件系統(tǒng)的交互方式,從而獲取需求。Ivar Jacobson(1992)把這種看法系統(tǒng)地闡述成用例的方法進行需求獲取和建模。雖然用例來源于面向?qū)ο蟮拈_發(fā)環(huán)境,但是它也能應(yīng)用在具有許多開發(fā)方法的項目中。用例(use case)是指系統(tǒng)為了向參與者提供某些有價值的結(jié)果而執(zhí)行的動作序列,這個序列是在與系統(tǒng)的對話中完成的新的活動。用例代表的是外部執(zhí)行者所理解的系統(tǒng)功能。涉及到參與者即角色。用例中的關(guān)系有擴展(Extend)、包含(Include)和泛化(Generalization). 用

14、例驅(qū)動的交互式需求獲取方法:(1)功能性需求的獲?。韩@取用戶需求,定義問題范圍,收集用戶需求,確定參與者和用例。參與者是指所有存在與系統(tǒng)外部并與系統(tǒng)進行交互的人或其他系統(tǒng),從需求獲取信息獲取參與者。首先要確定系統(tǒng)范圍(System Scope)和系統(tǒng)邊界(System Border), 系統(tǒng)的范圍與邊界取決于開發(fā)的目標、任務(wù)和規(guī)模;確定參與者的種類,參與者有三大類也就是三種角色:用戶、其他系統(tǒng)和時間。(2)用戶需求用例的獲?。韩@取用例的最好辦法是考慮每個參與者需要系統(tǒng)為他做些什么,即參與者的目標。最后進行用例求精(Use Case Refinement)。用戶需求決定了系統(tǒng)的功能需求,為了獲取

15、這些功能需求,必須要對用戶需求階段獲取的大粒度的抽象用例進行求精,通過細化用例的事件流,得到用例的所有場景的集合,而這些場景中各個步驟就是功能需求的來源。用例驅(qū)動的關(guān)鍵在于提供準確的Actor以及相關(guān)的用例信息。因而我們設(shè)計出相應(yīng)的用戶填寫的內(nèi)容,讓用戶填寫它所關(guān)心的功能需求的描述,基本以獲取用例驅(qū)動相關(guān)信息為主。填寫完所需內(nèi)容我們可以往需求獲取表格中添加,當然,由于是交互的過程,我們需要對需求進行反復的修改,因而我們允許進行修改、刪除等操作。用戶需求描述信息的格式以及要素有:功能需求描述、用戶名、用例描述、主要Actor、前置條件、成功后置條件、失敗后置條件、關(guān)聯(lián)用例。2、基于UML的需求獲

16、取面向?qū)ο蟮慕J且环N新的設(shè)計思想,一種關(guān)于計算和信息結(jié)構(gòu)化的新思維。面向?qū)ο蟮慕?,把系統(tǒng)看作是相互協(xié)作的對象,這些對象是結(jié)構(gòu)和行為的封裝,都屬于某個類,那些類具有某種層次化的結(jié)構(gòu)。系統(tǒng)的所有功能通過對象之間相互發(fā)送消息來獲得。面向?qū)ο蟮慕?梢砸暈槭且粋€包含以下元索的概念框架:抽象、封裝、模塊化、層次、分類、并行、穩(wěn)定、可重用和可擴展。UML適用于以面向?qū)ο蟮募夹g(shù)來描述任何類型的系統(tǒng)。而且適用于系統(tǒng)開發(fā)的不同階段。可以應(yīng)用于任何領(lǐng)域,其實現(xiàn)機制又極人地縮短了與用戶的距離,易于被用戶掌握和接受。UML使用戶不僅可以有效地參與需求定義,還能在建模過程中參與部分的設(shè)計、實現(xiàn)和測試,從而有效地進行

17、需求驗證。使用戶在需求的定義、決策、驗證和管理,乃至整個軟件開發(fā)過程中,充分發(fā)抨其主導作用。UML包括UML語義和UML表示法兩個部分。UML語義采用4級元模型體系結(jié)構(gòu):元-元模型(meta-meta model),元模型的基礎(chǔ)體系結(jié)構(gòu),定義了一種說明元模型的語言;元模型(met model),元-元模型的一個實例,定義一種說明模型的語言;模型(model),元模型的一個實例,定義一種語言來描述信息領(lǐng)域;用戶對象(user object)模型的一個實例,定義一個特定的信息領(lǐng)域。標準建模語言UML 有五類圖:用例圖,從用戶角度描述系統(tǒng)功能,并指出各功能的操作者;靜態(tài)圖,包括類圖、對象圖和包圖;行

18、為圖,描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系;交互圖,描述對象間的交互關(guān)系;實現(xiàn)圖,包括構(gòu)件圖和配置圖。UML適用于系統(tǒng)開發(fā)過程中從需求規(guī)格描述到系統(tǒng)完成后測試的不同階段。在需求分析階段,可以用用例來捕獲用戶需求。通過用例建模,描述對系統(tǒng)感興趣的外部角色及其對系統(tǒng)(用例)的功能要求。分析階段主要關(guān)心問題域中的主要概念(如抽象、類和對象等)和機制,需要識別這些類以及它們相互間的關(guān)系,并用UML類圖來描述。為實現(xiàn)用例,類之間需要協(xié)作,這可以用UML動態(tài)模型來描述。在分析階段,只對問題域的對象(現(xiàn)實世界的概念)建模,而不考慮定義軟件系統(tǒng)中技術(shù)細節(jié)的類(如處理用戶接口、數(shù)據(jù)庫、通訊和并行性等問題的類

19、)。這些技術(shù)細節(jié)將在設(shè)計階段引入,因此設(shè)計階段為構(gòu)造階段提供更詳細的規(guī)格說明。3、基于領(lǐng)域本體的需求獲取方法所謂領(lǐng)域本體(Domain Ontology),是指用于描述指定領(lǐng)域知識的一種專門本體,它給出了領(lǐng)域?qū)嶓w概念及相互關(guān)系、領(lǐng)域活動以及該領(lǐng)域所具有的特性和規(guī)律的一種形式化描述。目前最普遍的本體描述語言有OWL、Ontolingua、CycL和Loom等。此外,本體的建模工具也有很多,主要有OntoEdit、Ontolingua、Protg等。目前使用最多的本體編輯工具是Prot。領(lǐng)域本體由對象、對象的屬性、對象之間的關(guān)系以及子領(lǐng)域本體構(gòu)成。領(lǐng)域本體的構(gòu)建方法有多種,如:TOVE法、METH

20、ONOTOLOGY法、KACTUS法等。為了解決傳統(tǒng)需求獲取方法的不足,將特定領(lǐng)域的領(lǐng)域本體引入到需求分析過程中,不僅使開發(fā)者和用戶,以及開發(fā)者之間在用戶需求理解上達成一致,使開發(fā)者和用戶更好地溝通,指導用戶用標準的方式來表達他們的需求,而且方便需求的獲取并提高需求的準確性;還可以復用專業(yè)領(lǐng)域知識,使專業(yè)領(lǐng)域內(nèi)的假設(shè)變得更加明確,并且可以幫助用戶分析專業(yè)領(lǐng)域知識。由于本體在需求分析領(lǐng)域中有以上優(yōu)點,因此,產(chǎn)生了基于本體的需求獲取方法。由H.Kaiya及M.Saeki提出的基于本體的需求獲取方法中,領(lǐng)域本體用來表達領(lǐng)域知識,其中包括了領(lǐng)域內(nèi)所有的概念和關(guān)聯(lián),就如同領(lǐng)域術(shù)語詞典,記錄了領(lǐng)域內(nèi)的所有

21、信息,用戶提出的需求都可以用這些概念通過語義函數(shù)來表達,通過用戶需求設(shè)計的概念與本體中概念的對應(yīng)程度來判斷需求的正確性、完整性、一致性和無二義性。通過深化領(lǐng)域知識,使得需求獲取過程更系統(tǒng)、更有效?;诒倔w的領(lǐng)域需求分析方法,以領(lǐng)域本體為線索,統(tǒng)一領(lǐng)域知識的組織和表達,幫助和引導用戶描述系統(tǒng)的需求,規(guī)范需求獲取的過程,對領(lǐng)域需求分析和領(lǐng)域工程的實施具有重要的指導意義;從基于領(lǐng)域本體的應(yīng)用需求描述到基于UML的軟件需求文檔的自動轉(zhuǎn)換過程,目前均取得了一定成果?;陬I(lǐng)域本體的需求獲取目前存在的問題有:(1)目前基于本體的需求獲取方法都是基于靜態(tài)本體的方法,均針對某一個特定領(lǐng)域構(gòu)造好領(lǐng)域本體后再進行需

22、求獲取,并沒有考慮需求多變的情況,而實際中,軟件系統(tǒng)是非常復雜的,領(lǐng)域知識也是不斷變化的,而現(xiàn)有的單一的領(lǐng)域本體往往不能滿足需求獲取的需要。(2)在基于本體的需求獲取過程中,領(lǐng)域本體存儲了大量的領(lǐng)域信息,如何將符合用戶需求的領(lǐng)域信息提取出來,用于引導需求獲取是目前該方法的一個難點,如何根據(jù)用戶的需求,檢索出符合用戶需要的領(lǐng)域信息是目前需要解決的問題。(3)如何通過領(lǐng)域本體構(gòu)造出適合軟件開發(fā)的需求模型(Requirement Model),是需求獲取的關(guān)鍵。只有正確的構(gòu)造出軟件需求模型,才能引導用戶進行需求獲取,最終生成軟件需求文檔。目前存在的問題是如何將領(lǐng)域本體轉(zhuǎn)化成能夠描述軟件需求的UML類

23、圖,如何生成軟件原型是目前需要解決的問題。領(lǐng)域本體構(gòu)建步驟:1.本體的需求分析:明確創(chuàng)建本體的目的和本體能夠解決的問題。2.本體的獲取:確定本體的概念和術(shù)語,將領(lǐng)域分為各個場景,在場景中進行詞匯搜索,找出改領(lǐng)域中的概念;確定類及類的體系,定義本體中的類,并將定義好的類及子類按分類法定義在不同的層次上。3.本體的形式化表示,解決本體的表示和推理問題。首先確定槽、槽值、關(guān)系,代表了本體的屬性及類的相關(guān)知識;確定本體公理,用公理描述類、子類、屬性之間的關(guān)系,采用比自然語言更嚴格的格式和推理機制?;陬I(lǐng)域本體的需求獲取和表示:1.領(lǐng)域本體的需求分析。從場景中提取基于實例的概念、信息等。2.領(lǐng)域本體的需

24、求獲取。概念類及其層次結(jié)構(gòu),選擇比較抽象的概念作為類,確定類、子類及類之間的層次結(jié)構(gòu);屬性集,通過考察概念的含義和簡單關(guān)系,選擇相對具體的概念作為屬性;關(guān)系集,考慮類與屬性之間的關(guān)系;3.領(lǐng)域本體的形式化。框架結(jié)構(gòu),框架可以為實體、屬性、關(guān)系和默認值等提供顯式的表示。框架容易附加過程信息。槽的過程附件不僅提供了附加的推理機制,還可以進行矛盾檢測,用于知識庫的一致性維護,框架是一種通用的知識表達形式,框架系統(tǒng)還沒有統(tǒng)一的形式,常由各種問題的不同需要決定;槽,根據(jù)交易領(lǐng)域本體的屬性集,得到槽表;關(guān)系,根據(jù)交易領(lǐng)域本體的關(guān)系集,得到關(guān)系;公理表示,當領(lǐng)域本體的公理無特別要求,可選擇一階謂詞作形式化語

25、言。一階謂詞本身沒有包含什么約束,滿足本體設(shè)計時的最小約束準則。4、基于Event-B的軟件形式化需求獲取方法一種形式化的需求獲取方法,在離散系統(tǒng)模型的基礎(chǔ)上,提出了一個可以適用于軟件生命周期所有階段的模型公平離散系統(tǒng)模型,并給出了其在軟件需求獲取過程中求精、驗證和控制復雜性的方法、需求模型復用的概念。接下來,采用Event-B完整地描述形式化的需求獲取的全過程,對Event-B的模型結(jié)構(gòu)進行了擴充,把從規(guī)約到程序求精和驗證的概念延伸到需求獲取過程中,并詳細地解釋了需求獲取過程中需求求精驗證和從規(guī)約到程序求精驗證的本質(zhì)區(qū)別。在需求模型復雜性控制方法上,給出了模型分解的新算法,求精過程中給出事件

26、引入的新策略,同時詳細給出了需求模型復用的策略。在需求構(gòu)建過程中,離散系統(tǒng)模型是對問題系統(tǒng)的抽象,在實現(xiàn)過程中,離散系統(tǒng)模型是對程序的抽象(它的語義等價于轉(zhuǎn)移系統(tǒng)模型),離散系統(tǒng)應(yīng)能很好的描述系統(tǒng)或程序的性質(zhì),離散系統(tǒng)模型應(yīng)能描述系統(tǒng)和程序的安全性和活性。對于并發(fā)系統(tǒng)、反應(yīng)系統(tǒng)和分布系統(tǒng),離散系統(tǒng)模型還應(yīng)能準確地描述系統(tǒng)事件被選中執(zhí)行的方式,既離散系統(tǒng)模型應(yīng)能準確的描述系統(tǒng)事件之間的公平性。作為軟件開發(fā)過程中使用的統(tǒng)一框架模型,公平離散系統(tǒng)模型包含如下幾個組成部分:狀態(tài)變量的集合、狀態(tài)變量定義域和常量的集合、狀態(tài)之間的轉(zhuǎn)移的集合、初始化條件的集合、公平約束的集合。用符號FDSM(U,V,INI

27、T,T,MP,WF,SF)表示:Uu1,u2,un模型內(nèi)一組有窮的狀態(tài)變量的集合,針對有限狀態(tài)系統(tǒng),所有的狀態(tài)變量定義域是有限的。無窮狀態(tài)系統(tǒng)狀態(tài)變量的取值范圍是無限的。Vv1,v2,vn是狀態(tài)變量定義域及常量的集合,表示整個狀態(tài)變量的取值范圍和在這模型中所必需的常量。INIT是模型的初始條件的集合,這些條件定義出所有FDSM的初始狀態(tài),如果一個狀態(tài)滿足條件INIT,那么就稱其為初始狀態(tài)。T模型中事件的集。MPm1,m2,mn是MP公平的集合,其中miT,直觀的解釋如果m包含于MP,在一定的狀態(tài)下m中的事件的衛(wèi)條件為真,那么一定有部分的事件發(fā)生,且轉(zhuǎn)移到下一個狀態(tài)。WFw1,w2,wn是弱公平

28、的集合,其中wiT,直觀的解釋如下:如果在模型的一個無窮計算序列中wi的衛(wèi)條件一直為真,那么在這個計算序列中wi一定能被無限多次選中運行。SFs1,s2,sn是強公平的集合,其中siT,直觀的解釋如下:如果模型中的無窮計算序列中si的衛(wèi)條件無窮多次為真,那么在這個計算序列中si一定能被無限多次的選中運行。利用公平離散系統(tǒng)模型構(gòu)建系統(tǒng)需求模型是一個步進的過程,在構(gòu)建系統(tǒng)的需求時,首先開始構(gòu)建一個最簡單的系統(tǒng)模型,這個模型只具備一些大粒度的事件,驗證最初的模型。驗證完成之后,在個模型的基礎(chǔ)上進一步的考察系統(tǒng)對獲得的需求進行的擴充,在驗證在擴充。這個過程和從規(guī)約到程序的過程有點類似,仿造從規(guī)約到程序

29、演化過程的概念,把這過程也稱之為求精。求精之后的需求更接近實際系統(tǒng),需求求精過程和規(guī)約的演化過程有本質(zhì)的區(qū)別,在規(guī)約到程序的演化過程中,涉及到數(shù)據(jù)類型和語言概念上的變化,而在需求的獲取過程中數(shù)據(jù)類型是一致的,且不存在語言概念上的變化,在需求求精過程中使用的語言是完全相同。更直觀的講,需求的求精過程有點類似于觀察一個事物,當距離較遠時,看到的系統(tǒng)的特征較大,能看見的系統(tǒng)的行為很少,當?shù)木嚯x進一些時,看到的特征粒度就會小些,能看見的系統(tǒng)行為就比之前多些,這樣逐步拉近和觀察事物的距離看到的細節(jié)就越來越多,直到最終獲取所觀察事物的所有細節(jié),在這個觀察的過程中使用方法和借助的工具均是相同。公平離散系統(tǒng)模

30、型構(gòu)建系統(tǒng)需求方法是基于模型的方法,使用EventB作為其描述語言。公平離散系統(tǒng)模型由如下幾部分組成:狀態(tài)變量的集合、狀態(tài)變量定義域和常量的集合、狀態(tài)之間的轉(zhuǎn)移的集合、初始化條件的集合、公平的集合。EventB的系統(tǒng)模型由兩個主要部件組成:Model和Context。其中Model描述的是公平離散系統(tǒng)中狀態(tài)變量、狀態(tài)之間的轉(zhuǎn)移、初始化條件和公平,而Context描述的模型的所需的支集和常量集合及關(guān)于支集和常量的約束,反應(yīng)的是公平離散系統(tǒng)模型中狀態(tài)變量定義域和常量。一個基本的EventB的模型由如下四部分組成:(1)、關(guān)鍵字MODEL名稱;(2)、狀態(tài)變量的集合,對每個狀態(tài)變量賦值就可以確定模型

31、的具體的狀態(tài),在Model中用v代表;(3)、不變式約束,模型中所有狀態(tài)都必需滿足的一組狀態(tài)謂詞,由狀態(tài)變量和常量組成,其值僅有真與假兩種取值可能,在模型中用I(v)表示,用來限定模型的邊界。(4)、事件的集合,狀態(tài)間的轉(zhuǎn)移,在EventB模型中稱之為事件(Event),對應(yīng)于公平離散系統(tǒng)模型中的轉(zhuǎn)移。用EventB模型描述系統(tǒng)的需求模型,必需對模型中描述的軟件系統(tǒng)的相關(guān)性質(zhì)進行驗證,以確保獲取的系統(tǒng)需求模型有效性和完備性,在統(tǒng)一的框架下處理需求和規(guī)約,可以把在規(guī)約中用于驗證完整性和有效性及一致性的規(guī)則,推廣到需求模型的驗證中。首先必需考慮驗證模型的安全性質(zhì),其次考慮驗證模型的活性性質(zhì)。5、基

32、于RGPS的網(wǎng)絡(luò)式軟件需求方法網(wǎng)絡(luò)式軟件作為一種部署在網(wǎng)絡(luò)環(huán)境中的復雜系統(tǒng),同時亦是一種典型的面向服務(wù)軟件,它為互聯(lián)網(wǎng)上信息資源的服務(wù)封裝、發(fā)布、注冊、重用、聚合和集成等提供一套完整的解決方案。網(wǎng)絡(luò)式軟件可以為用戶提供隨需而變的在線服務(wù)。隨需而變的在線服務(wù)要求網(wǎng)絡(luò)式軟件具備根據(jù)用戶的需求變更以及網(wǎng)絡(luò)資源的動態(tài)變化進行快速的適應(yīng)性演化和調(diào)整的能力。由于分布在網(wǎng)絡(luò)中用戶的不確定性、需求的持續(xù)生長和用戶的個性化偏好,在強調(diào)“以用戶為中心”的網(wǎng)絡(luò)式軟件中,需要隨時根據(jù)用戶需求變更對軟件進行適應(yīng)性調(diào)整以最大程度的滿足它們。利用角色、目標、過程和服務(wù)這四個基本要素來對基于Web服務(wù)組合系統(tǒng)開發(fā)中用戶的真實

33、意圖進行建模是可行的。在此基礎(chǔ)上,提出了一個包含這四個基本要素的需求元建模框架RGPS(Role-Goal-Process-Service,角色-目標-過程-服務(wù)),用來指導將無序的需求信息整理成協(xié)同有序的結(jié)構(gòu)化的需求模型。其中,Role層描述需求中涉及的共性用戶抽象。Goal層捕獲需求的業(yè)務(wù)目標。Process層是完成上述業(yè)務(wù)目標的具體過程,包括原子過程和組合過程。Service層是每個原子過程對應(yīng)的服務(wù)描述,也是將來需求模型與服務(wù)匹配從而最終生成網(wǎng)絡(luò)式軟件的契約所在?;赗GPS需求元建??蚣?用戶需求能夠從不同的角度、在不同的層次、以不同的粒度進行描述。同時,RGPS需求元建??蚣芤部梢灾笇绾胃玫睦镁W(wǎng)絡(luò)服務(wù)資源之間的交互與協(xié)同來滿足用戶的個性化需求,促進人網(wǎng)協(xié)同,實現(xiàn)以用戶為中心的需求驅(qū)動的開發(fā)。在本體元建模方法的指導之下,在RGPS需求元建??蚣艿幕?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論