【正文】
?在領域模型中識別關聯(lián) ?區(qū)別那些必須知道的關聯(lián)和僅僅為了理解的關聯(lián) 上海交通大學計算機科學與工程系 2022/8/17 57 什么是關聯(lián) ? ?關聯(lián)時類型(更精確地說,是這些類的實例)之間的關系,表示有意義和值得關注的連接 S a l eRe g i s t e rRe c o r d s c u r r e n t1 1a s s o c i a t i o n上海交通大學計算機科學與工程系 2022/8/17 58 ?世界萬物都是相關的 ?如果我們有 n 個類,將會有 n(n1)個關聯(lián) ?我們只添加那些 : ? 如果存在需要保持一段時間的關系,將這種語義表示為關聯(lián)(“需要記住”的關聯(lián)) ? 可以從常見關聯(lián)列表中派生的關聯(lián) 上海交通大學計算機科學與工程系 2022/8/17 59 表示法 Sale Register Recordscurrent ? 1 1 association name multiplicity 閱讀方向箭頭 沒有其他含義,只是表示閱讀關聯(lián)標記的方向 通常省略 上海交通大學計算機科學與工程系 2022/8/17 60 關聯(lián)的方向 ? 關聯(lián)可以是單向的,也可以是雙向的 ? 給定一個訂單,我們可以找到與該訂單相關的客戶,相反如果給定一個客戶,不能夠找到訂單 Order Customer * 1 上海交通大學計算機科學與工程系 2022/8/17 61 角色 ?關聯(lián)的每一端稱為一個角色 對象類 對象類 限定符 關聯(lián) 對象類 多重性 角色名:類 限定符 角色名:類 多重性 關聯(lián)名 name Multiplicity expression navigability 上海交通大學計算機科學與工程系 2022/8/17 62 多重性 ?多重性 Multiplicity 定義了類 A有多少實例可以和類 B的一個實例關聯(lián) I t emS t or eS t oc k s*m u l t i pl i c i t y o f t h e r o l e1上海交通大學計算機科學與工程系 2022/8/17 63 zero or more。領域模型 ? UML 是用來表示各種基本圖的語言 . ? UML 可以用于 ? 核心或者概念視圖 ? 描述視圖 ? 實現(xiàn)視圖 上海交通大學計算機科學與工程系 2022/8/17 48 P a y m e n ta m ou n tS a l ed a t et i m eP a y s f o rP a y m e n ta m ou n t : M on e yg e t B a l a n c e ( ) : M o n e y. . .S a l ed a t e: D a t es t a r t T i m e : T i m eg e t T o t a l ( ) : M on e y. . .P a y s f o rU P D o m a i n M o d e lR a w U M L c l a s s d i a g r a mn o t at i on u s e d i n a ne s s e n t i a l m o de lv i s ua l i z i n g r e a l w o r l dc o n c e p t s .U P D e s i g n M o d e lR a w U M L c l a s s d i a g r a mn o t at i on u s e d i n as p e c i f i c a t i o n m o d elv i s ua l i z i n g s o f t w a r ec o m p on e n t s .1 111上海交通大學計算機科學與工程系 2022/8/17 49 ?與類相關的術語 ? 概念類 ? 軟件類 ? 設計類 ? 實現(xiàn)類 ? 類 上海交通大學計算機科學與工程系 2022/8/17 50 降低表示鴻溝 Payment amount Sale date time Paysfor Payment amount: Money getBalance(): Money Sale date: Date startTime: Time getTotal(): Money . . . Paysfor UP Domain Model Stakeholder39。但是它顯示的信息實際上已經(jīng)存在了,這是我們可以排除它的理由。注意力要放在下列方面 : ? 業(yè)務對象 ? 真實世界中的對象 ? 事件 上海交通大學計算機科學與工程系 2022/8/17 33 ?在一個存貨管理的系統(tǒng)中,我們將關注庫存中的物品以及它們的存儲位置 ?在該系統(tǒng)中一個事件就是將貨品放到倉庫中。這些方式都應避免,并且這種過量的建模工作反而會導致分析停滯,這種調(diào)查幾乎不會有什么回報。 n o t p a r to f d o m a i n m od e lavoids o f t w a r e c l a s s 。 ?領域模型用一套類圖來表示,這些類沒有操作。通過開發(fā)架構(gòu)原型 驗證 ? Release : ? Logon ? Close Registration ? Register for Courses ? Interface to Course Catalog Database ? Interface to Finance System ? Maintain Student Information ? Maintain Professor Information 上海交通大學計算機科學與工程系 (第 9章) 上海交通大學計算機科學與工程系 2022/8/17 19 ?依據(jù)迭代需求,確定相關的概念類 ?創(chuàng)建初步的領域模型 ?為模型建立適當?shù)膶傩耘c關聯(lián) 上海交通大學計算機科學與工程系 2022/8/17 20 什么是領域模型 ?領域模型是對真實世界中概念類的表示,而不是軟件對象的表示。上海交通大學計算機科學與工程系 第 5講 . 細化階段與領域模型 上海交通大學計算機科學與工程系 2022/8/17 2 內(nèi)容提要 ?細化階段 ?領域模型 ? 領域模型 ? 概念類 ? 關聯(lián) ? 屬性 ?系統(tǒng)順序圖 ?契約 上海交通大學計算機科學與工程系 1. 細化階段 上海交通大學計算機科學與工程系 2022/8/17 4 ?一般,細化階段由兩到四個迭代構(gòu)成;每一個迭代持續(xù)的時間建議在兩到六周之間 ?該階段的主要任務包括構(gòu)建核心架構(gòu),解決高風險問題,完成絕大部分需求的定義,并估計總的時間和資源 上海交通大學計算機科學與工程系 2022/8/17 5 ?保證架構(gòu),需求和計劃足夠穩(wěn)定,風險被充分規(guī)避 ?確定和解決項目中所有與架構(gòu)密切相關的風險 ?從與架構(gòu)密切相關的場景中確定一個基準體系架構(gòu) ?產(chǎn)生一個達到產(chǎn)品級質(zhì)量水準的演化性原型,也可以是一個或更多個探索型 \拋棄型原型 ?能夠展示基準的體系架構(gòu)以合理的價格和合適的時間支持系統(tǒng)需求 ?建立一個支持環(huán)境 上海交通大學計算機科學與工程系 2022/8/17 6 ?盡快定義和驗證體系架構(gòu),并確定體系架構(gòu)基線 ?細化遠景 ?為構(gòu)造階段建立詳細的迭代計劃并建立基線 ?細化開發(fā)用例并將其部署到開發(fā)環(huán)境中 ?細化體系架構(gòu)并選擇組件 上海交通大學計算機科學與工程系 2022/8/17 7 定義 ? 用一句話表達細化 ? 構(gòu)造核心體系架構(gòu),解決高風險,定義絕大部分需求,并估計總體計劃和資源 ? 關鍵思想和實踐 ? 實行短時間定量、風險驅(qū)動的迭代 ? 及早開始編程 ? 對架構(gòu)的核心和風險部分進行適應性設計,實現(xiàn)和測試 ? 盡早,頻繁,實際的測試 ? 基于來自測試,用戶,開發(fā)者的反饋進行調(diào)整 ? 通過一系列討論會,詳細編寫大部分用例和其他需求,每個細化迭代舉行一次 上海交通大學計算機科學與工程系 2022/8/17 8 對下一輪迭代進行計劃 ?風險 ? 技術復雜性 ? 其他因素 ?覆蓋性 ? 在早期迭代中,系統(tǒng)中主要的部分都有所涉及 ?關鍵性 ? 具有高業(yè)務價值的功能 ?在每個迭代前將用例和特征進行排序 上海交通大學計算機科學與工程系 2022/8/17 9 用例 amp。 迭代 1U s e c a s e s a n df e a t u r e w o r k a r ea l l o c a t e d t o a ni t e r a t i o n .U s e C a s eP r o c e s s S a l e2 3 . . .F e a t u r e s :L o g g i n g , . . .1 A use case or feature is often too plex to plete in one short iteration. Therefore, different parts or scenarios must be allocated to different iterations. Use Case Process Sale 2 3 . . . Use Case Process Sale Use Case Process Sale Use Case Process Rentals Feature: Logging 上海交通大學計算機科學與工程系 2022/8/17 10 案例 1: POS 應用 迭代 1 ?對于 NextGen POS應用 ? 對 Process Sale用例實現(xiàn)其基本的、最關鍵的場景 : entering items 和 receiving a cash payment ? 為了支持迭代中的初始化需求必須實現(xiàn) Start Up 用例 ? 在該階段,并不處理那些復雜的和有趣的功能,而只是考慮容易實現(xiàn)的場景,并通過設計和實現(xiàn)來加以支持 ? 也不考慮外部服務的協(xié)同,比如計稅器或者產(chǎn)品數(shù)據(jù)庫 ? 不考慮