軟件工程導論資料_第1頁
軟件工程導論資料_第2頁
軟件工程導論資料_第3頁
軟件工程導論資料_第4頁
軟件工程導論資料_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 軟件工程是:將系統(tǒng)化的、嚴格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運行和維護,即將工程化應(yīng)用于軟件;在中所述方法的研究軟件工程過程包括:開發(fā)過程、運作過程、維護過程、管理過程、支持過程、獲取過程、供應(yīng)過程、剪裁過程等CMM(Capability Maturity Model)即能力成熟度模型,是美國卡內(nèi)基梅隆大學軟件工程研究所(SEI)在美國國防部資助下于二十世紀八十年代末建立的,用于評價軟件機構(gòu)的軟件過程能力成熟度的模型。 典型的軟件過程模型有: 瀑布模型(waterfall model) 演化模型(evolutionary model) 增量模型(incremental model) 原

2、型模型(prototyping model) 螺旋模型(spiral model) 噴泉模型(water fountain model) 基于構(gòu)件的開發(fā)模型(component-based development model) 形式方法模型(formal methods model) 是瀑布模型和演化模型的結(jié)合,并增加了風險分析 螺旋模型沿著螺線旋轉(zhuǎn),在四個象限上分別表達四個方面的活動,即: 制定計劃:確定軟件目標,選定實施方案,弄清項目開發(fā)的限制條件 風險分析:評價所選的方案,識別風險,消除風險 工程實施:實施軟件開發(fā),驗證工作產(chǎn)品 客戶評估:評價開發(fā)工作,提出修正建議 噴泉模型是一種支持面

3、向?qū)ο箝_發(fā)的模型 體現(xiàn)迭代和無間隙特征 迭代:各開發(fā)活動常常重復工作多次,相關(guān)的功能在每次迭代中隨之加入演進的系統(tǒng) 無間隙:開發(fā)活動之間不存在明顯的邊界 所謂基于計算機的系統(tǒng)是指:通過處理信息來完成某些預定義目標而組織在一起的元素的集合 組成基于計算機系統(tǒng)的元素主要有:軟件、硬件、人員、數(shù)據(jù)庫、文檔和規(guī)程 本書將軟件需求工程細分為:需求獲取、需求分析與協(xié)商、系統(tǒng)建模、需求規(guī)約、需求驗證和需求管理六個階段。 常用的分析方法: 面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法 (SA) 面向數(shù)據(jù)結(jié)構(gòu)的分析方法 面向?qū)ο蟮姆治龇椒?(OOA) 需求管理是一組用于幫助項目組在項目進展中的任何時候去標識、控制和跟蹤需求的活動

4、 需求跟蹤有兩種方式,正向跟蹤與逆向跟蹤 正向跟蹤:以用戶需求為切入點,檢查需求規(guī)約中的每個需求是否都能在后繼工作產(chǎn)品中找到對應(yīng)點 逆向跟蹤:檢查設(shè)計文檔、代碼、測試用況等工作產(chǎn)品是否都能在需求規(guī)約中找到出處 軟件設(shè)計是把軟件需求變換成軟件表示的過程,它主要包含兩個階段:軟件體系結(jié)構(gòu)設(shè)計階段和部件級設(shè)計 使用一種設(shè)計方法,軟件分析模型中通過數(shù)據(jù)、功能和行為模型所展示的軟件需求的信息被傳送給設(shè)計階段,產(chǎn)生數(shù)據(jù)/類設(shè)計、體系結(jié)構(gòu)設(shè)計、接口設(shè)計、部件級設(shè)計 軟件設(shè)計的原則:抽象化與逐步求精; 軟件設(shè)計中主要抽象手段有:過程抽象和數(shù)據(jù)抽象 模塊化;信息隱藏;功能獨立; 功能獨立性可以由兩項指標來衡量:

5、內(nèi)聚度與耦合度 軟件體系結(jié)構(gòu)關(guān)注系統(tǒng)的一個或多個結(jié)構(gòu),包含軟件構(gòu)件、這些構(gòu)件的對外可見的性質(zhì)以及它們之間的關(guān)系 常見的軟件體系結(jié)構(gòu) 單主機結(jié)構(gòu) C/S(Client/Server)結(jié)構(gòu) B/S(Browser/Server)結(jié)構(gòu) 常用體系結(jié)構(gòu)風格:數(shù)據(jù)為中心的體系結(jié)構(gòu)數(shù)據(jù)流風格的體系結(jié)構(gòu)調(diào)用和返回風格的體系結(jié)構(gòu) 面向?qū)ο箫L格的體系結(jié)構(gòu)層次式風格的體系結(jié)構(gòu)在這里要了解幾個概念: 程序結(jié)構(gòu)的深度:程序結(jié)構(gòu)的層次數(shù)稱為結(jié)構(gòu)的深度。結(jié)構(gòu)的深度在一定意義上反映了程序結(jié)構(gòu)的規(guī)模和復雜程度。 程序結(jié)構(gòu)的寬度:層次結(jié)構(gòu)中同一層模塊的最大模塊個數(shù)稱為結(jié)構(gòu)的寬度。 模塊的扇入和扇出:扇出表示一個模塊直接調(diào)用(或控

6、制)的其它模塊數(shù)目。扇入則定義為調(diào)用(或控制)一個給定模塊的模塊個數(shù)。多扇出意味著需要控制和協(xié)調(diào)許多下屬模塊。而多扇入的模塊通常是公用模塊。部件級設(shè)計階段,主要完成如下工作:(1) 為每個部件確定采用的算法,選擇某種適當?shù)墓ぞ弑磉_算法的過程,編寫部件的詳細過程性描述; (2) 確定每一部件內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu); (3) 在部件級設(shè)計結(jié)束時,應(yīng)該把上述結(jié)果寫入部件級設(shè)計說明書,并且通過復審形成正式文檔,作為下一階段(編碼階段)的工作依據(jù)。 圖形表示法: 程序流程圖 N-S圖 PAD 設(shè)計評審: 軟件設(shè)計的最終目標是要取得最佳方案 “最佳”是指在所有候選方案中,就節(jié)省開發(fā)費用,降低資源消耗,縮短開發(fā)

7、時間的條件,選擇能夠贏得較高的生產(chǎn)率、較高的可靠性和可維護性的方案 設(shè)計評審的內(nèi)容:1. 可追溯性:即分析該軟件的系統(tǒng)結(jié)構(gòu)、子系統(tǒng)結(jié)構(gòu),確認該軟件設(shè)計是否覆蓋了所有已確定的軟件需求,軟件每一成分是否可追溯到某一項需求。 2接口:即分析軟件各部分之間的聯(lián)系,確認該軟件的內(nèi)部接口與外部接口是否已經(jīng)明確定義。部件是否滿足高內(nèi)聚和低耦合的要求。部件作用范圍是否在其控制范圍之內(nèi)。3風險:即確認該軟件設(shè)計在現(xiàn)有技術(shù)條件下和預算范圍內(nèi)是否能按時實現(xiàn)。4實用性:即確認該軟件設(shè)計對于需求的解決方案是否實用。5技術(shù)清晰度:即確認該軟件設(shè)計是否以一種易于翻譯成代碼的形式表達。6可維護性:從軟件維護的角度出發(fā),確認該

8、軟件設(shè)計是否考慮了方便未來的維護。7質(zhì)量:即確認該軟件設(shè)計是否表現(xiàn)出良好的質(zhì)量特征。8各種選擇方案:看是否考慮過其它方案,比較各種選擇方案的標準是什么。9限制:評估對該軟件的限制是否現(xiàn)實,是否與需求一致。10其它具體問題:對于文檔、可測試性、設(shè)計過程等等進行評估。 評審分正式評審和非正式評審兩種 正式評審除軟件開發(fā)人員外,還邀請用戶代表和領(lǐng)域?qū)<覅⒓?,通常采用答辯形式 非正式評審多少有些同行切磋的性質(zhì),不拘泥于時間和形式 結(jié)構(gòu)化分析的模型實體-關(guān)系圖數(shù)據(jù)流圖狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典 數(shù)據(jù)字典是模型的核心,它包含了軟件使用和產(chǎn)生的所有數(shù)據(jù)的描述 數(shù)據(jù)流圖:用于功能建模,描述系統(tǒng)的輸入數(shù)據(jù)流如何經(jīng)過一系

9、列的加工變換逐步變換成系統(tǒng)的輸出數(shù)據(jù)流,數(shù)據(jù)流圖中的數(shù)據(jù)流、文件、數(shù)據(jù)項、加工在數(shù)據(jù)字典中描述,反映加工邏輯的加工規(guī)約用“小說明”描述 實體關(guān)系圖:用于數(shù)據(jù)建模,描述數(shù)據(jù)字典中數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)對象的屬性用“數(shù)據(jù)對象描述”描述 狀態(tài)轉(zhuǎn)換圖:用于行為建模,描述系統(tǒng)接收哪些外部事件,以及在外部事件的作用下系統(tǒng)的狀態(tài)遷移,控制規(guī)約用來描述軟件控制方面的附加信息分層數(shù)據(jù)流圖示例資格和水平考試的考務(wù)處理系統(tǒng) 簡化的資格和水平考試的考務(wù)處理系統(tǒng) 分成多個級別,如初級程序員、程序員、高級程序員、系統(tǒng)分析員等,凡滿足一定條件的考生都可參加某一級別的考試 考試的合格標準將根據(jù)每年的考試成績由考試中心確定 考試

10、的閱卷由閱卷站進行,因此,閱卷工作不包含在軟件系統(tǒng)中資格和水平考試的考務(wù)處理系統(tǒng)功能需求1對考生送來的報名單進行檢查2對合格的報名單編好準考證號后將準考證送給考生,并將匯總后的考生名單送給閱卷站3對閱卷站送來的成績清單進行檢查,并根據(jù)考試中心制訂的合格標準審定合格者4制作考生通知單送給考生5進行成績分類統(tǒng)計(按地區(qū)、年齡、文化程度、職業(yè)、考試級別等分類)和試題難度分析,產(chǎn)生統(tǒng)計分析表資格和水平考試的考務(wù)處理系統(tǒng)部分數(shù)據(jù)流的組成 報名單地區(qū)序號姓名文化程度職業(yè)考試級別通信地址 正式報名單準考證號報名單 準考證地區(qū)序號姓名準考證號考試級別考場 考生名單準考證號考試級別 考生名冊正式報名單 統(tǒng)計分析

11、表分類統(tǒng)計表難度分析表 考生通知單準考證號姓名通信地址考試級別考試成績合格標志考務(wù)處理系統(tǒng)頂層圖考務(wù)處理系統(tǒng)考試中心考生不合格報名單閱卷站錯誤成績清單成績清單考生名單合格標準報名單準考證考生通知單統(tǒng)計分析表考生名冊1考試報名報名單考生名單不合格報名單準考證2統(tǒng)計成績統(tǒng)計分析表合格標準考生通知單錯誤成績清單成績清單分層數(shù)據(jù)流圖的審查: 檢查圖中是否存在錯誤或不合理(不理想)的部分 一致性:分層DFD中不存在矛盾和沖突 完整性:分層DFD本身的完整性,即是否有遺漏的數(shù)據(jù)流、加工等元素分層數(shù)據(jù)流圖的一致性 父圖與子圖平衡 任何一張DFD子圖邊界上的輸入/輸出數(shù)據(jù)流必須與其父圖中對應(yīng)的加工的輸入/輸出

12、數(shù)據(jù)流保持一致 數(shù)據(jù)守恒 一個加工所有輸出數(shù)據(jù)流中的數(shù)據(jù),必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者能通過該加工的處理而產(chǎn)生 多余的數(shù)據(jù)流:加工未使用其輸入數(shù)據(jù)流中的某些數(shù)據(jù)項 (不一定是錯誤,但可能隱含潛在的錯誤) 局部文件 一個加工的輸出數(shù)據(jù)流不能與該加工的輸入數(shù)據(jù)流同名分層數(shù)據(jù)流圖的完整性 每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流 在整套分層數(shù)據(jù)流圖中,每個文件應(yīng)至少有一個加工讀該文件,有另一個加工寫該文件 分層數(shù)據(jù)流圖中的每個數(shù)據(jù)流和文件都必須命名(除了流入或流出文件的數(shù)據(jù)流),并保持與數(shù)據(jù)字典的一致 分層DFD中的每個基本加工(即不再分解子圖的加工)都應(yīng)有一個加工規(guī)約結(jié)構(gòu)化設(shè)計

13、結(jié)構(gòu)化設(shè)計(Structured Design,簡稱SD)是一種將結(jié)構(gòu)化分析得到的數(shù)據(jù)流圖映射成軟件體系結(jié)構(gòu)的設(shè)計方法 強調(diào)模塊化、自頂向下逐步求精、信息隱蔽、高內(nèi)聚低耦合等設(shè)計準則 分為概要設(shè)計和詳細設(shè)計兩大步驟 概要設(shè)計是對軟件系統(tǒng)的總體設(shè)計,采用結(jié)構(gòu)化設(shè)計方法,其任務(wù)是:將系統(tǒng)分解成模塊,確定每個模塊的功能、接口(模塊間傳遞的數(shù)據(jù))及其調(diào)用關(guān)系,并用模塊及其對模塊的調(diào)用來構(gòu)建軟件的體系結(jié)構(gòu) 詳細設(shè)計是對模塊實現(xiàn)細節(jié)的設(shè)計,采用結(jié)構(gòu)化程序設(shè)計(Structured Programming,簡稱SP)方法 SA、SD和SP構(gòu)成完整的結(jié)構(gòu)化方法體系啟發(fā)式設(shè)計策略按照模塊化設(shè)計原則,相應(yīng)的啟發(fā)式

14、設(shè)計策略如下: 改造程序結(jié)構(gòu)圖,降低耦合度,提高內(nèi)聚度 避免高扇出,并隨著深度的增加,力求高扇入 避免如圖a那樣的“平鋪”形態(tài),較好的結(jié)構(gòu)圖形態(tài)是如圖b那樣的“橢圓”型 模塊的影響范圍應(yīng)限制在該模塊的控制范圍內(nèi), 降低模塊接口的復雜程度和冗余程度,提高一致性 模塊接口上應(yīng)盡可能傳遞簡單數(shù)據(jù),而且傳遞的數(shù)據(jù)應(yīng)保持與模塊的功能相一致,即不傳遞與模塊功能無關(guān)的數(shù)據(jù) 模塊的功能應(yīng)是可預測的,避免對模塊施加過多的限制 模塊功能可預測是指該模塊對相同的輸入能產(chǎn)生相同的輸出 限制一個模塊只處理單一的功能,那么,這個模塊體現(xiàn)出高內(nèi)聚 盡可能設(shè)計單入口和單出口的模塊 單入口和單出口的模塊能有效地避免內(nèi)容耦合 結(jié)

15、構(gòu)化設(shè)計是將結(jié)構(gòu)化分析的結(jié)果(數(shù)據(jù)流圖)映射成軟件的體系結(jié)構(gòu)(結(jié)構(gòu)圖) 根據(jù)信息流的特點,可將數(shù)據(jù)流圖分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖,其對應(yīng)的映射分別稱為變換分析和事務(wù)分析 信息流可分為兩類: 變換流(transform) 事務(wù)流(transaction)結(jié)構(gòu)圖改進技巧 1減少模塊間的耦合度可以通過將功能簡單的模塊合并到與其關(guān)系密切的模塊中,或調(diào)整模塊的位置,來減少模塊間的參數(shù)傳遞,或避免參數(shù)長距離傳輸,以降低耦合度。2消除重復功能如果二個模塊中存在某一相同的功能,應(yīng)將這個功能從二個模塊中分離出來,作為一個獨立的模塊被二者調(diào)用。3消除“管道”模塊“管道”模塊通常是應(yīng)該刪除的,除非刪除后上層

16、模塊的扇出太大。4模塊的大小適中如果一個模塊太大,要考慮將它分成二個模塊;如果一個模塊太小,可考慮將它合并在與它功能密切相關(guān)的模塊中。通常一個模塊的大小,以其實現(xiàn)代碼可書寫在12頁紙(約50100行)為宜。面向?qū)ο蟮幕靖拍顚ο螅╫bject) 對象是指一組屬性以及這組屬性上的專用操作的封裝體 屬性(attribute)通常是一些數(shù)據(jù),有時它也可以是另一個對象。每個對象都有它自己的屬性值,表示該對象的狀態(tài)。對象中的屬性只能通過該對象所提供的操作來存取或修改 操作(operation)(也稱方法或服務(wù))規(guī)定了對象的行為,表示對象所能提供的服務(wù)封裝(encapsulation)是一種信息隱蔽技術(shù),

17、用戶只能看見對象封裝界面上的信息,對象的內(nèi)部實現(xiàn)對用戶是隱蔽的。封裝的目的是使對象的使用者和生產(chǎn)者分離,使對象的定義和實現(xiàn)分開 一個對象通??捎蓪ο竺傩院筒僮魅糠纸M成繼承(inheritance) 繼承是類間的基本關(guān)系,它是基于層次關(guān)系的不同類共享數(shù)據(jù)和操作的一種機制。父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承其父類(或祖先類)的屬性和操作,還可以對父類(或祖先類)中的操作重新定義其實現(xiàn)方法多態(tài)性(polymorphism) 多態(tài)性是指同一個操作作用于不同的對象上可以有不同的解釋,并產(chǎn)生不同的執(zhí)行結(jié)果。例如“畫”操作,作用在“矩形”對象上,則

18、在屏幕上畫一個矩形,作用在“圓”對象上,則在屏幕上畫一個圓。也就是說,相同操作的消息發(fā)送給不同的對象時,每個對象將根據(jù)自己所屬類中定義的這個操作去執(zhí)行,從而產(chǎn)生不同的結(jié)果動態(tài)綁定(dynamic binding) 動態(tài)綁定是指在程序運行時才將消息所請求的操作與實現(xiàn)該操作的方法連接起來 傳統(tǒng)的程序設(shè)計語言的過程調(diào)用與目標代碼的連接(即調(diào)用哪個過程)放在程序運行前(即編譯時)進行(稱為靜態(tài)綁定),而動態(tài)綁定則是把這種連接推遲到運行時才進行 動態(tài)綁定是一種在運行時確定被執(zhí)行代碼的技術(shù)  設(shè)計模式(design patterns) 在許多面向?qū)ο笙到y(tǒng)中,存在一些類和對象的重復出現(xiàn)的模式。這些

19、模式求解特定的設(shè)計問題,使面向?qū)ο笤O(shè)計更靈活,并最終可復用。這些模式幫助設(shè)計者復用以前成功的設(shè)計,設(shè)計者可以把這些模式應(yīng)用到新的設(shè)計中一個設(shè)計模式通??捎?個基本要素來描述:1)模式名稱 用于描述模式的助憶符。設(shè)計模式名應(yīng)具有實際的含義,能反映模式的適用性和意圖2)問題 描述何時使用模式,解釋設(shè)計問題以及應(yīng)用模式所必須的環(huán)境和條件3)解決方案 描述構(gòu)成設(shè)計方案的各元素、它們之間的關(guān)系、各自的職責和協(xié)作方式4)效果(consequences) 描述模式應(yīng)用的效果以及使用模式時的折中問題主題域視圖 (view)圖(diagram)結(jié)構(gòu)化靜態(tài)視圖類圖(class)設(shè)計視圖內(nèi)部結(jié)構(gòu)(internal

20、structure)協(xié)作圖(collaboration)構(gòu)件圖(component)用況視圖用況圖(use case)動態(tài)的狀態(tài)機視圖狀態(tài)機圖(state machine)活動視圖活動圖(activity)交互視圖順序圖(sequence)通信圖(communication)物理的部署視圖部署圖(deployment)模型管理模型管理視圖包圖(package)剖面包圖(package)UML判斷題1、UML中一共有九種圖:它們是用例圖、類圖、對象圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖、構(gòu)件圖、部署圖2、用例圖是從程序員角度來描述系統(tǒng)的功能3、類圖是描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),對象圖是描述系統(tǒng)中類的動態(tài)

21、結(jié)構(gòu)4、活動圖和狀態(tài)圖用來描述系統(tǒng)的動態(tài)行為5、協(xié)作圖的一個用途是表示一個類操作的實現(xiàn) 選擇題6、請在下面選項目中選出兩種可以互相轉(zhuǎn)換的圖 (a) 順序圖 (b)協(xié)作圖 (c) 活動圖 (d) 狀態(tài)圖7、下面哪些圖可用于BD階段 (a)用例圖 (b)構(gòu)件圖 (c)類圖 (d)順序圖 答案:1.正確 2.錯誤 3.錯誤 4.正確 5.正確 6. (a)(b) 7.(a)(c)(d)² 用例圖是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖。 (UML參考手冊)² 用例圖列出系統(tǒng)中的用例和系統(tǒng)外的參與者,并顯示哪個參與者參與了哪個用例的執(zhí)行 (或稱為發(fā)起了哪個用例)。

22、78; 用例圖多用于靜態(tài)建模階段(主要是業(yè)務(wù)建模和需求建模)。事物名稱解釋UML表示參與者(Actor)在系統(tǒng)外部與系統(tǒng)直接交互的人或事物(如另一個計算機系統(tǒng)或一些可運行的進程)。我們需要注意的是:1.參與者是角色(role)而不是具體的人,它代表了參與者在與系統(tǒng)打交道的過程中所扮演的角色。所以在系統(tǒng)的實際運作中,一個實際用戶可能對應(yīng)系統(tǒng)的多個參與者。不同的用戶也可以只對應(yīng)于一個參與者,從而代表同一參與者的不同實例。2.參與者作為外部用戶(而不是內(nèi)部)與系統(tǒng)發(fā)生交互作用,是它的主要特征。3.在后面的順序圖等中出現(xiàn)的“參與者”,與此概念相同,但具體指代的含義,視具體情況而定。 用例(U

23、se Case)系統(tǒng)外部可見的一個系統(tǒng)功能單元。系統(tǒng)的功能由系統(tǒng)單元所提供,并通過一系列系統(tǒng)單元與一個或多個參與者之間交換的消息所表達 。創(chuàng)建新用例,確認候選用例和劃分用例范圍的優(yōu)秀法則-“WAVE”測試(見附錄)  關(guān)系解釋圖參與者與用例之間的關(guān)系關(guān)聯(lián)表示參與者與用例之間的交互,通信途徑。(關(guān)聯(lián)有時候也用帶箭頭的實線來表示,這樣的表示能夠顯示地表明發(fā)起用例的是參與者。)用例之間的關(guān)系包含箭頭指向的用例為被包含的用例,稱為包含用例;箭頭出發(fā)的用例為基用例。包含用例是必選的,如果缺少包含用例,基用例就不完整;包含用例必須被執(zhí)行,不需要滿足某種條件;其執(zhí)行并不會改變基用例的行為。incl

24、ude擴展箭頭指向的用例為被擴展的用例,稱為擴展用例;箭頭出發(fā)的用例為基用例。擴展用例是可選的,如果缺少擴展用例,不會影響到基用例的完整性;擴展用例在一定條件下才會執(zhí)行,并且其執(zhí)行會改變基用例的行為。extend參與者之間的關(guān)系泛化發(fā)出箭頭的事物“is a”箭頭指向的事物。泛化關(guān)系是一般和特殊關(guān)系,發(fā)出箭頭的一方代表特殊的一方,箭頭指向的一方代表一般一方。特殊一方繼承了一般方的特性并增加了新的特性。實例3. 航空售票的用例圖² 參與者(actor):clerk,監(jiān)督員,信用卡服務(wù)商,信息亭² 用例(use case): Buy tickets, Buy Subscripti

25、on, Make charges, Survey sales² 參與者Clerk參與(或稱發(fā)起)Buy tickets和Buy Subscription 兩個用例(關(guān)聯(lián)關(guān)系)。這兩個用例的事件流都包含Make charges用例(包含關(guān)系)。² 系統(tǒng)由:Buy tickets, Buy Subscription, Make charges, Survey sales組成。² 該系統(tǒng)主要包含:Buy tickets, Buy Subscription, Make charges, Survey sales這幾個功能。² 該系統(tǒng)主要面向的用戶(參與者):cl

26、erk,監(jiān)督員,信用卡服務(wù)商,信息亭。1. 右圖中的參與者有? (a) 1 (b) 2 (c) 3(d) 42. 右圖中的用例有?(a) 1(b) 2(c) 3(d) 43. 2和3之間是什么關(guān)系?5和6呢?(a) 擴展,包含(b) 包含,擴展4. 5缺少了3仍然是個完整的用例?(a) 是的(b) 不是5. 4能夠參與2嗎?1能夠參與5嗎?(a) 可以,不可以 (b) 不可以,可以 右圖描述了菜單(Menu)、菜單項(MenuItem)、抽象命令類(Command)和具體命令類(OpenCommand, PasteCommand)之間的關(guān)系,完成1-4題(1)哪兩個類之間存在組合關(guān)系 Menu

27、、MenuItem MenuItem、Command Command、OpenCommand Command、PasteCommand(2)OpenCommand和PasteCommand是什么關(guān)系 組合 泛化 聚合 沒關(guān)系(3)編輯菜單(EditMenu)是一種菜單,下面哪個圖較好的描述了二者之間的關(guān)系 Menu+ Add(item : MenuItem)EditMenu下面哪份代碼(C+)最接近于圖中對MenuItem的描述class MenuItemprivate: virtual void Click() =0;public: Command* command; class MenuI

28、tempublic: virtual void Click() = 0;private: Command* command; class MenuItemprivate: virtual void Click() = 0; void undo();public: Command* command;class menuitempublic: virtual void Click() = 0;private: Command* command; 右圖描述了圖形接口(Graphics)、線段(Segment)、矩形(Rectangle)、點(Point)和三維點(Point3D)之間的關(guān)系, 完成5

29、-7題(5)下面哪個關(guān)系沒有在圖中出現(xiàn) 關(guān)聯(lián) 泛化 實現(xiàn) 依賴(6)下面對圖中四處的多重性的描述哪個不正確 0.* 1 0.* 1(7)下面哪份代碼(Java)最接近于圖中對Segment的描述public class Segment implements Graphicsprivatc void Draw();public Point ptStart;public Point ptEnd;public class Segment extends Graphicspublic void Draw();private Point ptStart;private Point ptEnd;publi

30、c class Segment implements Graphicsprivate Point ptStart;private Point ptEnd;public void Draw();public class segment implements graphicspublic void Draw();private Point ptStart;private Point ptEnd;² 順序圖用來表示用例中的行為順序。當執(zhí)行一個用例行為時,順序圖中的每條消息對應(yīng)了一個類操作或狀態(tài)機中引起轉(zhuǎn)換的事件。² 順序圖展示對象之間的交互,這些交互是指在場景或用例的事件流中發(fā)生

31、的。 順序圖屬于動態(tài)建模。 ² 順序圖的重點在消息序列上,也就是說,描述消息是如何在對象間發(fā)送和接收的。表示了對象之間傳送消息的時間順序。² 瀏覽順序圖的方法是:從上到下查看對象間交換的消息。事物名稱解釋圖參與者與系統(tǒng)、子系統(tǒng)或類發(fā)生交互作用的外部用戶(參見用例圖定義)。對象順序圖的橫軸上是與序列有關(guān)的對象。對象的表示方法是:矩形框中寫有對象或類名,且名字下面有下劃線。生命線坐標軸縱向的虛線表示對象在序列中的執(zhí)行情況(即發(fā)送和接收的消息,對象的活動)這條虛線稱為對象的“生命線”。消息符號消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。

32、狀態(tài)圖(2)網(wǎng)上銀行登陸系統(tǒng)登陸要求提交個人社會保險號(SSN)和密碼(PIN)經(jīng)驗證有效后登陸成功。登陸過程包括以下狀態(tài): 初態(tài)(Initial state) 獲取社會保險號狀態(tài)(Getting SSN) 獲取密碼狀態(tài)(Getting PIN) 驗證狀態(tài)(Validating) 拒絕狀態(tài)(Rejecting) 終態(tài) (Final state)出發(fā)狀態(tài)動作到達狀態(tài)Initial state移動鼠標到 SSNGetting SSNGetting SSN鍵入非tab鍵,顯示鍵入內(nèi)容Getting SSN鍵入tab鍵,或移動鼠標到BINGetting PIN提交ValidatingGetting P

33、IN鍵入非shift-tab鍵,顯示 “ * ”Getting PIN鍵入shift-tab鍵,或移動鼠標到SSNGetting SSN提交Validating Validating驗證提交信息有效,狀態(tài)轉(zhuǎn)移Final state驗證提交信息無效,顯示錯誤信息Rejecting Rejecting退出Final state重試,清除無效的SSN,PINGetting SSN分析下面的狀態(tài)圖,回答問題下降狀態(tài)在第一層上升狀態(tài)向第一層下降空閑狀態(tài)上升到達到達上升超時下降到達第一層(1) 以下那些圖形元素是對狀態(tài)的描述?(a) 超時 (b) 到達 (c) 在第一層(2) 空閑狀態(tài) 超時后轉(zhuǎn)移到_狀態(tài)(a) 向第一層下降(b) 上升狀態(tài) (c) 終態(tài)習題答案(1)(c)(2)(a)活動圖概要 描述系統(tǒng)的動態(tài)行為。 包含活動狀態(tài)(ActionState),活動狀態(tài)是指業(yè)務(wù)用例的一個執(zhí)行步驟或一個操作,不是普通對象的狀態(tài)。 活動圖適合描述在沒有外部事件觸發(fā)的情況下的系統(tǒng)

溫馨提示

  • 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

提交評論