《教學目的理解面向?qū)ο蟮母拍睢⒄莆栈赨ML語言機制的需求分ppt課件》由會員分享,可在線閱讀,更多相關(guān)《教學目的理解面向?qū)ο蟮母拍?、掌握基于UML語言機制的需求分ppt課件(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、軟 件 工 程,教學目的:理解面向?qū)ο蟮母拍睢⒄莆栈赨ML語,言機制的需求分析方法和過程。,教學重點:基于UML語言機制的需求分析方法和過,程、CASE工具,教學難點:CASE工具,教 具:多媒體教室、電子教案,作 業(yè):,第6章 面向?qū)ο蟮男枨蠓治?教學目的:理解面向?qū)ο蟮母拍睢⒄莆栈赨ML語第6章 面向,6.1面向?qū)ο蟮母拍钆c思想,面向?qū)ο螅∣bject Oriented)方法是,將現(xiàn)實世界的事物以對象的方式映射到計算機世界的方法,。用面向?qū)ο蟮姆椒ㄇ蠼猬F(xiàn)實世界問題的第一步便是面向?qū)ο蠓治?。面向?qū)ο蠓治霭瑑蓚€可以重疊的過程:用面向?qū)ο蟮?方法,對現(xiàn)實世界的問題進行分析;用面向?qū)ο蟮?工
2、具,對分析結(jié)果進行描述。,本章重點介紹面向?qū)ο蟮姆椒?,并用“C程序設(shè)計上機考試系統(tǒng)”為例來介紹UML語言機制。,6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο螅∣bject Orien,現(xiàn)實世界,OOA,OOD,OOP,SA,SD,SP,機器世界,結(jié)構(gòu)化生命周期方法,面向?qū)ο蠓椒?面向?qū)ο蠓椒ê兔嫦蜻^程方法的對比,現(xiàn)實世界OOAOODOOPSASDSP機器世界結(jié)構(gòu)化生命周期,6.1 面向?qū)ο蟮母拍钆c思想,從事物的,過程側(cè)面,來描述事物的方法被稱之為,面向過程的方法,。該方法在認識現(xiàn)實事物的整個過程中是把事物內(nèi)部的處理過程作為核心來描述的。,從事物的,組成部件及每個部件的屬性、功能,來認識事物。比如,汽車由
3、發(fā)動機,底盤,變速箱等組成,發(fā)動機有排量,有沖程數(shù)等屬性,同時發(fā)動機還具有啟動,加大油門等操作。這就是將現(xiàn)實世界的事物的屬性和及其過程一并進行描述的方法,這種方法被稱為,面向?qū)ο蟮姆椒?。,從事物的,屬性側(cè)面,來描述事物的方法就是,面向數(shù)據(jù)的方法,,該方法在認識事物的過程中始終把事物的屬性作為描述的核心。,6.1 面向?qū)ο蟮母拍钆c思想從事物的過程側(cè)面來描述事物的方,6.1 面向?qū)ο蟮母拍钆c思想,在抽象現(xiàn)實世界的事物時,必須把抽象的范圍限定在我們的,問題域內(nèi),?,F(xiàn)實世界的事物都有很多側(cè)面,我們只應(yīng)關(guān)心那些跟我們要解決的問題相關(guān)的側(cè)面。,比如:在抽象和描述“學生”對象時,針對不同的問題域,可能得到
4、不同的抽象結(jié)果。對于學生管理系統(tǒng),學生的成績、所選的課程等在問題域范圍內(nèi),而學生的病史,過敏史則不在問題域內(nèi);如果是一個醫(yī)管系統(tǒng),病史,過敏史則落在問題域內(nèi)。,下面介紹面向?qū)ο蟮?五大要素,:,6.1 面向?qū)ο蟮母拍钆c思想在抽象現(xiàn)實世界的事物時,必須把抽,(1)對象(Object),對象,是現(xiàn)實世界事物或個體的抽象表示,是其屬性和相關(guān)操作的封裝。抽象的結(jié)果不僅包括事物個體的屬性,還包括事物的操作。屬性值表示了對象的內(nèi)部狀態(tài)。,在分析階段,,對象的操作,是對象展現(xiàn)給外部的服務(wù)。,對象狀態(tài),的改變是由對對象的操作引起的。,例如,對于民航機場的指揮控制系統(tǒng),MU9114航班就是該問題域中的對象,該對
5、象的屬性可以包含:航班號、起飛機場、降落機場、起飛時間、降落時間,位置等;可能的操作包括離港、到港等。當對MU9114航班對象進行離港操作時,對象的狀態(tài)將從??繝顟B(tài)改變成飛行狀態(tài)。,(1)對象(Object)對象是現(xiàn)實世界事物或個體的抽象,(2)類(Class),類是對具有共同特征(屬性和操作)的對象的進一步抽象。類通常被認為是對象的模板,通過該模板可以創(chuàng)建特性一致的對象。使用類創(chuàng)建對象的過程實際上是類的實例化過程。,類是對象的抽象,對象是類的實例。在客觀世界存在的是類的實例,即對象。,(3)繼承(Inheritance),繼承關(guān)系模擬了現(xiàn)實世界中遺傳關(guān)系的直接模擬,也即一般與特殊關(guān)系的模擬。
6、它允許我們在已有的類的特性基礎(chǔ)上構(gòu)造新類。被繼承的類我們稱之為基類(父類),在基類的基礎(chǔ)上新建立的類我們稱之為派生類(子類)。派生類的特性比基類的特性更細致。,(2)類(Class)類是對具有共同特征(屬,(4)聚集(Aggregation),聚集模擬了現(xiàn)實世界的部分與整體的關(guān)系。它允許利用現(xiàn)有的類組成新類。比如說汽車,它是由發(fā)動機、變速箱、底盤等組成,那么我們就可以利用發(fā)動機、變速箱、底盤等類聚集成一個新的類:汽車類。,(5)消息(Message),消息是對象之間交互的唯一途徑,一個對象要想使用其他對象的服務(wù),必須向該對象發(fā)送服務(wù)請求消息。而接收服務(wù)請求的對象必須對請求做出響應(yīng)。,例如:當我
7、們向銀行系統(tǒng)的帳號對象發(fā)送取款消息時,帳號對象將根據(jù)消息中攜帶的取款金額對客戶的帳號進行取款操作:驗證帳號余額,如果帳號余額足夠,并且操作成功,對象將把執(zhí)行成功的消息返回給服務(wù)請求的發(fā)送對象,否則發(fā)送交易失敗消息。,(4)聚集(Aggregation)聚集模擬了現(xiàn)實世界的,6.1 面向?qū)ο蟮母拍钆c思想,小結(jié),:面向?qū)ο蟮男枨蠓治龇椒ㄍㄟ^提供,對象、對象間消息傳遞,等語言機制,讓分析人員在,解空間,中直接模擬,問題空間,中的對象,從而消減運用其他分析方法帶來的,語義斷層,,為需求建模活動提供直觀、自然的語言支持和方法學指導。,面向?qū)ο髮ο箢惱^承聚集消息,。,6.1 面向?qū)ο蟮母拍钆c思想 小結(jié):面
8、向?qū)ο蟮男枨蠓?6.2 UML 概述,6.2.1 UML 語言機制,UML通過圖形化的表示機制從多個側(cè)面對系統(tǒng)的分析和設(shè)計模型進行刻畫,共有5類10種視圖如下所示:,靜態(tài)模型 動態(tài)模型,邏輯模型 類圖 用例圖,對象圖 順序圖,包圖 協(xié)作圖,狀態(tài)圖,活動圖,物理模型 構(gòu)件圖,配置圖,6.2 UML 概述6.2.1 UML 語言機制,6.2.1 UML,語言機制,1、用例圖(Usecase Diagram):用于表示系統(tǒng)的功能,并指出各功能的操作者;,2、靜態(tài)圖:包括類圖(Class Diagram)、對象圖(Object Diagram)及包圖(Package Diagram),表示系統(tǒng)的靜態(tài)結(jié)
9、構(gòu);,3、行為圖:包括狀態(tài)圖(State Diagram)及活動圖(Activity Diagram),用于描述系統(tǒng)的動態(tài)行為和對象之間的交互關(guān)系;,4、交互圖:包括順序圖(Sequence Diagram)和協(xié)作圖(Collaboration Diagram),用于描述系統(tǒng)對象之間的動態(tài)合作關(guān)系;,5、實現(xiàn)圖:包括構(gòu)件圖(Compoment Diagram)和配置圖(Deployment Diagram),用于描述系統(tǒng)的物理實現(xiàn)。,6.2.1 UML 語言機制1、用例圖(Usecase Di,6.2.2 基于UML 的軟件開發(fā)過程,1、初啟:確定項目的,主要目標和范圍,,并進行初步的,可行性
10、分析和經(jīng)濟效益分析,。,2、細化:細化階段的開始標志著項目的正式確立。軟件項目在此階段需要完成以下工作:,(1)初步的需求分析。采用UML的,用例,描述目標軟件系統(tǒng)所有比較重要、比較有風險的用例,利用,用例圖,表示參與者與用例、以及用例和用例之間的關(guān)系。采用UML的,類圖,表示目標軟件系統(tǒng)所基于的應(yīng)用領(lǐng)域中的概念與概念之間的關(guān)系。這些相互關(guān)聯(lián)的概念構(gòu)成領(lǐng)域模型。,(2)初步的高層設(shè)計。根據(jù)用例、類在業(yè)務(wù)領(lǐng)域中的關(guān)系,或者根據(jù)業(yè)務(wù)領(lǐng)域中某種有意義的分類方法將整個軟件系統(tǒng)劃分為若干個包,利用UML的,包圖,刻化這些包及其包間關(guān)系。,6.2.2 基于UML 的軟件開發(fā)過程1、初啟:確定項目的,(3)
11、部分的詳細設(shè)計。對于系統(tǒng)中某些重要的或者風險比較高的用例,可以采用,交互圖,進一步探討其內(nèi)部實現(xiàn)過程。同樣,對于系統(tǒng)中的關(guān)鍵類,也可以詳細研究其屬性和操作,并在UML,類圖,中加以表現(xiàn)。,(4)部分的原型構(gòu)造。,綜上所述,在細化階段可能需要使用的UML語言機制包括:,描述用戶需求的用例及用例圖,、,表示領(lǐng)域概念模型的類圖,、,表示業(yè)務(wù)流程處理的活動圖,、,表示系統(tǒng)高層結(jié)構(gòu)的包圖,和,表示用例內(nèi)部實現(xiàn)過程的交互圖,等。,細化階段的結(jié)束條件是,所有主要的用戶需求已通過用例和用例圖得以描述;所有重要的風險已被標識,并對風險應(yīng)對措施了如指掌;能夠比較精確地估算實現(xiàn)每一用例的時間。,6.2.2 基于UM
12、L 的軟件開發(fā)過程,(3)部分的詳細設(shè)計。對于系統(tǒng)中某些重要的或者風險比較高的用,3、構(gòu)造:在構(gòu)造階段,開發(fā)人員通過一系列的迭代完成對所有用例的軟件實現(xiàn)工作,在每次迭代中實現(xiàn)一部分用例。以迭代方式實現(xiàn)所有用例的好處在于,用戶可以及早參與對已實現(xiàn)用例的實際評價,并提出改進意見。這樣可有效降低大型軟件系統(tǒng)的開發(fā)風險。,在實際開始構(gòu)造軟件系統(tǒng)之前,有必要預先制定迭代計劃。計劃的制定應(yīng)遵循如下兩項原則:,(1)用戶認為業(yè)務(wù)價值較大的用例應(yīng)優(yōu)先安排;,(2)開發(fā)人員評估后認為開發(fā)風險較高的用例應(yīng)優(yōu)先安排。,6.2.2 基于UML 的軟件開發(fā)過程,3、構(gòu)造:在構(gòu)造階段,開發(fā)人員通過一系列的迭代完成對所有用
13、例,在迭代計劃中,要確定迭代次數(shù)、每次迭代所需時間及每次迭代中應(yīng)完成(或部分完成)的用例。,每次迭代過程由針對用例的分析、設(shè)計、編碼、測試和集成5個子階段構(gòu)成。在集成之后,用戶可以對用例的實現(xiàn)效果進行評價,并提出修改意見。這些修改意見可以在本次迭代過程中立即實現(xiàn),也可以在下次迭代中再予以考慮。,構(gòu)造過程中,需要使用UML的交互圖來設(shè)計用例的實現(xiàn)方法。為了與設(shè)計得出的交互圖協(xié)調(diào)一致,需要修改或精化在細化階段繪制的作為領(lǐng)域模型的類圖,增加一些為軟件實現(xiàn)所必需的類、類的屬性或方法。,6.2.2 基于UML 的軟件開發(fā)過程,在迭代計劃中,要確定迭代次數(shù)、每次迭代所需時間及每次迭代中應(yīng),如果一個類有復雜
14、的生命周期行為,或者類的對象在生命周期內(nèi)需要對各種外部事件的刺激作出反應(yīng),應(yīng)考慮用UML的狀態(tài)圖來表述類的對象的行為。,UML的活動圖可以在構(gòu)造階段用來表示復雜的算法過程和有多個對象參與的業(yè)務(wù)外理過程?;顒訄D尤其適用于表示過程中的并發(fā)和同步。,在構(gòu)造階段的每次迭代過程中,可以對細化階段繪出的包圖進行修改或精化,以便包圖切實反映目標軟件系統(tǒng)最頂層的結(jié)構(gòu)劃分狀況。,4、移交,在移交階段,開發(fā)人員將構(gòu)造階段獲得的軟件系統(tǒng)在用戶實際工作環(huán)境(或接近實際的模擬環(huán)境)中試運行,根據(jù)用戶的修改意見進行少量修改。,6.2.2 基于UML 的軟件開發(fā)過程,如果一個類有復雜的生命周期行為,或者類的對象在生命周期內(nèi)
15、需要,6.3 基于UML的需求分析,基于UML的需求分析步驟:,(1)利用用例及用例圖表示需求。,(2)利用包圖及類圖表示目標軟件系統(tǒng)的總體框架結(jié)構(gòu)。,6.3.1 開發(fā)場景,場景:,是指從單個執(zhí)行者的角度觀察目標軟件系統(tǒng)的功能和行為。這種功能通過系統(tǒng)與用戶之間的交互來表征。因此也可以說,場景是用戶與系統(tǒng)之間進行交互的一組具體的動作。場景是用例的實例,而用例是某類場景的共同抽象。,場景描述:,場景名稱、執(zhí)行者實例、前置條件、事件流和后置條件。,6.3 基于UML的需求分析基于UML的需求分析步驟:,6.3.2 生成用例,執(zhí)行者:,是指外部用戶或外部實體在系統(tǒng)中扮演的角色。,用例:從外部用戶的視角
16、看,一個用例是執(zhí)行者與目標軟件系統(tǒng)之間的一次典型的交互作用。從軟件系統(tǒng)內(nèi)部的視角出發(fā),一個用例代表系統(tǒng)執(zhí)行的一系列動作,動作執(zhí)行的結(jié)果能夠被外部的執(zhí)行者所觀察。,用例描述:,用例名稱、參與執(zhí)行者、前置條件、一個主事件流、零到多個輔助事件流和后置條件。,6.3.2 生成用例執(zhí)行者:是指外部用戶或外部實體在系統(tǒng)中扮,6.3.3 用活動圖表示用例,活動圖,主要用于系統(tǒng)分析,它描述系統(tǒng)的行為,顯示系統(tǒng)中動作之間的轉(zhuǎn)移?;顒訄D一般從,開始節(jié)點,開始,經(jīng)過若干動作后,最后到達,結(jié)束節(jié)點,。,活動圖是簡化的狀態(tài)圖,它重點說明了活動間所經(jīng)過的操作和過程?;顒訄D(Activity)只有一個動作(Action),活動的轉(zhuǎn)移有一個相應(yīng)的觸發(fā)事件?;顒訄D可用來描述用例、包和類的行為,它把活動描述成正在執(zhí)行的操作,,活動代表了一個完整的動作,,即它代表一個類或用例內(nèi)部的行為?;顒訄D不區(qū)分狀態(tài)、活動和事件,它是一個從活動到活動的簡單描述,其中,,同步線用粗橫線表示,,用于表示活動之間的同步。,6.3.3 用活動圖表示用例活動圖主要用于系統(tǒng)分析,它描述系,同步線,6.3.3 用活動圖表示用例,考生考試的活動圖,同步