第5講.細(xì)化階段與領(lǐng)域模型_第1頁
第5講.細(xì)化階段與領(lǐng)域模型_第2頁
第5講.細(xì)化階段與領(lǐng)域模型_第3頁
第5講.細(xì)化階段與領(lǐng)域模型_第4頁
第5講.細(xì)化階段與領(lǐng)域模型_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-82w細(xì)化階段細(xì)化階段w領(lǐng)域模型領(lǐng)域模型n領(lǐng)域模型領(lǐng)域模型n概念類概念類n關(guān)聯(lián)關(guān)聯(lián)n屬性屬性w系統(tǒng)順序圖系統(tǒng)順序圖w契約契約上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-84w一般,細(xì)化階段由兩到四個迭代構(gòu)成;每一個迭一般,細(xì)化階段由兩到四個迭代構(gòu)成;每一個迭代持續(xù)的時間建議在兩到六周之間代持續(xù)的時間建議在兩到六周之間w該階段的主要任務(wù)包括構(gòu)建核心架構(gòu),解決高風(fēng)該階段的主要任

2、務(wù)包括構(gòu)建核心架構(gòu),解決高風(fēng)險問題,完成絕大部分需求的定義,并估計總的險問題,完成絕大部分需求的定義,并估計總的時間和資源時間和資源上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-85w保證架構(gòu),需求和計劃足夠穩(wěn)定,風(fēng)險被充分規(guī)保證架構(gòu),需求和計劃足夠穩(wěn)定,風(fēng)險被充分規(guī)避避w確定和解決項目中所有與架構(gòu)密切相關(guān)的風(fēng)險確定和解決項目中所有與架構(gòu)密切相關(guān)的風(fēng)險w從與架構(gòu)密切相關(guān)的場景中確定一個基準(zhǔn)體系架從與架構(gòu)密切相關(guān)的場景中確定一個基準(zhǔn)體系架構(gòu)構(gòu)w產(chǎn)生一個達(dá)到產(chǎn)品級質(zhì)量水準(zhǔn)的演化性原型,也產(chǎn)生一個達(dá)到產(chǎn)品級質(zhì)量水準(zhǔn)的演化性原型,也可以是一個或更多個探索型可以是一個或更多個

3、探索型拋棄型原型拋棄型原型w能夠展示基準(zhǔn)的體系架構(gòu)以合理的價格和合適的能夠展示基準(zhǔn)的體系架構(gòu)以合理的價格和合適的時間支持系統(tǒng)需求時間支持系統(tǒng)需求 w建立一個支持環(huán)境建立一個支持環(huán)境上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-86w盡快定義和驗證體系架構(gòu),并確定體系架構(gòu)基線盡快定義和驗證體系架構(gòu),并確定體系架構(gòu)基線w細(xì)化遠(yuǎn)景細(xì)化遠(yuǎn)景w為構(gòu)造階段建立詳細(xì)的迭代計劃并建立基線為構(gòu)造階段建立詳細(xì)的迭代計劃并建立基線w細(xì)化開發(fā)用例并將其部署到開發(fā)環(huán)境中細(xì)化開發(fā)用例并將其部署到開發(fā)環(huán)境中w細(xì)化體系架構(gòu)并選擇組件細(xì)化體系架構(gòu)并選擇組件上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計

4、算機科學(xué)與工程系2022-3-87w用一句話表達(dá)細(xì)化用一句話表達(dá)細(xì)化n構(gòu)造核心體系架構(gòu),解決高風(fēng)險,定義絕大部分需求,并估計構(gòu)造核心體系架構(gòu),解決高風(fēng)險,定義絕大部分需求,并估計總體計劃和資源總體計劃和資源w關(guān)鍵思想和實踐關(guān)鍵思想和實踐n實行短時間定量、風(fēng)險驅(qū)動的迭代實行短時間定量、風(fēng)險驅(qū)動的迭代n及早開始編程及早開始編程n對架構(gòu)的核心和風(fēng)險部分進(jìn)行適應(yīng)性設(shè)計,實現(xiàn)和測試對架構(gòu)的核心和風(fēng)險部分進(jìn)行適應(yīng)性設(shè)計,實現(xiàn)和測試n盡早,頻繁,實際的測試盡早,頻繁,實際的測試n基于來自測試,用戶,開發(fā)者的反饋進(jìn)行調(diào)整基于來自測試,用戶,開發(fā)者的反饋進(jìn)行調(diào)整n通過一系列討論會,詳細(xì)編寫大部分用例和其他需求,

5、每個細(xì)通過一系列討論會,詳細(xì)編寫大部分用例和其他需求,每個細(xì)化迭代舉行一次化迭代舉行一次上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-88w風(fēng)險風(fēng)險n技術(shù)復(fù)雜性技術(shù)復(fù)雜性n其他因素其他因素w覆蓋性覆蓋性n在早期迭代中,系統(tǒng)中主要的部分都有所涉及在早期迭代中,系統(tǒng)中主要的部分都有所涉及w關(guān)鍵性關(guān)鍵性n具有高業(yè)務(wù)價值的功能具有高業(yè)務(wù)價值的功能w在每個迭代前將用例和特征進(jìn)行排序在每個迭代前將用例和特征進(jìn)行排序上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-891Use cases andfeature work areallocated to a

6、niteration.Use CaseProcess Sale23. . .Features:Logging, . . .1A use case or feature isoften too complex tocomplete in one shortiteration.Therefore, different partsor scenarios must beallocated to differentiterations.Use CaseProcess Sale23. . .Use CaseProcess SaleUse CaseProcess SaleUse CaseProcess R

7、entalsFeature:Logging上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-810w對于對于NextGen POS應(yīng)用應(yīng)用n對對Process Sale用例實現(xiàn)其基本的、最關(guān)鍵的場景用例實現(xiàn)其基本的、最關(guān)鍵的場景 : entering items 和和 receiving a cash paymentn為了支持迭代中的初始化需求必須實現(xiàn)為了支持迭代中的初始化需求必須實現(xiàn)Start Up 用例用例n在該階段,并不處理那些復(fù)雜的和有趣的功能,而只在該階段,并不處理那些復(fù)雜的和有趣的功能,而只是考慮容易實現(xiàn)的場景,并通過設(shè)計和實現(xiàn)來加以支是考慮容易實現(xiàn)的場景,

8、并通過設(shè)計和實現(xiàn)來加以支持持n也不考慮外部服務(wù)的協(xié)同,比如計稅器或者產(chǎn)品數(shù)據(jù)也不考慮外部服務(wù)的協(xié)同,比如計稅器或者產(chǎn)品數(shù)據(jù)庫庫n不考慮應(yīng)用復(fù)雜的計價規(guī)則不考慮應(yīng)用復(fù)雜的計價規(guī)則上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-811w選課系統(tǒng)選課系統(tǒng)w項目的目標(biāo)是將以前的選課系統(tǒng)用新技術(shù)加以改項目的目標(biāo)是將以前的選課系統(tǒng)用新技術(shù)加以改造,使得老師和學(xué)生可以通過客戶端在線訪問造,使得老師和學(xué)生可以通過客戶端在線訪問上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-812問題問題The outdated and largely manual stud

9、ent registration process at Wylie College影響者影響者Students, professors, and College administration.造成造成A slow and costly process combined with dissatisfied students and professors.成功的解決方案成功的解決方案Improve the image of the College, attract more students, and streamline administrative registration functions

10、.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-813ForWylie College students, professors, and the course registrarWhoAttend, teach, or administer college coursesThe Course Registration SystemIs a toolThatEnables online course registration and access to course and grade informationUnlikeThe existing outdated m

11、ainframe registration systemOur productProvides up-to-date information on all courses, registrations, teachers, and grades to all users from any PC connected via the College LAN or internet.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-814上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-815PhaseNo. of IterationsStartEnd

12、Inception Phase1Week 1Week 8Elaboration Phase1Week 8Week 15Construction Phase3Week 15Week 31Transition Phase2Week 25Week 32上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-816PhaseIterationDescriptionAssociated MilestonesRisks AddressedInception PhasePreliminary IterationDefines business model, product requirem

13、ents, Software Development Plan, and business case.Business Case ReviewClarifies user requirements up front. Develops realistic Software Development Plans and scope.Determines feasibility of project from a business point of view.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-817wE1迭代將對迭代將對Release1.0中所有用例,中所有用

14、例,Release2.0中中的高風(fēng)險用例進(jìn)行分析和設(shè)計。通過開發(fā)架構(gòu)原的高風(fēng)險用例進(jìn)行分析和設(shè)計。通過開發(fā)架構(gòu)原型型 驗證驗證Release1.0所需要的架構(gòu)的可行性和性能所需要的架構(gòu)的可行性和性能wRelease 1.0計劃包含的特征計劃包含的特征:oLogon oClose Registration oRegister for Courses oInterface to Course Catalog Database oInterface to Finance System oMaintain Student Information oMaintain Professor Informat

15、ion 上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-819w依據(jù)迭代需求,確定相關(guān)的概念類依據(jù)迭代需求,確定相關(guān)的概念類w創(chuàng)建初步的領(lǐng)域模型創(chuàng)建初步的領(lǐng)域模型w為模型建立適當(dāng)?shù)膶傩耘c關(guān)聯(lián)為模型建立適當(dāng)?shù)膶傩耘c關(guān)聯(lián)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-820w領(lǐng)域模型是對真實世界中概念類的表示,而不是領(lǐng)域模型是對真實世界中概念類的表示,而不是軟件對象的表示。它不是用來描述軟件類、軟件軟件對象的表示。它不是用來描述軟件類、軟件架構(gòu)領(lǐng)域?qū)踊蛴新氊?zé)軟件對象的一組圖。架構(gòu)領(lǐng)域?qū)踊?/p>

16、有職責(zé)軟件對象的一組圖。w領(lǐng)域模型用一套類圖來表示,這些類沒有操作。領(lǐng)域模型用一套類圖來表示,這些類沒有操作。它可以顯示:它可以顯示:n領(lǐng)域?qū)ο蠡蛘吒拍铑愵I(lǐng)域?qū)ο蠡蛘吒拍铑恘概念類之間的關(guān)聯(lián)概念類之間的關(guān)聯(lián)n概念類的屬性概念類的屬性上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-821RegisterItemStoreaddressnameSaledatetimePaymentamountSalesLineItemquantityStocked-in*Houses1.*Contained-in1.*Records-sale-of0.1Paid-by11111111Ca

17、ptured-on conceptor domainobjectassociationattributes上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-822Saledatetimevisualization of a real-world concept in thedomain of interestit is a not a picture of asoftware classSalesDatabasesoftware artifact; not partof domain modelavoidsoftware class; not partof domain

18、 modelSaledatetimeprint()avoid上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-823w避免瀑布思維傾向,為完成詳盡或避免瀑布思維傾向,為完成詳盡或“正確正確”的領(lǐng)的領(lǐng)域模型而進(jìn)行大量建模工作。這些方式都應(yīng)避免,域模型而進(jìn)行大量建模工作。這些方式都應(yīng)避免,并且這種過量的建模工作反而會導(dǎo)致分析停滯,并且這種過量的建模工作反而會導(dǎo)致分析停滯,這種調(diào)查幾乎不會有什么回報。這種調(diào)查幾乎不會有什么回報。上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-824w它是一種可視化語言,傳達(dá)了真實世界中的概念它是一種可視化語言,傳達(dá)了

19、真實世界中的概念或者該領(lǐng)域中的概念類或者該領(lǐng)域中的概念類上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-825w概念類可以由符號,內(nèi)涵和它的外延來表示概念類可以由符號,內(nèi)涵和它的外延來表示n符號符號-代表概念類的詞或者圖像代表概念類的詞或者圖像n內(nèi)涵內(nèi)涵-概念類的定義概念類的定義n外延外延-概念類應(yīng)用的例子集合概念類應(yīng)用的例子集合上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-826Saledatetime概念符號“sale表示購買交易的事件,具有日期和時間”概念內(nèi)涵sale-1sale-3sale-2sale-4概念外延上海交通大學(xué)計算機科

20、學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-827w分而治之分而治之-處理復(fù)雜性的手段處理復(fù)雜性的手段w面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化分析方法的核心區(qū)別在于:面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化分析方法的核心區(qū)別在于:是由概念類(對象)分解的而不是功能分解的是由概念類(對象)分解的而不是功能分解的上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-828StoreRegisterSale上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-829w在我們所關(guān)心的領(lǐng)域,我們的目標(biāo)是針對感興趣在我們所關(guān)心的領(lǐng)域,我們的目標(biāo)是針對感興趣或者有意義的概念類建立領(lǐng)域模型或者有意

21、義的概念類建立領(lǐng)域模型w只針對目前正在設(shè)計的場景只針對目前正在設(shè)計的場景w指南指南: 對領(lǐng)域模型而言,建立較多的細(xì)粒度的概對領(lǐng)域模型而言,建立較多的細(xì)粒度的概念類要比粗略的建模來得好念類要比粗略的建模來得好w可以有沒有屬性的概念類或者僅僅擔(dān)任行為角色可以有沒有屬性的概念類或者僅僅擔(dān)任行為角色的概念類的概念類上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-830w重用和修改現(xiàn)有模型重用和修改現(xiàn)有模型w采用概念類類別列表采用概念類類別列表w確定名詞確定名詞上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-831w某些公共類別某些公共類別w例如例如n

22、物理的或者實際的對象物理的或者實際的對象n地點地點n組織組織nwSee PP.104概念類種類概念類種類例子例子Records of finance, work, contracts, legal mattersReceipt, Ledger(分類帳分類帳), ExploymentContract, MaintenaceLogFinancial instruments and servicesLineOfCredit StockManuals, documents, reference papers, booksDailyPriceChangeList, RepairManual上海交通大學(xué)計

23、算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-832w為了找到問題域中的公共詞匯,可以考慮從需求為了找到問題域中的公共詞匯,可以考慮從需求文檔中以及開發(fā)團(tuán)隊成員的知識中來找詞匯。注文檔中以及開發(fā)團(tuán)隊成員的知識中來找詞匯。注意力要放在下列方面意力要放在下列方面: n業(yè)務(wù)對象業(yè)務(wù)對象n真實世界中的對象真實世界中的對象n事件事件上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-833w在一個存貨管理的系統(tǒng)中,我們將關(guān)注庫存中的在一個存貨管理的系統(tǒng)中,我們將關(guān)注庫存中的物品以及它們的存儲位置物品以及它們的存儲位置w在該系統(tǒng)中一個事件就是將貨品放到倉庫中。對在該系統(tǒng)

24、中一個事件就是將貨品放到倉庫中。對于每一次運貨,系統(tǒng)必須記住搬運的于每一次運貨,系統(tǒng)必須記住搬運的時間時間,誰誰接接收了貨品,收了貨品,什么貨品什么貨品,每一種的,每一種的數(shù)量數(shù)量有多少有多少上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-834w對于對于Process Sale的簡化情形的簡化情形nRegister Product SpecificationnItem SalesLineItemnStore CashiernSale CustomernPayment ManagernProductCatalog上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工

25、程系2022-3-835w收據(jù)是一次銷售的報告。但是它顯示的信息實際收據(jù)是一次銷售的報告。但是它顯示的信息實際上已經(jīng)存在了,這是我們可以排除它的理由。上已經(jīng)存在了,這是我們可以排除它的理由。w但是收據(jù)又有特殊的作用,在我們退貨時,我們但是收據(jù)又有特殊的作用,在我們退貨時,我們需要收據(jù)作為憑據(jù)需要收據(jù)作為憑據(jù)w因此,是否需要將依據(jù)你考慮的是哪一個用例來因此,是否需要將依據(jù)你考慮的是哪一個用例來定定上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-836w采用概念類目錄列表和從需求中采用名詞識別法采用概念類目錄列表和從需求中采用名詞識別法將所有的備選概念類列出將所有的備選概

26、念類列出w在那些需要將關(guān)系信息保存的地方添加關(guān)聯(lián)在那些需要將關(guān)系信息保存的地方添加關(guān)聯(lián)w依據(jù)信息需求添加必要的屬性依據(jù)信息需求添加必要的屬性上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-837w采用實際地名采用實際地名w將無關(guān)的特征去掉將無關(guān)的特征去掉w不要添加不存在的東西不要添加不存在的東西上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-838w一個通常會犯的錯誤一個通常會犯的錯誤w如果我們不是將概念類如果我們不是將概念類X僅僅看作是實際生活中僅僅看作是實際生活中的數(shù)字或者文字,的數(shù)字或者文字,X就可能是概念類,而不是屬就可能是概念類,而

27、不是屬性性SaleStorephoneNumberSalestoreor. ?FlightAirportnameFlightdestinationor. ?如果有疑問,可以將它列為概念類上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-839w在我們的生活中經(jīng)常用相近的概念來表示同一件在我們的生活中經(jīng)常用相近的概念來表示同一件事情事情POSTRegisteror?similar concepts withdifferent namesSaleRecords 1*SaleRecords 1*選哪一個?上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3

28、-840wPOST 從某種角度上看,是一個面向?qū)崿F(xiàn)的概念,從某種角度上看,是一個面向?qū)崿F(xiàn)的概念,所以它不合適,但是它有助于我們之間的交流所以它不合適,但是它有助于我們之間的交流wRegister 是各種終端的抽象,無論是是各種終端的抽象,無論是POST還是還是人手工人手工.w所以它的選擇依據(jù)于所以它的選擇依據(jù)于.w你的選擇你的選擇上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-841w許多事物是人工的,也就是說,它們是被造出來許多事物是人工的,也就是說,它們是被造出來的的w為了對它們建模,我們需要更多的抽象為了對它們建模,我們需要更多的抽象w例如例如n電信電信: Me

29、ssage, Connection, Port, Dialog, Route, Protocoln中間件中間件: Service, Transaction上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-842w為什么為什么?n真實的世界真實的世界 軟件世界軟件世界w例子例子n在一個商店中在一個商店中, 每一個商品都有價格每一個商品都有價格, 描述和其他屬性描述和其他屬性n如果我們?yōu)槊恳粋€商品創(chuàng)建一個包含所有信息的對象如果我們?yōu)槊恳粋€商品創(chuàng)建一個包含所有信息的對象不必要的冗余不必要的冗余刪除商品對象意味著丟失所有信息刪除商品對象意味著丟失所有信息上海交通大學(xué)計算機科學(xué)與

30、工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-843w創(chuàng)建單獨的說明性或者描述性類創(chuàng)建單獨的說明性或者描述性類Itemdescriptionpriceserial numberitemIDProductSpecificationdescriptionpriceitemIDItemserial numberDescribesBetterWorse1*上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-844w描述性概念類描述性概念類建模指南建模指南n無論目前是否存在實際的商品或者服務(wù)實例,總是存無論目前是否存在實際的商品或者服務(wù)實例,總是存在商品或者服務(wù)的描述在商品或者

31、服務(wù)的描述n如果把信息和刪除的東西不正確的關(guān)聯(lián)起來,刪除這如果把信息和刪除的東西不正確的關(guān)聯(lián)起來,刪除這些東西后就會丟失這些信息些東西后就會丟失這些信息n通過描述性概念類減少了冗余信息或者復(fù)制的信息通過描述性概念類減少了冗余信息或者復(fù)制的信息上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-845w描述性類可以加在描述性類可以加在n商品商品n產(chǎn)品產(chǎn)品n服務(wù)服務(wù)n上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-846w取消某個航班并取消某個航班并不丟失航班信息不丟失航班信息WorseFlightdatetimeFlightDescriptionn

32、umberAirportnameDescribes-flights-toDescribed-byFlightdatenumbertimeAirportnameFlies-toBetter1*1*1*上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-847wUML 是用來表示各種基本圖的語言是用來表示各種基本圖的語言.wUML 可以用于可以用于n核心或者概念視圖核心或者概念視圖n描述視圖描述視圖n實現(xiàn)視圖實現(xiàn)視圖上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-848PaymentamountSaledatetimePays-forPaymenta

33、mount: MoneygetBalance(): Money. . .Saledate: DatestartTime: TimegetTotal(): Money. . .Pays-forUP Domain ModelRaw UML class diagramnotation used in anessential modelvisualizing real-worldconcepts.UP Design ModelRaw UML class diagramnotation used in aspecification modelvisualizing softwarecomponents.

34、1111上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-849w與類相關(guān)的術(shù)語與類相關(guān)的術(shù)語n概念類概念類n軟件類軟件類n設(shè)計類設(shè)計類n實現(xiàn)類實現(xiàn)類n類類上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-850PaymentamountSaledatetimePays-forPaymentamount: MoneygetBalance(): MoneySaledate: DatestartTime: TimegetTotal(): Money. . .Pays-forUP Domain ModelStakeholders view of the

35、 noteworthy concepts in the domain.UP Design ModelThe object-oriented developer has taken inspiration from the real world domainin creating software classes.Therefore, the representational gap between how stakeholders conceive thedomain, and its representation in software, has been lowered.1111inspi

36、resobjectsandnames in上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-851wNextGen POS初步的領(lǐng)域模型初步的領(lǐng)域模型StoreRegisterSaleItemPaymentSalesLineItemCashierCustomerManagerProductCatalogProductSpecification上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-852w初始化階段一般不建議構(gòu)造領(lǐng)域模型初始化階段一般不建議構(gòu)造領(lǐng)域模型w領(lǐng)域模型主要是在細(xì)化階段的迭代中構(gòu)建的,此領(lǐng)域模型主要是在細(xì)化階段的迭代中構(gòu)建的,此

37、時我們需要理解重要的概念,并把某些在設(shè)計中時我們需要理解重要的概念,并把某些在設(shè)計中映射為軟件類映射為軟件類上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-853w業(yè)務(wù)對象模型業(yè)務(wù)對象模型-描述整個業(yè)務(wù)的企業(yè)模型,用以描述整個業(yè)務(wù)的企業(yè)模型,用以支持業(yè)務(wù)過程重組或者再工程支持業(yè)務(wù)過程重組或者再工程w領(lǐng)域模型只是業(yè)務(wù)對象模型的一個子集領(lǐng)域模型只是業(yè)務(wù)對象模型的一個子集上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-854GlossarySoftwareArchitecture Doc.DomainModelRequirementsProject

38、ManagementBusinessModelingDesignSample UP ArtifactsPartial artifacts,refined in eachiteration.TestTestPlanSoftwareDev. Plan. . .Use-Case Modeltextusecases:Systemfoo( x )systemoperationcontractssystemsequencediagramsterms, conceptsattributes,associationsstate changes indomain objects,attributes,assoc

39、iationselaboration ofsome terms inthe domainmodelsoftware classes inthe domain layer ofthe design takeinspiration from thenames, attributes,and associations inthe domain modelbar( y )usecasediagrams*Design ModelEnvironmentDevelopmentCase上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系202

40、2-3-856w在領(lǐng)域模型中識別關(guān)聯(lián)在領(lǐng)域模型中識別關(guān)聯(lián)w區(qū)別那些必須知道的關(guān)聯(lián)和僅僅為了理解的關(guān)聯(lián)區(qū)別那些必須知道的關(guān)聯(lián)和僅僅為了理解的關(guān)聯(lián)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-857w關(guān)聯(lián)時類型(更精確地說,是這些類的實例)之關(guān)聯(lián)時類型(更精確地說,是這些類的實例)之間的關(guān)系,表示有意義和值得關(guān)注的連接間的關(guān)系,表示有意義和值得關(guān)注的連接SaleRegisterRecords-current11association上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-858w世界萬物都是相關(guān)的世界萬物都是相關(guān)的w如果我們有如果我們有

41、n 個類,將會有個類,將會有n(n-1)個關(guān)聯(lián)個關(guān)聯(lián)w我們只添加那些我們只添加那些:n如果存在需要保持一段時間的關(guān)系,將這種語義表示如果存在需要保持一段時間的關(guān)系,將這種語義表示為關(guān)聯(lián)(為關(guān)聯(lián)(“需要記住需要記住”的關(guān)聯(lián))的關(guān)聯(lián))n可以從常見關(guān)聯(lián)列表中派生的關(guān)聯(lián)可以從常見關(guān)聯(lián)列表中派生的關(guān)聯(lián)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-859SaleRegisterRecords-current 11association namemultiplicity-閱讀方向箭頭-沒有其他含義,只是表示閱讀關(guān)聯(lián)標(biāo)記的方向-通常省略上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算

42、機科學(xué)與工程系2022-3-860w關(guān)聯(lián)可以是單向的,也可以是雙向的關(guān)聯(lián)可以是單向的,也可以是雙向的w給定一個訂單,我們可以找到與該訂單相關(guān)的客戶,相給定一個訂單,我們可以找到與該訂單相關(guān)的客戶,相反如果給定一個客戶,不能夠找到訂單反如果給定一個客戶,不能夠找到訂單OrderCustomer*1上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-861w關(guān)聯(lián)的每一端稱為一個角色關(guān)聯(lián)的每一端稱為一個角色對象類對象類限定符關(guān)聯(lián)對象類多重性角色名:類限定符角色名:類多重性關(guān)聯(lián)名nameMultiplicity expressionnavigability上海交通大學(xué)計算機科學(xué)與

43、工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-862w多重性多重性Multiplicity 定義了類定義了類A有多少實例可以和有多少實例可以和類類B的一個實例關(guān)聯(lián)的一個實例關(guān)聯(lián)ItemStoreStocks*multiplicity of the role1上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-863zero or more;manyone or moreone to 40exactly 5TTTT*1.*1.405T3, 5, 8exactly 3, 5, or 8上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-864w多重性

44、的指標(biāo)是在特定的時刻(而不是在某個時多重性的指標(biāo)是在特定的時刻(而不是在某個時間跨度內(nèi))有效關(guān)聯(lián)的實例數(shù)量。間跨度內(nèi))有效關(guān)聯(lián)的實例數(shù)量。w如何定義多重性的值如何定義多重性的值?ItemStoreStocks 1or 0.1*上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-865StoreContainsPersonAirlineEmploys1.*SaleRegisterCaptures1.*1.*PaymentPaid-by1FlightAssigned-toPlane*Assigned-to*Supervises*1111111上海交通大學(xué)計算機科學(xué)與工程系上海

45、交通大學(xué)計算機科學(xué)與工程系2022-3-866w常見關(guān)聯(lián)表常見關(guān)聯(lián)表nPhysical part ofnLogical part ofnMember of nw高優(yōu)先級的關(guān)聯(lián)高優(yōu)先級的關(guān)聯(lián)nA is a physical or logical part of BnA is physically or logically contained in/on BnA is recorded in B上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-867w關(guān)注那些需要保持一段時間的關(guān)聯(lián)關(guān)注那些需要保持一段時間的關(guān)聯(lián)w發(fā)現(xiàn)概念類比發(fā)現(xiàn)關(guān)聯(lián)更重要發(fā)現(xiàn)概念類比發(fā)現(xiàn)關(guān)聯(lián)更重要w太多的關(guān)

46、聯(lián)太多的關(guān)聯(lián)將會使領(lǐng)域模型變得混亂,而找出這將會使領(lǐng)域模型變得混亂,而找出這些關(guān)聯(lián)需要消耗太多時間,效益卻不大些關(guān)聯(lián)需要消耗太多時間,效益卻不大w避免顯示冗余的或者可派生的關(guān)聯(lián)避免顯示冗余的或者可派生的關(guān)聯(lián)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-868w確定概念類比找到關(guān)聯(lián)更重要確定概念類比找到關(guān)聯(lián)更重要. w領(lǐng)域模型構(gòu)建時,主要的時間要花在確定概念類領(lǐng)域模型構(gòu)建時,主要的時間要花在確定概念類上,而不是找關(guān)聯(lián)上上,而不是找關(guān)聯(lián)上上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-869w在領(lǐng)域建模時,關(guān)聯(lián)只是針對現(xiàn)實領(lǐng)域從純概念在領(lǐng)域建模

47、時,關(guān)聯(lián)只是針對現(xiàn)實領(lǐng)域從純概念角度看有意義的關(guān)系角度看有意義的關(guān)系w并不需要實現(xiàn)并不需要實現(xiàn)wOrw我們后面可以發(fā)現(xiàn)在領(lǐng)域建模時丟失,而需要實我們后面可以發(fā)現(xiàn)在領(lǐng)域建模時丟失,而需要實現(xiàn)的關(guān)聯(lián)現(xiàn)的關(guān)聯(lián) 上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-870w在商店中需要記住的關(guān)系在商店中需要記住的關(guān)系nRegister Records SalenSale Paid-by PaymentnProductCatalog Records ProductSpecificationw運用關(guān)聯(lián)類別檢查表運用關(guān)聯(lián)類別檢查表nA is a physical part of B: R

48、egister-CashDrawernA is a logical part of B: SalesLineItem-Salen上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-871RegisterItemStoreSalePaymentSalesLineItemCashierCustomerManagerProductCatalogProductSpecificationStocks*Houses1.*Used-by*Contains1.*Describes*Captured-onContained-in1.*Described-by*Records-sale-of

49、0.1Started-byPaid-byInitiated-byLogs-completed* Records-sales-on111111.*111111111111Initiated-by11Emphasize need-to-know associations, but add choice comprehension-only associations to enrich critical understanding of the domain.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-873w

50、確定領(lǐng)域模型中的屬性確定領(lǐng)域模型中的屬性w區(qū)別正確的和不正確的屬性區(qū)別正確的和不正確的屬性上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-874w屬性是對象的邏輯數(shù)據(jù)值屬性是對象的邏輯數(shù)據(jù)值w將下列屬性包含在領(lǐng)域模型中:當(dāng)需求(例如用將下列屬性包含在領(lǐng)域模型中:當(dāng)需求(例如用例)建議或暗示需要記住信息時,引入屬性例)建議或暗示需要記住信息時,引入屬性上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-875SaledatestartTime : Timeattributes上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-

51、876w保持屬性類型的簡單性保持屬性類型的簡單性CashiernamecurrentRegisterCashiernameRegisternumberUsesWorseBetternot a simple attribute11FlightFlightdestinationWorseBetterFlies-toAirport11destination is a complexconcept通過關(guān)聯(lián)而不是屬性來表示概念類之間的關(guān)系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-877wPrimitive Types (number, string)wNon-primit

52、ive data type (phone number)w如果它能夠自然地表示為數(shù)值,字符串,布爾量,日期,如果它能夠自然地表示為數(shù)值,字符串,布爾量,日期,或者時間,那么它就是一個屬性,否則將它表示為一個或者時間,那么它就是一個屬性,否則將它表示為一個單獨的概念類單獨的概念類nIt is composed of separate sectionsnThere are operations usually associated with it, such as parsing or validationnIt has other attributesnIt is a quantity with

53、 a unitnIt is an abstraction of one or more type with some of these qualities上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-878w在商品識別中,有各種編碼系統(tǒng)在商品識別中,有各種編碼系統(tǒng) (包括包括 UPC-A, UPC-E, 以及以及EAN 系統(tǒng)家族系統(tǒng)家族)w它攜帶有信息表示制造商,產(chǎn)品,國家和加和驗它攜帶有信息表示制造商,產(chǎn)品,國家和加和驗證碼證碼w它可以定義為一個非原子的它可以定義為一個非原子的ItemID類類w是否一定要這么做呢是否一定要這么做呢?上海交通大學(xué)計算機科學(xué)與工程系上

54、海交通大學(xué)計算機科學(xué)與工程系2022-3-879OKOKItemIDProductSpecificationProductSpecificationid : ItemID1AddressStoreStoreaddress : Address111領(lǐng)域模型是一種溝通工具,確定采用哪種解決方式都要考慮到這一點上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-880w可以用很多方法表示對象之間的關(guān)系,外鍵就是可以用很多方法表示對象之間的關(guān)系,外鍵就是其中一種方法,我們將推遲到設(shè)計后再決定如何其中一種方法,我們將推遲到設(shè)計后再決定如何實現(xiàn)對象關(guān)系,以避免設(shè)計蠕變實現(xiàn)對象關(guān)系,以

55、避免設(shè)計蠕變 design creep.CashiernamecurrentRegisterCashiernameRegisternumberUsesWorseBetternot a simple attribute11上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-881RegisterItemStoreaddress : Addressname : TextSaledate : Datetime : TimePaymentamount : MoneySalesLineItemquantity : IntegerCashierCustomerManagerProdu

56、ctCatalogProductSpecificationdescription : Textprice : Moneyid: ItemID上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-882SalesLineItemItemRecords-sale-of10.1SalesLineItemItemRecords-sale-of0.11.*Each line item records aseparate item sale.For example, 1 tofu package.Each line item can record agroup of the same

57、kind of items.For example, 6 tofu packages.SalesLineItem/quantityItemRecords-sale-of0.11.*derived attribute fromthe multiplicity valuesolidas上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-883w有效的領(lǐng)域模型捕獲了當(dāng)前需求情形下的本質(zhì)抽有效的領(lǐng)域模型捕獲了當(dāng)前需求情形下的本質(zhì)抽象和理解該領(lǐng)域所需要的信息,并且可以有助于象和理解該領(lǐng)域所需要的信息,并且可以有助于人們理解領(lǐng)域的概念、術(shù)語和關(guān)系人們理解領(lǐng)域的概念、術(shù)語和關(guān)系w沒有單

58、一正確的答案沒有單一正確的答案上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-885w對用例建模需要更多的調(diào)研對用例建模需要更多的調(diào)研w確定系統(tǒng)事件為用例場景創(chuàng)建系統(tǒng)順序圖確定系統(tǒng)事件為用例場景創(chuàng)建系統(tǒng)順序圖w工具:工具:UML 順序圖順序圖n順序圖描述了對象之間的交互模式,并按照時間順序順序圖描述了對象之間的交互模式,并按照時間順序排列;它通過生命線顯示了參與交互的對象以及相互排列;它通過生命線顯示了參與交互的對象以及相互間發(fā)送的消息間發(fā)送的消息上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2

59、022-3-886w表述系統(tǒng)是什么,而不解釋它是如何做的表述系統(tǒng)是什么,而不解釋它是如何做的w將系統(tǒng)作為黑盒子將系統(tǒng)作為黑盒子w系統(tǒng)順序圖系統(tǒng)順序圖n它展示了對一個特定的用例,外部的參與者產(chǎn)生的事它展示了對一個特定的用例,外部的參與者產(chǎn)生的事件,它們的順序以及系統(tǒng)內(nèi)的事件件,它們的順序以及系統(tǒng)內(nèi)的事件上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2022-3-887enterItem(itemID, quantity):System: CashierendSale()makePayment(amount)box may enlose aniteration areathe * .

60、 is an iterationmarker and clauseindicating the box is foriterationexternal actor tosystemProcess Sale Scenariosystem as black boxthe name could be NextGenPOS but System keeps it simplethe : and underline imply an instance, and are explained in alater chapter on sequence diagram notation in the UMLa mes

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論