




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5講.細化階段與領域模型內容提要細化階段領域模型領域模型概念類關聯(lián)屬性系統(tǒng)順序圖契約9/28/202321.細化階段1.1概述一般,細化階段由兩到四個迭代構成;每一個迭代持續(xù)的時間建議在兩到六周之間該階段的主要任務包括構建核心架構,解決高風險問題,完成絕大部分需求的定義,并估計總的時間和資源9/28/202341.2目標保證架構,需求和計劃足夠穩(wěn)定,風險被充分規(guī)避確定和解決項目中所有與架構密切相關的風險從與架構密切相關的場景中確定一個基準體系架構產(chǎn)生一個達到產(chǎn)品級質量水準的演化性原型,也可以是一個或更多個探索型\拋棄型原型能夠展示基準的體系架構以合理的價格和合適的時間支持系統(tǒng)需求
建立一個支持環(huán)境9/28/202351.3核心活動盡快定義和驗證體系架構,并確定體系架構基線細化遠景為構造階段建立詳細的迭代計劃并建立基線細化開發(fā)用例并將其部署到開發(fā)環(huán)境中細化體系架構并選擇組件9/28/202361.4定義用一句話表達細化構造核心體系架構,解決高風險,定義絕大部分需求,并估計總體計劃和資源關鍵思想和實踐實行短時間定量、風險驅動的迭代及早開始編程對架構的核心和風險部分進行適應性設計,實現(xiàn)和測試盡早,頻繁,實際的測試基于來自測試,用戶,開發(fā)者的反饋進行調整通過一系列討論會,詳細編寫大部分用例和其他需求,每個細化迭代舉行一次9/28/202371.5對下一輪迭代進行計劃風險技術復雜性其他因素覆蓋性在早期迭代中,系統(tǒng)中主要的部分都有所涉及關鍵性具有高業(yè)務價值的功能在每個迭代前將用例和特征進行排序9/28/20238用例&迭代1Ausecaseorfeatureisoftentoocomplextocompleteinoneshortiteration.Therefore,differentpartsorscenariosmustbeallocatedtodifferentiterations.UseCaseProcessSale23...UseCaseProcessSaleUseCaseProcessSaleUseCaseProcessRentalsFeature:Logging9/28/20239案例1:POS應用-迭代1
對于NextGenPOS應用對ProcessSale用例實現(xiàn)其基本的、最關鍵的場景:enteringitems和receivingacashpayment為了支持迭代中的初始化需求必須實現(xiàn)StartUp用例在該階段,并不處理那些復雜的和有趣的功能,而只是考慮容易實現(xiàn)的場景,并通過設計和實現(xiàn)來加以支持也不考慮外部服務的協(xié)同,比如計稅器或者產(chǎn)品數(shù)據(jù)庫不考慮應用復雜的計價規(guī)則9/28/202310案例2選課系統(tǒng)項目的目標是將以前的選課系統(tǒng)用新技術加以改造,使得老師和學生可以通過客戶端在線訪問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ā)架構原型驗證Release1.0所需要的架構的可行性和性能Release1.0計劃包含的特征:LogonCloseRegistrationRegisterforCoursesInterfacetoCourseCatalogDatabaseInterfacetoFinanceSystemMaintainStudentInformationMaintainProfessorInformation9/28/2023173.領域模型
(第9章)3.1目標依據(jù)迭代需求,確定相關的概念類創(chuàng)建初步的領域模型為模型建立適當?shù)膶傩耘c關聯(lián)9/28/2023193.2什么是領域模型領域模型是對真實世界中概念類的表示,而不是軟件對象的表示。它不是用來描述軟件類、軟件架構領域層或有職責軟件對象的一組圖。領域模型用一套類圖來表示,這些類沒有操作。它可以顯示:領域對象或者概念類概念類之間的關聯(lián)概念類的屬性9/28/202320可視化字典9/28/2023219/28/202322避免瀑布思維傾向,為完成詳盡或“正確”的領域模型而進行大量建模工作。這些方式都應避免,并且這種過量的建模工作反而會導致分析停滯,這種調查幾乎不會有什么回報。9/28/2023233.3為什么需要領域模型它是一種可視化語言,傳達了真實世界中的概念或者該領域中的概念類9/28/2023243.4概念類概念類可以由符號,內涵和它的外延來表示符號-代表概念類的詞或者圖像內涵-概念類的定義外延-概念類應用的例子集合9/28/202325Saledatetime概念符號“sale表示購買交易的事件,具有日期和時間”概念內涵sale-1sale-3sale-2sale-4概念外延9/28/202326領域模型和分解分而治之-處理復雜性的手段面向對象方法與結構化分析方法的核心區(qū)別在于:是由概念類(對象)分解的而不是功能分解的9/28/202327銷售領域的概念類StoreRegisterSale9/28/202328識別概念類在我們所關心的領域,我們的目標是針對感興趣或者有意義的概念類建立領域模型只針對目前正在設計的場景指南:對領域模型而言,建立較多的細粒度的概念類要比粗略的建模來得好可以有沒有屬性的概念類或者僅僅擔任行為角色的概念類9/28/202329識別概念類的策略重用和修改現(xiàn)有模型采用概念類類別列表確定名詞9/28/202330采用概念類類別列表某些公共類別例如物理的或者實際的對象地點組織…SeePP.104概念類種類例子Recordsoffinance,work,contracts,legalmattersReceipt,Ledger(分類帳),ExploymentContract,MaintenaceLogFinancialinstrumentsandservicesLineOfCreditStockManuals,documents,referencepapers,booksDailyPriceChangeList,RepairManual9/28/202331通過名詞識別找到概念類為了找到問題域中的公共詞匯,可以考慮從需求文檔中以及開發(fā)團隊成員的知識中來找詞匯。注意力要放在下列方面:業(yè)務對象真實世界中的對象事件9/28/202332在一個存貨管理的系統(tǒng)中,我們將關注庫存中的物品以及它們的存儲位置在該系統(tǒng)中一個事件就是將貨品放到倉庫中。對于每一次運貨,系統(tǒng)必須記住搬運的時間,誰接收了貨品,什么貨品,每一種的數(shù)量有多少9/28/202333對銷售領域的備選概念類對于ProcessSale的簡化情形RegisterProductSpecificationItemSalesLineItemStoreCashierSaleCustomerPaymentManagerProductCatalog9/28/202334報表對象—是否相關?收據(jù)是一次銷售的報告。但是它顯示的信息實際上已經(jīng)存在了,這是我們可以排除它的理由。但是收據(jù)又有特殊的作用,在我們退貨時,我們需要收據(jù)作為憑據(jù)因此,是否需要將依據(jù)你考慮的是哪一個用例來定9/28/2023353.5領域建模指南采用概念類目錄列表和從需求中采用名詞識別法將所有的備選概念類列出在那些需要將關系信息保存的地方添加關聯(lián)依據(jù)信息需求添加必要的屬性9/28/202336地圖制作策略采用實際地名將無關的特征去掉不要添加不存在的東西9/28/202337屬性還是概念類?一個通常會犯的錯誤如果我們不是將概念類X僅僅看作是實際生活中的數(shù)字或者文字,X就可能是概念類,而不是屬性如果有疑問,可以將它列為概念類9/28/202338類似的概念類在我們的生活中經(jīng)常用相近的概念來表示同一件事情選哪一個?9/28/202339POST從某種角度上看,是一個面向實現(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描述性概念類建模指南無論目前是否存在實際的商品或者服務實例,總是存在商品或者服務的描述如果把信息和刪除的東西不正確的關聯(lián)起來,刪除這些東西后就會丟失這些信息通過描述性概念類減少了冗余信息或者復制的信息9/28/202344描述性類可以加在商品產(chǎn)品服務…9/28/202345取消某個航班并不丟失航班信息9/28/2023463.6UML&領域模型UML是用來表示各種基本圖的語言.UML可以用于核心或者概念視圖描述視圖實現(xiàn)視圖9/28/2023479/28/202348與類相關的術語概念類軟件類設計類實現(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初步的領域模型9/28/2023513.7領域模型&UP初始化階段一般不建議構造領域模型領域模型主要是在細化階段的迭代中構建的,此時我們需要理解重要的概念,并把某些在設計中映射為軟件類9/28/202352業(yè)務對象模型vs.領域類業(yè)務對象模型-描述整個業(yè)務的企業(yè)模型,用以支持業(yè)務過程重組或者再工程領域模型只是業(yè)務對象模型的一個子集9/28/2023539/28/2023543.8連接:增加關聯(lián)3.8.1目標在領域模型中識別關聯(lián)區(qū)別那些必須知道的關聯(lián)和僅僅為了理解的關聯(lián)9/28/2023563.8.2什么是關聯(lián)?關聯(lián)時類型(更精確地說,是這些類的實例)之間的關系,表示有意義和值得關注的連接9/28/2023573.8.3何時表示關聯(lián)世界萬物都是相關的如果我們有n個類,將會有n(n-1)個關聯(lián)我們只添加那些:如果存在需要保持一段時間的關系,將這種語義表示為關聯(lián)(“需要記住”的關聯(lián))可以從常見關聯(lián)列表中派生的關聯(lián)9/28/2023583.8.4UML表示法SaleRegisterRecords-current411associationnamemultiplicity-閱讀方向箭頭-沒有其他含義,只是表示閱讀關聯(lián)標記的方向-通常省略9/28/202359關聯(lián)的方向關聯(lián)可以是單向的,也可以是雙向的給定一個訂單,我們可以找到與該訂單相關的客戶,相反如果給定一個客戶,不能夠找到訂單OrderCustomer*19/28/202360角色關聯(lián)的每一端稱為一個角色對象類對象類限定符關聯(lián)對象類多重性角色名:類限定符角色名:類多重性關聯(lián)名nameMultiplicityexpressionnavigability9/28/202361多重性多重性Multiplicity定義了類A有多少實例可以和類B的一個實例關聯(lián)9/28/202362zeroormore;"many"oneormoreoneto40exactly5TTTT*1..*1..405T3,5,8exactly3,5,or89/28/202363多重性的指標是在特定的時刻(而不是在某個時間跨度內)有效關聯(lián)的實例數(shù)量。如何定義多重性的值?ItemStoreStocks41or0..1*9/28/202364命名關聯(lián)9/28/2023653.8.5常見關聯(lián)表常見關聯(lián)表PhysicalpartofLogicalpartofMemberof……高優(yōu)先級的關聯(lián)AisaphysicalorlogicalpartofBAisphysicallyorlogicallycontainedin/onBAisrecordedinB9/28/2023663.8.6關聯(lián)指南關注那些需要保持一段時間的關聯(lián)發(fā)現(xiàn)概念類比發(fā)現(xiàn)關聯(lián)更重要太多的關聯(lián)將會使領域模型變得混亂,而找出這些關聯(lián)需要消耗太多時間,效益卻不大避免顯示冗余的或者可派生的關聯(lián)9/28/202367關聯(lián)需要多詳細?確定概念類比找到關聯(lián)更重要.
領域模型構建時,主要的時間要花在確定概念類上,而不是找關聯(lián)上9/28/202368關聯(lián)和實現(xiàn)在領域建模時,關聯(lián)只是針對現(xiàn)實領域從純概念角度看有意義的關系并不需要實現(xiàn)Or我們后面可以發(fā)現(xiàn)在領域建模時丟失,而需要實現(xiàn)的關聯(lián)9/28/202369NextGenPOS領域模型中的關聯(lián)在商店中需要記住的關系RegisterRecordsSaleSalePaid-byPaymentProductCatalogRecordsProductSpecification運用關聯(lián)類別檢查表AisaphysicalpartofB:Register-CashDrawerAisalogicalpartofB:SalesLineItem-Sale……9/28/202370POS的部分模型Emphasizeneed-to-knowassociations,butaddchoicecomprehension-onlyassociationstoenrichcriticalunderstandingofthedomain.9/28/2023713.9領域建模:添加屬性3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村消費促進策略
- 通便護理操作流程課件
- 傳統(tǒng)戲劇與現(xiàn)代媒體的融合發(fā)展實施方案
- 教研室個人工作計劃怎么寫10篇
- 乙方受讓車位合同范本
- 商標永久授權繼承合同范本
- 合同范本 固廢處理
- 企業(yè)媒體宣傳合同范例
- 代加工訂單合同范本
- 井道整改合同范本
- YMO青少年數(shù)學思維28屆三年級全國總決賽試卷
- TT、IT、TNC、TNS、TNCS低壓接地系統(tǒng)全面解析
- 三位數(shù)除以一位數(shù)(商為三位數(shù))練習題含答案
- 特殊教育概論第二版PPT完整全套教學課件
- 西華雙匯禽業(yè)有限公司1億只肉雞屠宰項目環(huán)境影響報告
- 粉體密度及流動性測定
- 北師大版八年級下冊課程綱要分享課件
- 鍋爐工崗位安全風險告知卡
- 小學勞動教育課堂教學水平評價量表
- 年薪制勞動合同范本
- 呼吸科護理專業(yè)知識技能N1N2N3N4護士考試題與答案
評論
0/150
提交評論