




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Uml實(shí)用技術(shù)Unified Modeling Language 我們動(dòng)手做做練習(xí)我們動(dòng)手做做練習(xí) UML幫助我們做需求幫助我們做需求簡(jiǎn)單了解簡(jiǎn)單了解UMLUML在設(shè)計(jì)階段如何發(fā)揮作用在設(shè)計(jì)階段如何發(fā)揮作用主題主題 我們動(dòng)手做做練習(xí)我們動(dòng)手做做練習(xí) UML幫助我們做需求幫助我們做需求簡(jiǎn)單了解簡(jiǎn)單了解UMLUML在設(shè)計(jì)階段如何發(fā)揮作用在設(shè)計(jì)階段如何發(fā)揮作用主題主題軟件開(kāi)發(fā)過(guò)程詳解 目前的現(xiàn)實(shí)是什么?業(yè)務(wù)建模 在這個(gè)現(xiàn)實(shí)下,開(kāi)發(fā)系統(tǒng)是為了達(dá)到什么目標(biāo)?愿景 為了達(dá)到目標(biāo),系統(tǒng)應(yīng)對(duì)外提供什么樣的功能和性能?需求 為了提供這些功能,系統(tǒng)內(nèi)部應(yīng)該有什么樣的核心業(yè)務(wù)機(jī)制?分析 為了滿足性能,系統(tǒng)的核心機(jī)制
2、如何在選定的架構(gòu)上實(shí)現(xiàn)?設(shè)計(jì)找找到到問(wèn)問(wèn)題題解解決決問(wèn)問(wèn)題題UML三個(gè)主要作用使用可視化建模來(lái)獲取并表現(xiàn)商業(yè)邏輯和對(duì)象使用可視化建模來(lái)分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用程序使用可視化建模來(lái)分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用程序 理由一:理由一:UML是客戶、系統(tǒng)分析員和程序員之間的是客戶、系統(tǒng)分析員和程序員之間的“橋梁橋梁” 用例圖用例圖 活動(dòng)圖活動(dòng)圖 狀態(tài)圖狀態(tài)圖 時(shí)序圖時(shí)序圖 對(duì)象圖對(duì)象圖 部署圖部署圖 UML三個(gè)主要作用 理由二:理由二:UML從客戶的角度將復(fù)雜的系統(tǒng)整理清楚從客戶的角度將復(fù)雜的系統(tǒng)整理清楚UML三個(gè)主要作用software可移植可移植技術(shù)交互技術(shù)交互性能性能全面全面容量容量穩(wěn)定性穩(wěn)定性錯(cuò)誤處理錯(cuò)誤
3、處理容錯(cuò)性容錯(cuò)性功能需求功能需求成本成本兼容性兼容性 理由三:理由三:UML能使越來(lái)越復(fù)雜的軟件能使越來(lái)越復(fù)雜的軟件 系統(tǒng)架構(gòu)更加合理和健壯系統(tǒng)架構(gòu)更加合理和健壯系統(tǒng)模型可由“4+1”視圖展現(xiàn)邏輯視圖邏輯視圖場(chǎng)景視圖場(chǎng)景視圖系統(tǒng)功能系統(tǒng)功能分析設(shè)計(jì)結(jié)構(gòu)分析設(shè)計(jì)結(jié)構(gòu)系統(tǒng)并發(fā)工作情況系統(tǒng)并發(fā)工作情況實(shí)現(xiàn)視圖實(shí)現(xiàn)視圖實(shí)現(xiàn)模塊和代碼間的關(guān)系實(shí)現(xiàn)模塊和代碼間的關(guān)系部署視圖部署視圖 系統(tǒng)物理拓?fù)浼軜?gòu)系統(tǒng)物理拓?fù)浼軜?gòu)進(jìn)程視圖進(jìn)程視圖4+1視圖模型,從視圖模型,從5個(gè)不同的視角包括包括邏輯試圖、進(jìn)程視圖、物理視圖、開(kāi)發(fā)個(gè)不同的視角包括包括邏輯試圖、進(jìn)程視圖、物理視圖、開(kāi)發(fā)視圖、場(chǎng)景視圖來(lái)描述軟件體系結(jié)構(gòu)。每一
4、個(gè)視圖只關(guān)心系統(tǒng)的一個(gè)側(cè)面,視圖、場(chǎng)景視圖來(lái)描述軟件體系結(jié)構(gòu)。每一個(gè)視圖只關(guān)心系統(tǒng)的一個(gè)側(cè)面,5個(gè)試個(gè)試圖結(jié)合在一起才能反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部?jī)?nèi)容圖結(jié)合在一起才能反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部?jī)?nèi)容系統(tǒng)模型可由“4+1”視圖展現(xiàn) 邏輯試圖主要是用來(lái)描述系統(tǒng)的功能需求,即系統(tǒng)提供給最終用戶的服務(wù). 在邏輯視圖中,系統(tǒng)分解成一系列的功能抽象、功能分解與功能分析,這些主要來(lái)自問(wèn)題領(lǐng)域(Problem Definition)。 在面向?qū)ο蠹夹g(shù)中,通過(guò)抽象、封裝、繼承,可以用對(duì)象模型來(lái)代表邏輯視圖,可以用類圖(Class Diagram)來(lái)描述邏輯視圖。邏 輯 視 圖Logic View系統(tǒng)模型可由“
5、4+1”視圖展現(xiàn) 開(kāi)發(fā)視圖主要用來(lái)描述軟件模塊的組織與管理(通過(guò)程序庫(kù)或子系統(tǒng))。服務(wù)于軟件編程人員, 方便后續(xù)的設(shè)計(jì)與實(shí)現(xiàn)。它通過(guò)系統(tǒng)輸入輸出關(guān)系的模型圖和子系統(tǒng)圖來(lái)描述。要考慮軟件的內(nèi)部需求:開(kāi)發(fā)的難易程度、重用的可能性,通用性,局限性等等。開(kāi)發(fā)視圖的風(fēng)格通常是層次結(jié)構(gòu),層次越低,通用性越好(底層庫(kù):Java SDK,圖像處理軟件包)。開(kāi) 發(fā) 視 圖Development/Module View上升到組件概念上升到組件概念系統(tǒng)模型可由“4+1”視圖展現(xiàn) 進(jìn)程試圖側(cè)重系統(tǒng)的運(yùn)行特性,關(guān)注非功能性的需求(性能,可用性)。服務(wù)于系統(tǒng)集成人員,方便后續(xù)性能測(cè)試。強(qiáng)調(diào)并發(fā)性、分布性、集成性、魯棒性(
6、容錯(cuò))、可擴(kuò)充性、吞吐量等。定義邏輯視圖中的各個(gè)類的具體操作是在哪一個(gè)線程(Thread)中被執(zhí)行。進(jìn)程視圖 Process View現(xiàn)在公司里不再考慮功能能不能實(shí)現(xiàn),而在于現(xiàn)在公司里不再考慮功能能不能實(shí)現(xiàn),而在于PK性能,可擴(kuò)展性等非功能性。性能,可擴(kuò)展性等非功能性。系統(tǒng)模型可由“4+1”視圖展現(xiàn) 物理試圖主要描述硬件配置。服務(wù)于系統(tǒng)工程人員,解決系統(tǒng)的拓?fù)浣Y(jié)構(gòu)、系統(tǒng)安裝、通信等問(wèn)題。主要考慮如何把軟件映射到硬件上,也要考慮系統(tǒng)性能、規(guī)模、可靠性等??梢耘c進(jìn)程視圖一起映射。 物理視圖(physical view)系統(tǒng)模型可由“4+1”視圖展現(xiàn) 場(chǎng)景用于刻畫(huà)構(gòu)件之間的相互關(guān)系,將四個(gè)視圖有機(jī)地
7、聯(lián)系起來(lái)??梢悦枋鲆粋€(gè)特定的視圖內(nèi)的構(gòu)件關(guān)系,也可以描述不同視圖間的構(gòu)件關(guān)系。文本、圖形表示皆可。 n 小結(jié) 邏輯視圖、開(kāi)發(fā)視圖,都主要是用來(lái)描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。 進(jìn)程視圖、物理視圖,主要是用來(lái)描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)。 并非每個(gè)系統(tǒng)都必須把5個(gè)視圖都畫(huà)出來(lái),而是各有側(cè)重。例如MIS系統(tǒng)側(cè)重于邏輯視圖、開(kāi)發(fā)視圖,而實(shí)時(shí)控制系統(tǒng)則側(cè)重于進(jìn)程視圖、物理視圖場(chǎng)景場(chǎng)景(Scenarios) 模型可由9個(gè)圖來(lái)展現(xiàn)Use CaseDiagramUse CaseDiagram用例圖用例圖ScenarioDiagramScenarioDiagram協(xié)作圖協(xié)作圖StateDiagramStateDiagram組件圖組
8、件圖ComponentDiagramComponentDiagram部署圖部署圖StateDiagramStateDiagram對(duì)象圖對(duì)象圖ScenarioDiagramScenarioDiagram狀態(tài)圖狀態(tài)圖Use CaseDiagramUse CaseDiagram時(shí)序圖時(shí)序圖StateDiagramStateDiagram類圖類圖活動(dòng)圖活動(dòng)圖模型模型墨綠色表示動(dòng)態(tài)圖墨綠色表示動(dòng)態(tài)圖粉紅色表示靜態(tài)圖粉紅色表示靜態(tài)圖(可把用例圖單列出來(lái))(可把用例圖單列出來(lái))功能功能靜態(tài)結(jié)構(gòu)靜態(tài)結(jié)構(gòu)物理架構(gòu)物理架構(gòu)動(dòng)動(dòng)態(tài)態(tài)行行為為用例圖,類圖,時(shí)序圖經(jīng)常用用例圖,類圖,時(shí)序圖經(jīng)常用UML9種圖 描述角色以
9、及角色與用例之間的連接關(guān)系。說(shuō)明的是誰(shuí)要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。一個(gè)用例圖包含了多個(gè)模型元素,如系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關(guān)系,如泛化、關(guān)聯(lián)和依賴。用例圖 類圖是描述系統(tǒng)中的類,以及各個(gè)類之間的關(guān)系的靜態(tài)視圖。能夠讓我們?cè)谡_編寫(xiě)代碼以前對(duì)系統(tǒng)有一個(gè)全面的認(rèn)識(shí)。類圖是一種模型類型,確切的說(shuō),是一種靜態(tài)模型類型。類圖 與類圖極為相似,它是類圖的實(shí)例,對(duì)象圖顯示類的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類。它描述的不是類之間的關(guān)系,而是對(duì)象之間的關(guān)系。對(duì)象圖 描述用例要求所要進(jìn)行的活動(dòng),以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些
10、功能和系統(tǒng)中其他組件的功能如何共同滿足前面使用用例圖建模的商務(wù)需求?;顒?dòng)圖 UML9種圖描述類的對(duì)象所有可能的狀態(tài),以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件??梢圆东@對(duì)象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個(gè)對(duì)象可以擁有的狀態(tài),并且事件(如消息的接收、時(shí)間的流逝、錯(cuò)誤、條件變?yōu)檎娴?會(huì)怎么隨著時(shí)間的推移來(lái)影響這些狀態(tài)。一個(gè)狀態(tài)圖應(yīng)該連接到所有具有清晰的可標(biāo)識(shí)狀態(tài)和復(fù)雜行為的類;狀態(tài)圖 序列圖是用來(lái)顯示你的參與者如何以一系列順序的步驟與系統(tǒng)的對(duì)象交互的模型。順序圖可以用來(lái)展示對(duì)象之間是如何進(jìn)行交互的。順序圖將顯示的重點(diǎn)放在消息序列上,即強(qiáng)調(diào)消息是如何在對(duì)象之間被發(fā)送和接收的。序列圖(順序圖) 和序列圖相
11、似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系??梢钥闯墒穷悎D和順序圖的交集,協(xié)作圖建模對(duì)象或者角色,以及它們彼此之間是如何通信的。如果強(qiáng)調(diào)時(shí)間和順序,則使用序列圖;如果強(qiáng)調(diào)上下級(jí)關(guān)系,則選擇協(xié)作圖;這兩種圖合稱為交互圖。協(xié)作圖 描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴關(guān)系。用來(lái)建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件時(shí)軟件單個(gè)組成部分,它可以是一個(gè)文件,產(chǎn)品、可執(zhí)行文件和腳本等。構(gòu)件圖 (組件圖)是用來(lái)建模系統(tǒng)的物理部署。例如計(jì)算機(jī)和設(shè)備,以及它們之間是如何連接的。部署圖的使用者是開(kāi)發(fā)人員、系統(tǒng)集成人員和測(cè)試人員。部署圖 (配置圖)UML9種圖 用例圖:業(yè)
12、務(wù)建模、需求、測(cè)試 類圖:業(yè)務(wù)建模、分析、設(shè)計(jì) 對(duì)象圖:業(yè)務(wù)建模、分析、設(shè)計(jì) 組件圖:設(shè)計(jì) 部署圖:設(shè)計(jì) 順序圖:業(yè)務(wù)建模、分析、設(shè)計(jì) 協(xié)作圖:業(yè)務(wù)建模、分析、設(shè)計(jì) 狀態(tài)圖:需求、分析、設(shè)計(jì) 活動(dòng)圖:業(yè)務(wù)建模、設(shè)計(jì)結(jié)結(jié)構(gòu)構(gòu)行行為為敏捷建模原則:需要時(shí)再添加敏捷建模原則:需要時(shí)再添加可互換可互換可互換可互換主要步驟 我們動(dòng)手做做練習(xí)我們動(dòng)手做做練習(xí) UML幫助我們做需求幫助我們做需求簡(jiǎn)單了解簡(jiǎn)單了解UMLUML在設(shè)計(jì)階段如何發(fā)揮作用在設(shè)計(jì)階段如何發(fā)揮作用主題主題UML之用例圖需求分析中我們?nèi)绾握砗统橄笪覀儚挠脩裟堑玫降臉I(yè)務(wù)描述。用流程圖描述業(yè)務(wù)流程、用用例圖表達(dá)用戶業(yè)務(wù)工作識(shí)別執(zhí)行者執(zhí)行者要點(diǎn)
13、: 系統(tǒng)外必須和它交互 系統(tǒng)邊界直接與系統(tǒng)交互 有意義的交互屬于目標(biāo)系統(tǒng)的責(zé)任 任何事物人、外系統(tǒng)、外部因素、時(shí)間識(shí)別執(zhí)行者抽象出執(zhí)行者的思路: 誰(shuí)使用了系統(tǒng)的主要功能? 誰(shuí)改變了系統(tǒng)的主要數(shù)據(jù)? 誰(shuí)從系統(tǒng)獲取信息? 誰(shuí)需要系統(tǒng)的支持以完成日常工作任務(wù)? 誰(shuí)負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行? 系統(tǒng)需要應(yīng)付(處理)哪些硬件設(shè)備? 系統(tǒng)需要和哪些外部系統(tǒng)交互? 誰(shuí)(或什么)對(duì)系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果感興趣? 有沒(méi)有自動(dòng)發(fā)生的事件?識(shí)別執(zhí)行者責(zé)任類似或重疊抽象出執(zhí)行者UML之執(zhí)行者Actor之間也之間也有繼承關(guān)系。有繼承關(guān)系。且注意圖形且注意圖形表示。表示。識(shí)別用例用例的基本定義:用例實(shí)例是在系統(tǒng)中執(zhí)行的
14、一系列動(dòng)作,這些動(dòng)作將生成特定執(zhí)行者可見(jiàn)的價(jià)值結(jié)果。一個(gè)用例定義一組用例實(shí)例。Ivar Jacobson(RUP)通俗地講:執(zhí)行者通過(guò)系統(tǒng)達(dá)到某個(gè)有用目標(biāo)通俗地講:執(zhí)行者通過(guò)系統(tǒng)達(dá)到某個(gè)有用目標(biāo)步驟步驟路徑路徑目標(biāo)目標(biāo)識(shí)別用例設(shè)計(jì)用例要注意以下要點(diǎn): 價(jià)值結(jié)果有意義的目標(biāo) 系統(tǒng)執(zhí)行價(jià)值結(jié)果由系統(tǒng)生成 執(zhí)行者可見(jiàn)業(yè)務(wù)語(yǔ)言,用戶觀點(diǎn)注意:抽象一組用例實(shí)例時(shí)控制好用例的粒度識(shí)別用例有意義的目標(biāo):識(shí)別用例用戶觀點(diǎn)而非系統(tǒng)觀點(diǎn):用戶觀點(diǎn)用戶觀點(diǎn)系統(tǒng)觀點(diǎn)系統(tǒng)觀點(diǎn)識(shí)別用例用例命名:執(zhí)行者視角動(dòng)詞 (+賓語(yǔ))狀語(yǔ)定語(yǔ)如:批量修改登錄記錄編號(hào)識(shí)別用例執(zhí)行者使用這個(gè)系統(tǒng)達(dá)到什么目標(biāo)?語(yǔ)法測(cè)試:【執(zhí)行者】使用系統(tǒng)來(lái)
15、【用例】用例命名:慎用弱動(dòng)詞、弱名詞30弱動(dòng)詞:進(jìn)行、使用、復(fù)制、加載、重復(fù)弱名詞:數(shù)據(jù)、報(bào)表、表格、表單、系統(tǒng)會(huì)掩蓋真正的業(yè)務(wù)識(shí)別用例識(shí)別用例識(shí)別用例討論:幾個(gè)登錄?或或注意角色的劃分和公共用例的定義要不把用戶抽象成三種,要不把用戶抽象成三種,或者把登錄抽象成三種?;蛘甙训卿洺橄蟪扇N。識(shí)別用例用例的粒度:四輪馬車任何業(yè)務(wù)歸根到底都可以看作任何業(yè)務(wù)歸根到底都可以看作CURD,但光,但光CURD能為能為Actor提供價(jià)值嗎?提供價(jià)值嗎? CRUD是是Create(創(chuàng)建)、(創(chuàng)建)、Read(讀?。?、(讀?。?、Update(更新)和(更新)和Delete(刪除)縮寫(xiě)(刪除)縮寫(xiě)警惕警惕CURD泛
16、濫!泛濫!一般要避免全部使用,要一般要避免全部使用,要抽象,公用抽象,公用的,其它的不要,但默認(rèn)有。的,其它的不要,但默認(rèn)有。識(shí)別用例用例的粒度:在四輪馬車之前盡量細(xì)致另注:多個(gè)用例會(huì)操作同一項(xiàng)數(shù)據(jù),即對(duì)一個(gè)數(shù)據(jù)項(xiàng)操作用例未必是同一個(gè)用例識(shí)別用例討論:登錄怎么處理?(確定用例之間的關(guān)系)用例有先后或前提關(guān)系時(shí)不要簡(jiǎn)單認(rèn)為是簡(jiǎn)單的包含或者是擴(kuò)展關(guān)系更進(jìn)一步的精度用用例圖可以作用例文檔的例圖可以作用例文檔的總圖,進(jìn)一步總圖,進(jìn)一步的精度:有層次的的精度:有層次的文檔,文檔文檔,文檔中每一句話都有其價(jià)值中每一句話都有其價(jià)值通過(guò)關(guān)系整理用例用例的關(guān)系擴(kuò)展:分離擴(kuò)展路徑擴(kuò)展:分離擴(kuò)展路徑包含:提取公共步
17、驟,便于復(fù)用包含:提取公共步驟,便于復(fù)用泛化:同一業(yè)務(wù)目的的不同技術(shù)實(shí)現(xiàn)泛化:同一業(yè)務(wù)目的的不同技術(shù)實(shí)現(xiàn)大多數(shù)為包含關(guān)大多數(shù)為包含關(guān)系系include 是指用例中的包含關(guān)系,通常發(fā)生在多個(gè)用例中,有可以提取出來(lái)的公共部分(就象提取公因式一樣),例如 UseCaseA 中包括了 a 和 b 兩個(gè)流程,而 UseCaseC 中包含了 c 和 b 兩個(gè)流程。為了提高復(fù)用性,可以把 b 提取出來(lái),形成另一個(gè)用例 UseCaseB,此時(shí),UseCaseA include UseCaseB(表現(xiàn)為一條指向 UseCaseB 的虛線,箭頭在 UseCaseB 側(cè)),UseCaseC 也 include Us
18、eCaseB。因而,當(dāng)有 include 關(guān)系時(shí),被 include 的用例通常會(huì)被兩個(gè)以上的其他用例 include(否則就不需要重用,也就不需要提取出來(lái)了),用例圖如下:通過(guò)關(guān)系整理用例通過(guò)關(guān)系整理用例通過(guò)關(guān)系整理用例包含關(guān)系的誤用extend 則恰好相反。假設(shè) UseCaseA 的功能描述為“發(fā)送一條通知”,可是,發(fā)送通知的方式可能有許多種,例如通過(guò)郵件發(fā)送、通過(guò)短信發(fā)送等。在需求分析階段,可能無(wú)法明確到底有多少種方式,在用例分析階段,UseCaseA 需要留出擴(kuò)展接口,然后把已知的發(fā)送方式作為擴(kuò)展用例給出,例如 UseCaseB 是“通過(guò)短信發(fā)送”,而 UseCaseC 是“通過(guò)郵件發(fā)
19、送”,此時(shí),UseCaseB 和 UseCaseC extend 了 UseCaseA,表現(xiàn)為兩根虛線,箭頭指向 UseCaseA,用例圖如下:通過(guò)關(guān)系整理用例通過(guò)關(guān)系整理用例如果兩個(gè)用例之間,一個(gè)要調(diào)用另一個(gè)時(shí),怎么辦?”(有可能是混淆了用例和模塊的關(guān)系),那么,首先要區(qū)分概念,用例就是用例,用例不是模塊,也不是組件(雖然一個(gè)用例能發(fā)展成為“一個(gè)或多個(gè)”模塊或組件);其次,從用例分析的角度來(lái)看,如果用例 A 確實(shí)要調(diào)用到用例 B,那么,可以進(jìn)一步分析:A 是調(diào)用了 B 的所有流程呢,還是其中一部分流程?(1)如果是調(diào)用了一部分,此時(shí)可以把 B 中的那部分流程提取出來(lái),形成用例 C,然后 A
20、和 B 都 include C;(2)如果是調(diào)用了所有流程,那么,A 直接 include B 即可;(3)如果 A 沒(méi)有調(diào)用 B 中的任何流程那自然不用畫(huà)兩者的關(guān)系了通過(guò)關(guān)系整理用例通過(guò)關(guān)系整理用例通過(guò)關(guān)系整理用例用例間不存在用例間不存在“角色與用例角色與用例”的關(guān)系!的關(guān)系!泛化關(guān)系:子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實(shí)際應(yīng)用中很少使用泛化關(guān)系,子用例中的特殊行為都可以作為父用例中的備選流存在通過(guò)關(guān)系整理用例通過(guò)關(guān)系整理用例書(shū)寫(xiě)用例文檔用例的內(nèi)容v 用例編號(hào):用例名用例編號(hào)
21、:用例名v 執(zhí)行者執(zhí)行者v 前置條件前置條件v 后置條件后置條件v 涉眾利益涉眾利益v 基本路徑基本路徑v1XXXXv2XXXXv3XXXXv 擴(kuò)展擴(kuò)展v2a.XXXXv 2a1.XXXXv 字段列表字段列表v 業(yè)務(wù)規(guī)則業(yè)務(wù)規(guī)則v 非功能需求非功能需求v 設(shè)計(jì)約束設(shè)計(jì)約束v 待解決問(wèn)題待解決問(wèn)題書(shū)寫(xiě)用例文檔涉眾利益利益的沖突利益的沖突銀行的銀行的用戶的用戶的法律的法律的誰(shuí)的?誰(shuí)的?書(shū)寫(xiě)用例文檔涉眾利益v誰(shuí)關(guān)心這個(gè)系統(tǒng)誰(shuí)關(guān)心這個(gè)系統(tǒng), 會(huì)涉及到他的什么利益會(huì)涉及到他的什么利益? 對(duì)于同一件事情對(duì)于同一件事情, 不同的人看的視角可能不同的人看的視角可能各不相同各不相同, 而不同的視角則是基于不同的
22、而不同的視角則是基于不同的利益利益 。v探索系統(tǒng)的需求探索系統(tǒng)的需求, 就是探索不同的涉眾之就是探索不同的涉眾之間的利益的最佳平衡點(diǎn)間的利益的最佳平衡點(diǎn) 。v涉眾的位置不同涉眾的位置不同, 利益會(huì)有所不同利益會(huì)有所不同, 開(kāi)發(fā)人開(kāi)發(fā)人員要從最前排的涉眾員要從最前排的涉眾(老大老大)的利益為出發(fā)的利益為出發(fā)點(diǎn)點(diǎn), 否則會(huì)影響需求必須明確否則會(huì)影響需求必須明確, 涉眾的利益涉眾的利益是不會(huì)輕易改變的是不會(huì)輕易改變的, 穩(wěn)定的利益關(guān)系穩(wěn)定的利益關(guān)系書(shū)寫(xiě)用例文檔路徑交互步驟的描述v只寫(xiě)只寫(xiě)“可觀測(cè)的可觀測(cè)的”v使用主動(dòng)語(yǔ)句使用主動(dòng)語(yǔ)句v句子必須以執(zhí)行者或系統(tǒng)作為主語(yǔ)句子必須以執(zhí)行者或系統(tǒng)作為主語(yǔ)v每一
23、句都要朝目標(biāo)邁進(jìn)每一句都要朝目標(biāo)邁進(jìn)v分支和循環(huán)分支和循環(huán)v不要涉及界面細(xì)節(jié)不要涉及界面細(xì)節(jié)書(shū)寫(xiě)用例文檔字段列表v+ 數(shù)據(jù)序列數(shù)據(jù)序列v 可選項(xiàng)可選項(xiàng)v* 多個(gè)多個(gè)v | | | 可能取值可能取值vA=B 把把B的結(jié)構(gòu)賦給的結(jié)構(gòu)賦給A可以用自然語(yǔ)言,也可以用表達(dá)式可以用自然語(yǔ)言,也可以用表達(dá)式書(shū)寫(xiě)用例文檔字段列表v注冊(cè)信息注冊(cè)信息=公司名公司名+聯(lián)系人聯(lián)系人+電話電話+聯(lián)系地址聯(lián)系地址*v聯(lián)系地址聯(lián)系地址=州州+城市城市+街道街道+郵編郵編v保存信息保存信息=注冊(cè)信息注冊(cè)信息+注冊(cè)時(shí)間注冊(cè)時(shí)間v客房狀態(tài)客房狀態(tài)=空閑空閑|已預(yù)定已預(yù)定|占用占用|維修中維修中書(shū)寫(xiě)用例文檔可用性v系統(tǒng)應(yīng)易于使用系
24、統(tǒng)應(yīng)易于使用v第一次使用時(shí)第一次使用時(shí)30分鐘內(nèi)能學(xué)會(huì)添加員工(任務(wù)時(shí)間)分鐘內(nèi)能學(xué)會(huì)添加員工(任務(wù)時(shí)間)v5次擊鍵能完成客人入住服務(wù),不需要使用鼠標(biāo)(操作次次擊鍵能完成客人入住服務(wù),不需要使用鼠標(biāo)(操作次數(shù))數(shù))v80%的用戶認(rèn)為系統(tǒng)易學(xué),并且使用效率高(用戶調(diào)查)的用戶認(rèn)為系統(tǒng)易學(xué),并且使用效率高(用戶調(diào)查)v系統(tǒng)界面應(yīng)如系統(tǒng)界面應(yīng)如XX附件所示的屏幕圖像(小心)附件所示的屏幕圖像(小心)可用性需求的表達(dá)可用性需求的表達(dá)?書(shū)寫(xiě)用例的書(shū)面格式其他簡(jiǎn)單視圖活動(dòng)圖 之流程圖其他簡(jiǎn)單視圖活動(dòng)圖 之泳道圖泳道用于對(duì)于多個(gè)用戶泳道用于對(duì)于多個(gè)用戶一起完成一一起完成一個(gè)過(guò)程,非個(gè)過(guò)程,非常常有用。有用。
25、其他簡(jiǎn)單視圖狀態(tài)圖 我們動(dòng)手做做練習(xí)我們動(dòng)手做做練習(xí) UML幫助我們做需求幫助我們做需求簡(jiǎn)單了解簡(jiǎn)單了解UMLUML在設(shè)計(jì)階段如何發(fā)揮作用在設(shè)計(jì)階段如何發(fā)揮作用主題主題系統(tǒng)詳細(xì)設(shè)計(jì)主要目的詳細(xì)設(shè)計(jì)的目的是在具體編寫(xiě)代碼前,在代碼結(jié)構(gòu)層面上的一次設(shè)計(jì),構(gòu)層面的意思是只要表達(dá)出代碼的主要屬性和方法命名就可以,不必編寫(xiě)方法體代碼。將系統(tǒng)架構(gòu)實(shí)現(xiàn)的功能所涉及到的代碼結(jié)構(gòu)都設(shè)計(jì)出來(lái),這樣的做法能夠幫助開(kāi)發(fā)人員明確開(kāi)發(fā)思路,且能夠較為清楚的了解系統(tǒng)全局結(jié)構(gòu),作出相應(yīng)的調(diào)整,避免代碼開(kāi)發(fā)過(guò)程中再去調(diào)整代碼結(jié)構(gòu)造成的開(kāi)發(fā)資源的浪費(fèi)。另一個(gè)主要的目的是,將系統(tǒng)的代碼結(jié)構(gòu)清晰、直觀的描述成文,便于其他開(kāi)發(fā)人員、維
26、護(hù)人員對(duì)系統(tǒng)的擴(kuò)展與維護(hù)。Uml語(yǔ)言類圖基本畫(huà)法1.類設(shè)計(jì)簡(jiǎn)單的講,就是創(chuàng)建一個(gè)類然后定義類中的屬性和方法。2.類間關(guān)系的設(shè)計(jì),包括兩個(gè)層次包關(guān)系設(shè)計(jì)及類關(guān)系設(shè)計(jì),兩個(gè)層次間可以認(rèn)為是總與分的關(guān)系。具體的做法,根據(jù)各類間的應(yīng)用或調(diào)用的方式不同明確其之間的關(guān)系,類間關(guān)系一般分成關(guān)聯(lián)、依賴、累計(jì)關(guān)系。3.關(guān)系確定規(guī)則見(jiàn)以下實(shí)例(包關(guān)系與類關(guān)系基本一致包關(guān)系有包中類關(guān)系決定)類中常見(jiàn)的繼承表達(dá)1繼承通過(guò)指向超類的一條閉合的,單箭頭的實(shí)線表示繼承通過(guò)指向超類的一條閉合的,單箭頭的實(shí)線表示類中常見(jiàn)的繼承表達(dá)2一個(gè)使用樹(shù)形記號(hào)的繼承實(shí)例一個(gè)使用樹(shù)形記號(hào)的繼承實(shí)例 類中常見(jiàn)的接口與實(shí)現(xiàn)表達(dá)Professor
27、類和類和Student類實(shí)現(xiàn)類實(shí)現(xiàn)Person接口的類圖實(shí)例接口的類圖實(shí)例 類中常見(jiàn)的關(guān)聯(lián)關(guān)系表達(dá)兩個(gè)類間的雙向關(guān)聯(lián)兩個(gè)類間的雙向關(guān)聯(lián) 一個(gè)類知道另一個(gè)類的屬性和方法,前者具有取得一個(gè)類知道另一個(gè)類的屬性和方法,前者具有取得后的方法,則形成了單向關(guān)聯(lián),反之亦然。后的方法,則形成了單向關(guān)聯(lián),反之亦然。類中常見(jiàn)的關(guān)聯(lián)關(guān)系表達(dá)兩個(gè)類間的單向關(guān)聯(lián)兩個(gè)類間的單向關(guān)聯(lián) 單向關(guān)聯(lián)關(guān)系,前者能向后者發(fā)送消息取得他的屬性單向關(guān)聯(lián)關(guān)系,前者能向后者發(fā)送消息取得他的屬性類中常見(jiàn)的關(guān)聯(lián)關(guān)系表達(dá) 描述兩個(gè)或多個(gè)類的結(jié)構(gòu)性關(guān)系。 一個(gè)完整的關(guān)聯(lián)定義包含三部分,分別是類之間的關(guān)聯(lián)直線和兩個(gè)關(guān)聯(lián)端點(diǎn) 主要特性:角色,多重性,
28、導(dǎo)航性 角色:當(dāng)一個(gè)類處于關(guān)聯(lián)的某一端時(shí),該類就在這個(gè)關(guān)系中扮演了一個(gè)特定的角色;角色是關(guān)聯(lián)中靠近它的一端的類對(duì)另外一端的類呈現(xiàn)的職責(zé)。類中常見(jiàn)的關(guān)聯(lián)關(guān)系表達(dá) 多重性:關(guān)聯(lián)角色的多重性是說(shuō)明一個(gè)關(guān)聯(lián)的實(shí)例中有多少個(gè)相互連接的對(duì)象。 導(dǎo)航性:給定兩個(gè)類的關(guān)聯(lián),從一個(gè)類的對(duì)象能夠?qū)Ш降搅硪粋€(gè)類的對(duì)象,導(dǎo)航可以是雙向的。UniversityProfessor0.n10.n1Exactly oneZero or moreOne or moreZero or OneSpecified rangeMultiple, disjoint ranges10.*1.*0.12.42, 4.6類中常見(jiàn)的關(guān)聯(lián)關(guān)系表達(dá)
29、具體表現(xiàn)關(guān)聯(lián)關(guān)系是使用實(shí)例變量來(lái)實(shí)現(xiàn)現(xiàn)實(shí)例子比如客戶和訂單,每個(gè)訂單對(duì)應(yīng)特定的客戶,每個(gè)客戶對(duì)應(yīng)一些特定的訂單;再例如公司和員工,每個(gè)公司對(duì)應(yīng)一些特定的員工,每個(gè)員工對(duì)應(yīng)一特定的公司代碼表現(xiàn)public class Employeepublic void startWorking() public class Companyprivate Employee employee;public Employee getEmployee()return employee;public void setEmployee(Employee employee)this.employee = employee
30、;/公司運(yùn)作 public void run()employee.startWorking();類中常見(jiàn)的依賴關(guān)系表達(dá)方式依賴關(guān)系中依賴關(guān)系中flight中沒(méi)有中沒(méi)有customer屬性,因此要用屬性,因此要用其他方法查找其他方法查找coustomer。如果。如果customer是全局的(包是全局的(包含靜態(tài)方法),則含靜態(tài)方法),則flight知道他的存在。如果知道他的存在。如果coustomer作為參數(shù)傳遞到作為參數(shù)傳遞到flight的方法中,則的方法中,則flight能夠引用到它,能夠引用到它,最后,如果最后,如果customer事例化為事例化為flight方法中的本地變量,方法中的本地
31、變量,則則flight就引用到了它的存在,在依賴關(guān)系中,必須采用三就引用到了它的存在,在依賴關(guān)系中,必須采用三種方法之一種方法之一類中常見(jiàn)的關(guān)聯(lián)關(guān)系表達(dá)具體表現(xiàn) 依賴關(guān)系表現(xiàn)在局部變量,方法的參數(shù),以及對(duì)靜態(tài)方法的調(diào)用現(xiàn)實(shí)例子 比如說(shuō)你要去擰螺絲,你是不是要借助(也就是依賴)螺絲刀(Screwdriver)來(lái)幫助你完成擰螺絲(screw)的工作代碼表現(xiàn) public class Person /* 擰螺絲 */ public void screw(Screwdriver screwdriver) screwdriver.screw(); 類中常見(jiàn)的聚合關(guān)系和組合關(guān)系類中常見(jiàn)的聚合關(guān)系和組合關(guān)系
32、聚合:指的是整體與部分的關(guān)系。通常在定義一個(gè)整體類后,再去分析這個(gè)整體類的組成結(jié)構(gòu)。從而找出一些組成類,該整體類和組成類之間就形成了聚合關(guān)系。例如一個(gè)航母編隊(duì)包括??漳概?、驅(qū)護(hù)艦艇、艦載飛機(jī)及核動(dòng)力攻擊潛艇等。需求描述中“包含”、“組成”、“分為部分”等詞常意味著聚合關(guān)系。組合:也表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對(duì)象不存在,部分對(duì)象也將不存在。部分對(duì)象與整體對(duì)象之間具有共生死的關(guān)系。聚合和組合的區(qū)別在于:聚合關(guān)系是“has-a”關(guān)系,組合關(guān)系是“contains-a”關(guān)系;聚合關(guān)系表示整體與部分的關(guān)系比較弱,而組合比較強(qiáng);聚合關(guān)系中代表部分事物的對(duì)象與代表聚合事物的對(duì)象的生存期無(wú)關(guān),一旦刪除了聚合對(duì)象不一定就刪除了代表部分事物的對(duì)象。組合中一旦刪除了組合對(duì)象,同時(shí)也就刪除了代表部分事物的對(duì)象。類中常見(jiàn)的聚合關(guān)系和組合關(guān)系我們用淺顯的例子來(lái)說(shuō)明聚合和
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版三年級(jí)語(yǔ)文下冊(cè)《口語(yǔ)交際:春游去哪兒玩》示范教學(xué)課件
- 教育孩子心得體會(huì)模版
- 2024年天文知識(shí)競(jìng)賽教學(xué)總結(jié)模版
- 北魏政治和北方民族大交融教學(xué)設(shè)計(jì)
- 11《我是一只小蟲(chóng)子》(課件)
- 文博會(huì)新質(zhì)生產(chǎn)力
- 大學(xué)生職業(yè)規(guī)劃大賽《廣播電視學(xué)專業(yè)》生涯發(fā)展展示
- 餐廳管理員述職報(bào)告
- 慢性淋病的臨床護(hù)理
- 學(xué)前兒童發(fā)展 課件 第8-12章 學(xué)前兒童思維的發(fā)展-學(xué)前兒童社會(huì)性的發(fā)展
- CJJ 33-2005城鎮(zhèn)燃?xì)廨斉涔こ淌┕づc驗(yàn)收規(guī)范
- 《市場(chǎng)營(yíng)銷:網(wǎng)絡(luò)時(shí)代的超越競(jìng)爭(zhēng)》第4版 課件 第9章 通過(guò)構(gòu)建渠道網(wǎng)絡(luò)傳遞顧客價(jià)值
- 農(nóng)民工工資代付款方協(xié)議模板
- 藥物合成反應(yīng)-9合成設(shè)計(jì)原理
- 跨學(xué)科閱讀綱要智慧樹(shù)知到期末考試答案章節(jié)答案2024年山東師范大學(xué)
- 2025屆湖南省數(shù)學(xué)高一下期末學(xué)業(yè)水平測(cè)試試題含解析
- 哮病-《中醫(yī)內(nèi)科學(xué)》教案
- 《陣列式消聲器技術(shù)要求》(T-CAEPI 17-2019)
- 起重工屬具安全使用規(guī)范課件
- 社區(qū)警務(wù)工作培訓(xùn)
- 山西省眾輝公司招聘考試題庫(kù)
評(píng)論
0/150
提交評(píng)論