《軟件工程》 課件 第5章 面向?qū)ο蠓治鯻第1頁
《軟件工程》 課件 第5章 面向?qū)ο蠓治鯻第2頁
《軟件工程》 課件 第5章 面向?qū)ο蠓治鯻第3頁
《軟件工程》 課件 第5章 面向?qū)ο蠓治鯻第4頁
《軟件工程》 課件 第5章 面向?qū)ο蠓治鯻第5頁
已閱讀5頁,還剩106頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程第五章面向?qū)ο蠓治龊茈y直接基于需求文檔進行下一步的系統(tǒng)設(shè)計工作,需要在需求和系統(tǒng)設(shè)計之間搭建起一架橋梁,把用領(lǐng)域術(shù)語和語言描述的業(yè)務(wù)需求,用軟件的術(shù)語和語言來描述需求,這就是規(guī)格說明文檔(Specification)。分析工作使目標軟件系統(tǒng)的功能性需求獲得更深刻的理解和分析,使設(shè)計和實現(xiàn)能夠更容易、更高質(zhì)量地開展。5.1分析方法5.1分析方法結(jié)構(gòu)化分折方法面向?qū)ο蠓治龇椒嫦蚩刂品治龇椒嫦驍?shù)據(jù)分析方法5.1分析方法結(jié)構(gòu)化分折方法(StructuredAnalysis,SA)是一種單純的由頂向下逐步求精的功能分解方法。分析員用數(shù)據(jù)流圖表示系統(tǒng)的所有輸入/輸出,反復(fù)地對系統(tǒng)求精、表示成一更詳細的數(shù)據(jù)流圖,從而建立關(guān)于系統(tǒng)的一個數(shù)據(jù)流圖層次。具有較好的抽象能力,易于軟件人員所掌握。但它離應(yīng)用領(lǐng)域尚有一定的距離,難以直接應(yīng)用領(lǐng)域術(shù)語,與軟件設(shè)計也有一段不小的距離,因而給開發(fā)小組的思想交流帶來了一定的困難。5.1分析方法面向?qū)ο蠓治龇椒ǎ∣bject-OrientedAnalysis,OOA)把分析建立在系統(tǒng)對象以及對象間交互的基礎(chǔ)之上。從三個側(cè)面進行描述,即對象模型(對象的靜態(tài)結(jié)構(gòu))、動態(tài)模型(對象之間的相互作用)和功能模型(數(shù)據(jù)變換及功能依存關(guān)系)。5.2面向?qū)ο蠓治龈乓?.2面向?qū)ο蠓治龈乓嫦驅(qū)ο蠓治鍪菍δ繕塑浖到y(tǒng)功能性需求的深入的、精確的建模,但并不回答如何實現(xiàn)目標軟件系統(tǒng),因此它只針對能夠體現(xiàn)和說明業(yè)務(wù)功能的實體類。5.2面向?qū)ο蠓治龈乓獙嶓w類的提取包括三個迭代和增量式執(zhí)行的步驟:用例建模

UseCaseModeling,即功能建模。得到反應(yīng)目標系統(tǒng)外部與該系統(tǒng)的交互情況的用例圖UseCaseDiagram。實體類建模EntityClassModeling。確定實體類、其屬性、以及它們之間的關(guān)系,得到初始類圖PreliminaryClassDiagram,也稱簡單類圖。動態(tài)建模DynamicModeling。確定每個實體類及其子類狀態(tài)的變化、以及造成狀態(tài)變化的事件、操作或條件滿足,得到狀態(tài)圖StateDiagram。歡迎學習《軟件工程》軟件工程第五章面向?qū)ο蠓治?.3用例建模5.3用例建模用例建模UseCaseModeling是對軟件系統(tǒng)的外部與軟件系統(tǒng)之間的交互進行建模,是面向?qū)ο蠓治雠c設(shè)計的起點。用例模型即用例圖UseCaseDiagram以用例的形式描述一個軟件系統(tǒng)的功能性需求,包括三個關(guān)鍵要素:參與者actor用例

usecase參與者與用例之間的關(guān)系relationship5.3.1參與者參與者(actor)——與目標軟件系統(tǒng)有交互、有關(guān)聯(lián)的系統(tǒng)外部。有助于挖掘并確定目標軟件系統(tǒng)的功能性需求,從而確定目標軟件系統(tǒng)的邊界、提供一個更加清晰的目標軟件系統(tǒng)的藍圖。參與者不是目標軟件系統(tǒng)的一部分,是用例模型的一部分。參與者必須有名字,名字就是角色集合名,如“學生”、“教師”等。參與者可以是主動方,也可以是被動方。5.3.1參與者參與者的表示符號參與者的名字應(yīng)該是一個領(lǐng)域相關(guān)的單數(shù)名詞,它能準確地反應(yīng)參與者與目標軟件系統(tǒng)進行交互時所扮演的角色。5.3.1參與者參與者的類型人機器設(shè)備外部系統(tǒng)5.3.2用例用例UseCase是指參與者在與應(yīng)用軟件系統(tǒng)進行交互時可能發(fā)生的一序列操作,為該參與者或其他參與者產(chǎn)生特定的結(jié)果。用例就是指軟件系統(tǒng)為某些參與者提供的某項功能,軟件系統(tǒng)為用例的發(fā)生和實現(xiàn)提供了可能。有些用例可能被某個參與者實例激活,并且可能在用例的完成過程中需要參與者的交互;有些用例有可能在系統(tǒng)內(nèi)滿足某些條件的情況下而被激活,并主動向某些參與者推送信息或發(fā)送指令。5.3.2用例用例必須有名字,用例名應(yīng)該是領(lǐng)域相關(guān)的強動詞或動詞詞組。如,登錄、存款、下訂單、借書等。

“下訂單PlaceOrder”“買東西BuyStuff”

5.3.2用例用例的表示符號5.3.2用例用例的識別與確定1、從參與者的角度參與者是挖掘與確定用例的第一要素。以窮舉的方式檢查用戶對系統(tǒng)的功能需求是否能在用例中有所體現(xiàn)。系統(tǒng)中的一個用例應(yīng)該至少面向一個參與者、或者與其他用例有關(guān)系。5.3.2用例用例的識別與確定2、情景分析一個用例應(yīng)該完成一個完整的任務(wù),通常應(yīng)該在一個相對短的時間段內(nèi)完成。如果一個用例的各部分在間隔一定時間的不同時間段內(nèi)發(fā)生,尤其還是由不同的參與者交互完成的,那么就應(yīng)該將該用例拆分為多個用例來對待。一個用例必須有一個基本流BasicFlow一個用例還可能有多個可選流AlternativeFlow用例的一次執(zhí)行即形成一個場景scenario。5.3.2用例用例的識別與確定3、從系統(tǒng)功能的角度用例是參與者所參與的一項功能,該項功能應(yīng)該相對完整、獨立。確定用例的原則包括:一個用例不能過大。一個用例也不能過小。5.3.3參與者與用例之間的關(guān)系5.3.3參與者與用例之間的關(guān)系5.3.3參與者與用例之間的關(guān)系5.3.3參與者與用例之間的關(guān)系歡迎學習《軟件工程》第五章面向?qū)ο蠓治?.3用例建模5.3.4用例說明用例圖無法體現(xiàn)、無法描述用例內(nèi)部的執(zhí)行流程、業(yè)務(wù)邏輯、數(shù)據(jù)等細節(jié)。每個用例都需要一個用例說明UseCaseSpecification5.3.4用例說明用例說明的內(nèi)容:事件流flowofevents基本事件流basicflow可選事件流alternativeflow后置條件post-condition關(guān)系relationships特殊要求specialrequirements用例名usecasename用例簡述briefdescription參與者actor前置條件pre-condition5.3.5參與者之間的關(guān)系5.3.5參與者之間的關(guān)系1、派生關(guān)系5.3.5參與者之間的關(guān)系5.3.5參與者之間的關(guān)系2、代理關(guān)系5.3.6用例之間的關(guān)系5.3.6用例之間的關(guān)系1、派生關(guān)系5.3.6用例之間的關(guān)系2、包含關(guān)系圖2圖15.3.6用例之間的關(guān)系對比5.3.6用例之間的關(guān)系3、擴展關(guān)系歡迎學習《軟件工程》第五章面向?qū)ο蠓治?.3用例建模5.3.7用例建模的作用用例模型的可讀性、可理解性非常強,幾乎所有參與該目標軟件系統(tǒng)的參與人員,包括開發(fā)人員和客戶,在幾乎所有的階段都需要用到用例模型。開發(fā)方系統(tǒng)架構(gòu)師設(shè)計師測試人員項目經(jīng)理文檔撰寫人員下一個版本的開發(fā)人員5.3.8用例建模案例案例1、高校圖書館管理信息系統(tǒng)5.3.8用例建模案例案例2、電梯控制系統(tǒng)5.3.8用例建模案例案例3、高校教學管理信息系統(tǒng)歡迎學習《軟件工程》第五章面向?qū)ο蠓治?.4類建模5.4類建模一個面向?qū)ο筌浖到y(tǒng)由三種類型的類構(gòu)成:實體類

EntityClass,是對持久性信息的建模。邊界類

BoundaryClass,提供了面向?qū)ο筌浖到y(tǒng)與參與者進行交互的邊界??刂祁?/p>

ControlClass,是指對系統(tǒng)框架、系統(tǒng)流程、業(yè)務(wù)邏輯和復(fù)雜的算法進行建模。5.4類建模面向?qū)ο蠓治龇治鲭A段進行的類建模ClassModeling是對目標軟件系統(tǒng)的功能性需求的靜態(tài)建模,它只針對一個軟件系統(tǒng)范疇內(nèi)的實體類及其屬性、以及實體類之間的關(guān)系,不考慮與具體實現(xiàn)有關(guān)的邊界類和控制類。類建模的成果是初始類圖PreliminaryClassDiagram,也稱簡單類圖。5.4.1實體類軟件系統(tǒng)業(yè)務(wù)范圍內(nèi)的實體類既物理上存在于現(xiàn)實世界中,也在邏輯上存在于我們所建立的軟件系統(tǒng)中?,F(xiàn)實世界本身就是由無數(shù)的對象構(gòu)成的。實實在在的物理實體業(yè)務(wù)實體組織機構(gòu)實體…….5.4.1實體類多個學生對象抽象為“學生”類5.4.1實體類類(如果暫不考慮類的屬性和方法)5.4.1實體類“圖書”類屬性方法類名5.4.2構(gòu)造初始類圖OOA階段類建模是對業(yè)務(wù)情況的靜態(tài)建模,不考慮實體類中用來體現(xiàn)動態(tài)關(guān)系的方法,只考慮業(yè)務(wù)范圍內(nèi)的實體及其屬性。類建模的基本步驟:

名詞抽取

確定候選類

構(gòu)造初始類圖5.4.2構(gòu)造初始類圖1、名詞抽取,就是指從需求文檔和用例模型中抽取出名詞。業(yè)務(wù)領(lǐng)域中的物理實體

如圖書、商品、樓房、汽車等。業(yè)務(wù)領(lǐng)域中的概念實體、邏輯實體

如銀行賬戶、訂單、借書記錄、課程、生產(chǎn)計劃等。業(yè)務(wù)領(lǐng)域中的動詞

如考試等。用例模型中的參與者

如學生、教師、顧客等。5.4.2構(gòu)造初始類圖國內(nèi)某慕課平臺向廣大學員免費提供大量的優(yōu)質(zhì)課程資源。課程教師可在該慕課平臺管理信息系統(tǒng)上免費注冊成為教師用戶,注冊信息有賬號、密碼、姓名、所在高校、職稱、和電子郵箱等;學員可在該系統(tǒng)上免費注冊成為學員用戶,注冊信息有賬號、密碼、身份證號或?qū)W號、就讀學?;蚬ぷ鲉挝?、電子郵箱等。已注冊的教師登錄后可以設(shè)置課程,包括課程名稱,系統(tǒng)自動生成課程編號;然后教師可以設(shè)置該課程新的開課學期,具體信息包括學期開始時間、學期結(jié)束時間、課程簡介、課程大綱、參考教材等,然后設(shè)置課程教學資源,包括課程教學視頻、課程PPT、單元測試題、作業(yè)、論壇論題、結(jié)課考試試卷等。教師可以參加論壇討論,對學員進行輔導(dǎo)和啟發(fā)。已注冊的學員用戶登錄后可以免費選課、觀看課程教學視頻、瀏覽課程PPT、做單元測試、做作業(yè)、參與論壇討論、參加結(jié)課考試,并可查看自己的結(jié)課成績。一個開課學期結(jié)束后,教師可以設(shè)置下一個開課學期。5.4.2構(gòu)造初始類圖國內(nèi)某慕課平臺向廣大學員免費提供大量的優(yōu)質(zhì)課程資源。課程教師可在該慕課平臺管理信息系統(tǒng)上免費注冊成為教師用戶,注冊信息有賬號、密碼、姓名、所在高校、職稱、和電子郵箱等;學員可在該系統(tǒng)上免費注冊成為學員用戶,注冊信息有賬號、密碼、身份證號或?qū)W號、就讀學?;蚬ぷ鲉挝?、電子郵箱等。已注冊的教師登錄后可以設(shè)置課程,包括課程名稱,系統(tǒng)自動生成課程編號;然后教師可以設(shè)置該課程新的開課學期,具體信息包括學期開始時間、學期結(jié)束時間、課程簡介、課程大綱、參考教材等,然后設(shè)置課程資源,包括課程教學視頻、課程PPT、單元測試題、作業(yè)、論壇論題、結(jié)課考試試卷等。教師可以參加論壇討論,對學員進行輔導(dǎo)和啟發(fā)。已注冊的學員用戶登錄后可以免費選課、觀看課程教學視頻、瀏覽課程PPT、做單元測試、做作業(yè)、參與論壇討論、參加結(jié)課考試,并可查看自己的結(jié)課成績。一個開課學期結(jié)束后,教師可以設(shè)置下一個開課學期。5.4.2構(gòu)造初始類圖國內(nèi)某慕課平臺向廣大學員免費提供大量的優(yōu)質(zhì)課程資源。課程教師可在該慕課平臺管理信息系統(tǒng)上免費注冊成為教師用戶,注冊信息有賬號、密碼、姓名、所在高校、職稱、和電子郵箱等;學員可在該系統(tǒng)上免費注冊成為學員用戶,注冊信息有賬號、密碼、身份證號或?qū)W號、就讀學?;蚬ぷ鲉挝?、電子郵箱等。已注冊的教師登錄后可以設(shè)置課程,包括課程名稱,系統(tǒng)自動生成課程編號;然后教師可以設(shè)置該課程新的開課學期,具體信息包括學期開始時間、學期結(jié)束時間、課程簡介、課程大綱、參考教材等,然后設(shè)置課程資源,包括課程教學視頻、課程PPT、單元測試題、作業(yè)、論壇論題、結(jié)課考試試卷等。教師可以參加論壇討論,對學員進行輔導(dǎo)和啟發(fā)。已注冊的學員用戶登錄后可以免費選課、觀看課程教學視頻、瀏覽課程PPT、做單元測試、做作業(yè)、參與論壇討論、參加結(jié)課考試,并可查看自己的結(jié)課成績。一個開課學期結(jié)束后,教師可以設(shè)置下一個開課學期。5.4.2構(gòu)造初始類圖2、確定候選類教師、學員、課程、賬號、密碼、姓名、所在高校、職稱、電子郵箱、身份證號或?qū)W號、就讀學校或工作單位、課程名稱、課程教學視頻、課程簡介、課程大綱、參考教材、開課學期、學期開始時間、學期結(jié)束時間、課程資源、課程教學視頻、課程PPT、單元測試題、作業(yè)、論壇論題、結(jié)課考試試卷、開課學期、結(jié)課成績。3、構(gòu)造初始類圖歡迎學習《軟件工程》第五章面向?qū)ο蠓治?.4類建模5.4.3類建模的原則1、區(qū)別子類與對象5.4.3類建模的原則1、區(qū)別子類與對象5.4.3類建模的原則2、子類的劃分5.4.3類建模的原則2、子類的劃分5.4.3類建模的原則3、區(qū)分組合關(guān)系與關(guān)聯(lián)關(guān)系5.4.3類建模的原則3、區(qū)分組合關(guān)系與關(guān)聯(lián)關(guān)系5.4.3類建模的原則3、區(qū)分組合關(guān)系與關(guān)聯(lián)關(guān)系5.4.3類建模的原則4、明細問題局限性:一個訂單只能針對一種商品5.4.3類建模的原則4、明細問題5.4.3類建模的原則5、參與者問:參與者是否應(yīng)該成為實體類?答:要具體問題具體分析。

例如:電梯控制系統(tǒng)的“用戶”。5.4.3類建模的原則6、分解類5.4.3類建模的原則6、分解類歡迎學習《軟件工程》第五章面向?qū)ο蠓治?.4.4類建模案例案例1、高校圖書館管理信息系統(tǒng)某高校圖書館管理信息系統(tǒng)為全校師生員工提供服務(wù),全校師生員工都是借閱者。身份驗證合格的借閱者可以在自助借還書機上自助辦理借書、還書;而且借閱者也可以在Web瀏覽器上登錄圖書館管理信息系統(tǒng),并可以進行自助續(xù)借圖書和自助預(yù)約圖書。借一本書或續(xù)借一本書都在系統(tǒng)中生成一條借書記錄并永久保存。預(yù)約圖書則在系統(tǒng)中生成一條預(yù)約記錄并保存在系統(tǒng)中,如果預(yù)約時間超過48小時或在48小時內(nèi)被預(yù)約者借出,則該預(yù)約記錄被刪除。系統(tǒng)也永久記錄借閱者實際還書時間。每名借閱者最多可以持有15本在借圖書。案例1、高校圖書館管理信息系統(tǒng)候選類:借閱者自助借還書機圖書借書記錄預(yù)約記錄案例1、高校圖書館管理信息系統(tǒng)(第一次迭代的初始類圖)案例2、電梯控制系統(tǒng)該電梯控制系統(tǒng)將控制一棟m個樓層的樓房里的n部電梯的移動。每個樓層上有2個按鈕,叫作樓層按鈕,分別表示電梯用戶的目標方向:向上、和向下;最底樓層只有“向上”一個按鈕,最頂樓層只有“向下”一個按鈕。每部電梯內(nèi)部有m個按鈕,叫作電梯按鈕,每個按鈕對應(yīng)一個樓層;當某個樓層按鈕或電梯按鈕被按下,則該按鈕亮;當電梯到達該按鈕所代表的樓層,該按鈕滅;經(jīng)過一個計時,電梯門開;再經(jīng)過一個計時,電梯門關(guān);當沒有按鈕被按下,即沒有請求時,電梯停留在當前樓層,保持門關(guān)。案例2、電梯控制系統(tǒng)該電梯控制系統(tǒng)將控制一棟m個樓層的樓房里的n部電梯的移動。每個樓層上有2個按鈕,叫作樓層按鈕,分別表示電梯用戶的目標方向:向上、和向下;最底樓層只有“向上”一個按鈕,最頂樓層只有“向下”一個按鈕。每部電梯內(nèi)部有m個按鈕,叫作電梯按鈕,每個按鈕對應(yīng)一個樓層;當某個樓層按鈕或電梯按鈕被按下,則該按鈕亮;當電梯到達該按鈕所代表的樓層,該按鈕滅;經(jīng)過一個計時,電梯門開;再經(jīng)過一個計時,電梯門關(guān);當沒有按鈕被按下,即沒有請求時,電梯停留在當前樓層,保持門關(guān)。案例2、電梯控制系統(tǒng)候選類:電梯按鈕樓層按鈕電梯按鈕電梯門案例2、電梯控制系統(tǒng)(第一次迭代的初始類圖)案例2、電梯控制系統(tǒng)(第二次迭代的初始類圖)歡迎學習《軟件工程》第五章面向?qū)ο蠓治?.5動態(tài)建模5.5動態(tài)建模如果系統(tǒng)中的某些對象滿足以下條件,則需要對該對象的生命周期進行建模,即需要對這些對象抽象出的類做動態(tài)建模DynamicModeling,獲得該類的狀態(tài)圖StateDiagram:該對象的生命歷程中經(jīng)歷了至少兩種狀態(tài);這些狀態(tài)之間可以單向或雙向轉(zhuǎn)變;狀態(tài)的轉(zhuǎn)變,是因為某些事件的發(fā)生、或者是因為某些條件的滿足而產(chǎn)生。5.5動態(tài)建模狀態(tài)圖是對類圖的補充。不是所有的類都需要做狀態(tài)圖,只有該類的對象在整個業(yè)務(wù)流程中有多種可能的狀態(tài)、且可能從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài),才有必要做動態(tài)建模,獲得該類的狀態(tài)圖。5.5.1狀態(tài)圖狀態(tài)圖用于描述一個對象在其生命周期內(nèi)所有可能的狀態(tài),以及引起狀態(tài)改變的事件或條件。狀態(tài)圖的目的是通過描述某個對象的狀態(tài)和引起狀態(tài)轉(zhuǎn)變的事件或條件,來描述對象的行為特征。狀態(tài)圖由一系列狀態(tài)、事件、條件以及狀態(tài)間的轉(zhuǎn)變共同構(gòu)成。5.5.1狀態(tài)圖狀態(tài)

State是指對象在其生命周期中滿足某一條件、進行某種活動或等待某一事件的條件或狀況。中間狀態(tài)初始狀態(tài)終止狀態(tài)5.5.1狀態(tài)圖事件:事件的發(fā)生,可能引發(fā)對象的狀態(tài)從原狀態(tài)變?yōu)槟繕藸顟B(tài)。條件,通常是時間條件或一個布爾表達式,時間條件滿足或布爾表達式的值為真,則發(fā)生狀態(tài)的變化。5.5.1狀態(tài)圖狀態(tài)的轉(zhuǎn)變5.5.2動態(tài)建模案例1、媒體播放器【注】媒體播放器沒有終止狀態(tài),是循環(huán)工作模式。5.5.2動態(tài)建模案例2、圖書管理信息系統(tǒng)中的“圖書”類5.5.2動態(tài)建模案例3、網(wǎng)上購物系統(tǒng)中的“訂單”類歡迎學習《軟件工程》軟件工程第五章面向?qū)ο蠓治?.6OOA測試5.6OOA測試對分析工作的成果應(yīng)該必須進行測試,以保證這些成果是正確的、恰當?shù)?。CRC(Class-Responsibility-Collaboration,類-職責-協(xié)作)卡片是對面向?qū)ο蠓治龅某晒M行測試的一種重要技術(shù)手段。5.6OOA測試圖書館管理信息系統(tǒng)第一次迭代類圖5.6OOA測試自助借還書機的CRC卡片職責1、掃描圖書條形碼每一本圖書都有一個在圖書館管理信息系統(tǒng)中唯一識別的條形碼,這個條形碼打印在粘紙上,貼在書上,所以,“借書機掃描圖書條形碼”,暫時看起來沒什么問題。職責2、驗證借閱者驗證借閱者的有效性,肯定需要借閱者的個人信息,而自

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論