面向?qū)ο蠓治龊驮O(shè)計講座5.細(xì)化階段_第1頁
面向?qū)ο蠓治龊驮O(shè)計講座5.細(xì)化階段_第2頁
面向?qū)ο蠓治龊驮O(shè)計講座5.細(xì)化階段_第3頁
面向?qū)ο蠓治龊驮O(shè)計講座5.細(xì)化階段_第4頁
面向?qū)ο蠓治龊驮O(shè)計講座5.細(xì)化階段_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5講.細(xì)化階段與領(lǐng)域模型內(nèi)容提要細(xì)化階段領(lǐng)域模型領(lǐng)域模型概念類關(guān)聯(lián)屬性系統(tǒng)順序圖契約9/28/202321.細(xì)化階段1.1概述一般,細(xì)化階段由兩到四個迭代構(gòu)成;每一個迭代持續(xù)的時間建議在兩到六周之間該階段的主要任務(wù)包括構(gòu)建核心架構(gòu),解決高風(fēng)險問題,完成絕大部分需求的定義,并估計總的時間和資源9/28/202341.2目標(biāo)保證架構(gòu),需求和計劃足夠穩(wěn)定,風(fēng)險被充分規(guī)避確定和解決項目中所有與架構(gòu)密切相關(guān)的風(fēng)險從與架構(gòu)密切相關(guān)的場景中確定一個基準(zhǔn)體系架構(gòu)產(chǎn)生一個達(dá)到產(chǎn)品級質(zhì)量水準(zhǔn)的演化性原型,也可以是一個或更多個探索型\拋棄型原型能夠展示基準(zhǔn)的體系架構(gòu)以合理的價格和合適的時間支持系統(tǒng)需求

建立一個支持環(huán)境9/28/202351.3核心活動盡快定義和驗證體系架構(gòu),并確定體系架構(gòu)基線細(xì)化遠(yuǎn)景為構(gòu)造階段建立詳細(xì)的迭代計劃并建立基線細(xì)化開發(fā)用例并將其部署到開發(fā)環(huán)境中細(xì)化體系架構(gòu)并選擇組件9/28/202361.4定義用一句話表達(dá)細(xì)化構(gòu)造核心體系架構(gòu),解決高風(fēng)險,定義絕大部分需求,并估計總體計劃和資源關(guān)鍵思想和實踐實行短時間定量、風(fēng)險驅(qū)動的迭代及早開始編程對架構(gòu)的核心和風(fēng)險部分進(jìn)行適應(yīng)性設(shè)計,實現(xiàn)和測試盡早,頻繁,實際的測試基于來自測試,用戶,開發(fā)者的反饋進(jìn)行調(diào)整通過一系列討論會,詳細(xì)編寫大部分用例和其他需求,每個細(xì)化迭代舉行一次9/28/202371.5對下一輪迭代進(jìn)行計劃風(fēng)險技術(shù)復(fù)雜性其他因素覆蓋性在早期迭代中,系統(tǒng)中主要的部分都有所涉及關(guān)鍵性具有高業(yè)務(wù)價值的功能在每個迭代前將用例和特征進(jìn)行排序9/28/20238用例&迭代1Ausecaseorfeatureisoftentoocomplextocompleteinoneshortiteration.Therefore,differentpartsorscenariosmustbeallocatedtodifferentiterations.UseCaseProcessSale23...UseCaseProcessSaleUseCaseProcessSaleUseCaseProcessRentalsFeature:Logging9/28/20239案例1:POS應(yīng)用-迭代1

對于NextGenPOS應(yīng)用對ProcessSale用例實現(xiàn)其基本的、最關(guān)鍵的場景:enteringitems和receivingacashpayment為了支持迭代中的初始化需求必須實現(xiàn)StartUp用例在該階段,并不處理那些復(fù)雜的和有趣的功能,而只是考慮容易實現(xiàn)的場景,并通過設(shè)計和實現(xiàn)來加以支持也不考慮外部服務(wù)的協(xié)同,比如計稅器或者產(chǎn)品數(shù)據(jù)庫不考慮應(yīng)用復(fù)雜的計價規(guī)則9/28/202310案例2選課系統(tǒng)項目的目標(biāo)是將以前的選課系統(tǒng)用新技術(shù)加以改造,使得老師和學(xué)生可以通過客戶端在線訪問9/28/202311問題描述問題TheoutdatedandlargelymanualstudentregistrationprocessatWylieCollege影響者Students,professors,andCollegeadministration.造成Aslowandcostlyprocesscombinedwithdissatisfiedstudentsandprofessors.成功的解決方案ImprovetheimageoftheCollege,attractmorestudents,andstreamlineadministrativeregistrationfunctions.9/28/202312產(chǎn)品定位描述ForWylieCollegestudents,professors,andthecourseregistrarWhoAttend,teach,oradministercollegecoursesTheCourseRegistrationSystemIsatoolThatEnablesonlinecourseregistrationandaccesstocourseandgradeinformationUnlikeTheexistingoutdatedmainframeregistrationsystemOurproductProvidesup-to-dateinformationonallcourses,registrations,teachers,andgradestoallusersfromanyPCconnectedviatheCollegeLANorinternet.9/28/2023139/28/202314PhaseNo.ofIterationsStartEndInceptionPhase1Week1Week8ElaborationPhase1Week8Week15ConstructionPhase3Week15Week31TransitionPhase2Week25Week329/28/202315PhaseIterationDescriptionAssociatedMilestonesRisksAddressedInceptionPhasePreliminaryIterationDefinesbusinessmodel,productrequirements,SoftwareDevelopmentPlan,andbusinesscase.BusinessCaseReviewClarifiesuserrequirementsupfront.DevelopsrealisticSoftwareDevelopmentPlansandscope.Determinesfeasibilityofprojectfromabusinesspointofview.9/28/202316E1迭代將對Release1.0中所有用例,Release2.0中的高風(fēng)險用例進(jìn)行分析和設(shè)計。通過開發(fā)架構(gòu)原型驗證Release1.0所需要的架構(gòu)的可行性和性能Release1.0計劃包含的特征:LogonCloseRegistrationRegisterforCoursesInterfacetoCourseCatalogDatabaseInterfacetoFinanceSystemMaintainStudentInformationMaintainProfessorInformation9/28/2023173.領(lǐng)域模型

(第9章)3.1目標(biāo)依據(jù)迭代需求,確定相關(guān)的概念類創(chuàng)建初步的領(lǐng)域模型為模型建立適當(dāng)?shù)膶傩耘c關(guān)聯(lián)9/28/2023193.2什么是領(lǐng)域模型領(lǐng)域模型是對真實世界中概念類的表示,而不是軟件對象的表示。它不是用來描述軟件類、軟件架構(gòu)領(lǐng)域?qū)踊蛴新氊?zé)軟件對象的一組圖。領(lǐng)域模型用一套類圖來表示,這些類沒有操作。它可以顯示:領(lǐng)域?qū)ο蠡蛘吒拍铑惛拍铑愔g的關(guān)聯(lián)概念類的屬性9/28/202320可視化字典9/28/2023219/28/202322避免瀑布思維傾向,為完成詳盡或“正確”的領(lǐng)域模型而進(jìn)行大量建模工作。這些方式都應(yīng)避免,并且這種過量的建模工作反而會導(dǎo)致分析停滯,這種調(diào)查幾乎不會有什么回報。9/28/2023233.3為什么需要領(lǐng)域模型它是一種可視化語言,傳達(dá)了真實世界中的概念或者該領(lǐng)域中的概念類9/28/2023243.4概念類概念類可以由符號,內(nèi)涵和它的外延來表示符號-代表概念類的詞或者圖像內(nèi)涵-概念類的定義外延-概念類應(yīng)用的例子集合9/28/202325Saledatetime概念符號“sale表示購買交易的事件,具有日期和時間”概念內(nèi)涵sale-1sale-3sale-2sale-4概念外延9/28/202326領(lǐng)域模型和分解分而治之-處理復(fù)雜性的手段面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化分析方法的核心區(qū)別在于:是由概念類(對象)分解的而不是功能分解的9/28/202327銷售領(lǐng)域的概念類StoreRegisterSale9/28/202328識別概念類在我們所關(guān)心的領(lǐng)域,我們的目標(biāo)是針對感興趣或者有意義的概念類建立領(lǐng)域模型只針對目前正在設(shè)計的場景指南:對領(lǐng)域模型而言,建立較多的細(xì)粒度的概念類要比粗略的建模來得好可以有沒有屬性的概念類或者僅僅擔(dān)任行為角色的概念類9/28/202329識別概念類的策略重用和修改現(xiàn)有模型采用概念類類別列表確定名詞9/28/202330采用概念類類別列表某些公共類別例如物理的或者實際的對象地點組織…SeePP.104概念類種類例子Recordsoffinance,work,contracts,legalmattersReceipt,Ledger(分類帳),ExploymentContract,MaintenaceLogFinancialinstrumentsandservicesLineOfCreditStockManuals,documents,referencepapers,booksDailyPriceChangeList,RepairManual9/28/202331通過名詞識別找到概念類為了找到問題域中的公共詞匯,可以考慮從需求文檔中以及開發(fā)團(tuán)隊成員的知識中來找詞匯。注意力要放在下列方面:業(yè)務(wù)對象真實世界中的對象事件9/28/202332在一個存貨管理的系統(tǒng)中,我們將關(guān)注庫存中的物品以及它們的存儲位置在該系統(tǒng)中一個事件就是將貨品放到倉庫中。對于每一次運貨,系統(tǒng)必須記住搬運的時間,誰接收了貨品,什么貨品,每一種的數(shù)量有多少9/28/202333對銷售領(lǐng)域的備選概念類對于ProcessSale的簡化情形RegisterProductSpecificationItemSalesLineItemStoreCashierSaleCustomerPaymentManagerProductCatalog9/28/202334報表對象—是否相關(guān)?收據(jù)是一次銷售的報告。但是它顯示的信息實際上已經(jīng)存在了,這是我們可以排除它的理由。但是收據(jù)又有特殊的作用,在我們退貨時,我們需要收據(jù)作為憑據(jù)因此,是否需要將依據(jù)你考慮的是哪一個用例來定9/28/2023353.5領(lǐng)域建模指南采用概念類目錄列表和從需求中采用名詞識別法將所有的備選概念類列出在那些需要將關(guān)系信息保存的地方添加關(guān)聯(lián)依據(jù)信息需求添加必要的屬性9/28/202336地圖制作策略采用實際地名將無關(guān)的特征去掉不要添加不存在的東西9/28/202337屬性還是概念類?一個通常會犯的錯誤如果我們不是將概念類X僅僅看作是實際生活中的數(shù)字或者文字,X就可能是概念類,而不是屬性如果有疑問,可以將它列為概念類9/28/202338類似的概念類在我們的生活中經(jīng)常用相近的概念來表示同一件事情選哪一個?9/28/202339POST從某種角度上看,是一個面向?qū)崿F(xiàn)的概念,所以它不合適,但是它有助于我們之間的交流Register是各種終端的抽象,無論是POST還是人手工.所以它的選擇依據(jù)于….你的選擇9/28/202340非現(xiàn)實世界的建模許多事物是人工的,也就是說,它們是被造出來的為了對它們建模,我們需要更多的抽象例如電信:Message,Connection,Port,Dialog,Route,Protocol中間件:Service,Transaction9/28/202341說明性或者描述性概念類為什么?真實的世界軟件世界例子在一個商店中,每一個商品都有價格,描述和其他屬性如果我們?yōu)槊恳粋€商品創(chuàng)建一個包含所有信息的對象不必要的冗余刪除商品對象意味著丟失所有信息9/28/202342創(chuàng)建單獨的說明性或者描述性類9/28/202343描述性概念類建模指南無論目前是否存在實際的商品或者服務(wù)實例,總是存在商品或者服務(wù)的描述如果把信息和刪除的東西不正確的關(guān)聯(lián)起來,刪除這些東西后就會丟失這些信息通過描述性概念類減少了冗余信息或者復(fù)制的信息9/28/202344描述性類可以加在商品產(chǎn)品服務(wù)…9/28/202345取消某個航班并不丟失航班信息9/28/2023463.6UML&領(lǐng)域模型UML是用來表示各種基本圖的語言.UML可以用于核心或者概念視圖描述視圖實現(xiàn)視圖9/28/2023479/28/202348與類相關(guān)的術(shù)語概念類軟件類設(shè)計類實現(xiàn)類類9/28/202349降低表示鴻溝PaymentamountSaledatetimePays-forPaymentamount:MoneygetBalance():MoneySaledate:DatestartTime:TimegetTotal():Money...Pays-forUPDomainModelStakeholder'sviewofthenoteworthyconceptsinthedomain.UPDesignModelTheobject-orienteddeveloperhastakeninspirationfromtherealworlddomainincreatingsoftwareclasses.Therefore,therepresentationalgapbetweenhowstakeholdersconceivethedomain,anditsrepresentationinsoftware,hasbeenlowered.1111inspiresobjectsandnamesin9/28/202350例子NextGenPOS初步的領(lǐng)域模型9/28/2023513.7領(lǐng)域模型&UP初始化階段一般不建議構(gòu)造領(lǐng)域模型領(lǐng)域模型主要是在細(xì)化階段的迭代中構(gòu)建的,此時我們需要理解重要的概念,并把某些在設(shè)計中映射為軟件類9/28/202352業(yè)務(wù)對象模型vs.領(lǐng)域類業(yè)務(wù)對象模型-描述整個業(yè)務(wù)的企業(yè)模型,用以支持業(yè)務(wù)過程重組或者再工程領(lǐng)域模型只是業(yè)務(wù)對象模型的一個子集9/28/2023539/28/2023543.8連接:增加關(guān)聯(lián)3.8.1目標(biāo)在領(lǐng)域模型中識別關(guān)聯(lián)區(qū)別那些必須知道的關(guān)聯(lián)和僅僅為了理解的關(guān)聯(lián)9/28/2023563.8.2什么是關(guān)聯(lián)?關(guān)聯(lián)時類型(更精確地說,是這些類的實例)之間的關(guān)系,表示有意義和值得關(guān)注的連接9/28/2023573.8.3何時表示關(guān)聯(lián)世界萬物都是相關(guān)的如果我們有n個類,將會有n(n-1)個關(guān)聯(lián)我們只添加那些:如果存在需要保持一段時間的關(guān)系,將這種語義表示為關(guān)聯(lián)(“需要記住”的關(guān)聯(lián))可以從常見關(guān)聯(lián)列表中派生的關(guān)聯(lián)9/28/2023583.8.4UML表示法SaleRegisterRecords-current411associationnamemultiplicity-閱讀方向箭頭-沒有其他含義,只是表示閱讀關(guān)聯(lián)標(biāo)記的方向-通常省略9/28/202359關(guān)聯(lián)的方向關(guān)聯(lián)可以是單向的,也可以是雙向的給定一個訂單,我們可以找到與該訂單相關(guān)的客戶,相反如果給定一個客戶,不能夠找到訂單OrderCustomer*19/28/202360角色關(guān)聯(lián)的每一端稱為一個角色對象類對象類限定符關(guān)聯(lián)對象類多重性角色名:類限定符角色名:類多重性關(guān)聯(lián)名nameMultiplicityexpressionnavigability9/28/202361多重性多重性Multiplicity定義了類A有多少實例可以和類B的一個實例關(guān)聯(lián)9/28/202362zeroormore;"many"oneormoreoneto40exactly5TTTT*1..*1..405T3,5,8exactly3,5,or89/28/202363多重性的指標(biāo)是在特定的時刻(而不是在某個時間跨度內(nèi))有效關(guān)聯(lián)的實例數(shù)量。如何定義多重性的值?ItemStoreStocks41or0..1*9/28/202364命名關(guān)聯(lián)9/28/2023653.8.5常見關(guān)聯(lián)表常見關(guān)聯(lián)表PhysicalpartofLogicalpartofMemberof……高優(yōu)先級的關(guān)聯(lián)AisaphysicalorlogicalpartofBAisphysicallyorlogicallycontainedin/onBAisrecordedinB9/28/2023663.8.6關(guān)聯(lián)指南關(guān)注那些需要保持一段時間的關(guān)聯(lián)發(fā)現(xiàn)概念類比發(fā)現(xiàn)關(guān)聯(lián)更重要太多的關(guān)聯(lián)將會使領(lǐng)域模型變得混亂,而找出這些關(guān)聯(lián)需要消耗太多時間,效益卻不大避免顯示冗余的或者可派生的關(guān)聯(lián)9/28/202367關(guān)聯(lián)需要多詳細(xì)?確定概念類比找到關(guān)聯(lián)更重要.

領(lǐng)域模型構(gòu)建時,主要的時間要花在確定概念類上,而不是找關(guān)聯(lián)上9/28/202368關(guān)聯(lián)和實現(xiàn)在領(lǐng)域建模時,關(guān)聯(lián)只是針對現(xiàn)實領(lǐng)域從純概念角度看有意義的關(guān)系并不需要實現(xiàn)Or我們后面可以發(fā)現(xiàn)在領(lǐng)域建模時丟失,而需要實現(xiàn)的關(guān)聯(lián)9/28/202369NextGenPOS領(lǐng)域模型中的關(guān)聯(lián)在商店中需要記住的關(guān)系RegisterRecordsSaleSalePaid-byPaymentProductCatalogRecordsProductSpecification運用關(guān)聯(lián)類別檢查表AisaphysicalpartofB:Register-CashDrawerAisalogicalpartofB:SalesLineItem-Sale……9/28/202370POS的部分模型Emphasizeneed-to-knowassociations,butaddchoicecomprehension-onlyassociationstoenrichcriticalunderstandingofthedomain.9/28/2023713.9領(lǐng)域建模:添加屬性3

溫馨提示

  • 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

提交評論