版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο蠓治鲈O(shè)計Object-Oriented Analysis & Design譚火彬第10章 從模型到代碼From Model to Code-3-學(xué)習(xí)路線圖OOUMLOOPDP Case-Study 學(xué) 習(xí) 路 線 圖12345678910-4-內(nèi)容安排從模型到代碼UML2相關(guān)標(biāo)準(zhǔn)MDA與模型轉(zhuǎn)換下一步-5-內(nèi)容安排從模型到代碼UML2相關(guān)標(biāo)準(zhǔn)MDA與模型轉(zhuǎn)換下一步-6-設(shè)計模型與代碼實(shí)現(xiàn)編寫代碼形成軟件軟件最終需要代碼來實(shí)現(xiàn)模型只是為代碼實(shí)現(xiàn)提供支持目前尚未產(chǎn)生成熟的可執(zhí)行模型正向工程(Forward engineering)由設(shè)計類圖導(dǎo)出框架代碼由交互圖創(chuàng)建方法實(shí)現(xiàn)逆向工程(Reve
2、rse engineering)由源代碼導(dǎo)出設(shè)計模型-7-逆向工程-由代碼導(dǎo)出模型逆向工程根據(jù)源代碼導(dǎo)出設(shè)計模型設(shè)計類圖、設(shè)計交互圖主要作用開始編碼后,很多地方勢必會和設(shè)計模型不一致,此時可以通過逆向工程更新設(shè)計模型,從而需要保持設(shè)計模型的有效性已有的系統(tǒng)缺少相關(guān)文檔,通過逆向工程獲得系統(tǒng)的設(shè)計模型,以便理解和完善文檔示例:利用EA導(dǎo)入JDK源代碼-8-正向工程-生成框架代碼什么是框架代碼?代碼在設(shè)計上的初步實(shí)現(xiàn)類的框架代碼包括那些?屬性值定義:名稱、類型、缺省值等操作的定義:名稱、參數(shù)、返回類型等引用屬性的表示根據(jù)設(shè)計類圖產(chǎn)生框架代碼用操作和簡單屬性定義一個類加入引用屬性:角色名定義引用屬性
3、-9-從設(shè)計類圖產(chǎn)生框架代碼-11. 用操作和簡單屬性定義一個類(屬性、操作)-10-從設(shè)計類圖產(chǎn)生框架代碼-22. 加入引用屬性(引用屬性reference attribute:關(guān)聯(lián)和導(dǎo)航;角色名role name)-11-Rose支持框架代碼的導(dǎo)出多數(shù)UML CASE工具都支持框架代碼導(dǎo)出利用Rose由設(shè)計類圖生成框架代碼(Java)的基本過程利用EA由設(shè)計類圖生成框架代碼主要問題:設(shè)計模型開發(fā)不夠完善,無法導(dǎo)出代碼-12-其它問題-一對多關(guān)系的實(shí)現(xiàn)-13-正向工程-創(chuàng)建方法實(shí)現(xiàn)一個交互圖顯示出了響應(yīng)操作調(diào)用而產(chǎn)生的消息傳遞;這些消息序列可以被翻譯成該操作所對應(yīng)的方法實(shí)現(xiàn)中的一系列語句由順
4、序圖產(chǎn)生方法實(shí)現(xiàn)由通信圖產(chǎn)生方法實(shí)現(xiàn)-14-確定預(yù)訂房間操作實(shí)現(xiàn)(順序圖)創(chuàng)建Payment實(shí)例payment = new Payment(pay_type);/1.3.2 進(jìn)行支付操作payment.makePayment(reservation);/1.3.3 創(chuàng)建需預(yù)訂的房間對象room=new Room(room_no);/1.3.4 預(yù)訂的房間room.reserve();/1.3.5 保存預(yù)訂信息reservation.save();public void affirmReserve() Payment payment=new Payment(pay_type); payment.
5、makePayment(reservation); Room room=new Room(room_no); room.reserve(); reservation.save();-15-確定預(yù)訂房間操作實(shí)現(xiàn)(通信圖)public void affirmReserve() Payment payment=new Payment(pay_type); payment.makePayment(reservation); Room room=new Room(room_no); room.reserve(); reservation.save();-16-內(nèi)容安排從模型到代碼UML2相關(guān)標(biāo)準(zhǔn)MDA與
6、模型轉(zhuǎn)換下一步-17-從模型到代碼的思考設(shè)計模型和代碼之間存在映射關(guān)系目前很多工具都支持模型和代碼之間的正向/逆向工程,但尚沒有一種成熟的自動化工具,支持代碼的完全自動生成,主要問題設(shè)計模型不夠完善,設(shè)計者難以通過UML表達(dá)系統(tǒng)所有的細(xì)節(jié)UML模型和實(shí)現(xiàn)語言、平臺之間存在差異性UML模型自身存在各種內(nèi)部機(jī)制和約束,這種細(xì)節(jié)缺少精確的定義OMG組織致力于對UML做進(jìn)一步的規(guī)范化,以實(shí)現(xiàn)模型對代碼的完全表示-18-UML2四個組成部分UML基礎(chǔ)結(jié)構(gòu)(Infrastructure), 即UML元模型使之更加模塊化,更易于擴(kuò)展與UML其它規(guī)范更加保持一致(MOF)UML上層結(jié)構(gòu)(Superstruct
7、ure), 是指我們所能看見的UML的語法、語義以及符號表示使UML更具可用性對象約束語言(OCL, Object Constraint Language)形式化語言,可以表達(dá)各種約束和規(guī)則,使得模型更真實(shí)、更接近實(shí)現(xiàn)圖交換標(biāo)準(zhǔn)(Diagram Interchange)解決不同的工具之間圖形表示和交換問題XMI(XML Meta-Data Interchange)-19-如何解決UML2中的問題模型之間缺少一致性在模型之上,定義元(meta)模型、元元(meta-meta)模型UML基礎(chǔ)結(jié)構(gòu)(Infrastructure), 即UML元模型MOF(元對象設(shè)施,Meta Object Facil
8、ity)各種建模工具之間產(chǎn)生的模型缺少標(biāo)準(zhǔn)XMI(XML Meta-Data Interchange)QVT(MOF 2.0 Query/View/Transformation)模型所表達(dá)的信息不夠完整,缺少精確語義OCL(對象約束語言,Object Constraint Language)-20-MOF元對象設(shè)施(MOF , Meta Object Facility)是一種面向?qū)ο蟮脑?元模型,為描述面向?qū)ο笤P投x了一種公共的抽象語言定義面向?qū)ο笤P偷幕驹?、語法和結(jié)構(gòu)為各種元模型提供了通用的語言基礎(chǔ),使它們可以相互映射,相互交換元數(shù)據(jù),并相互理解-21-XMIXMI(XML Met
9、adata Interchange),XML元數(shù)據(jù)交換,為程序員和其它用戶提供元數(shù)據(jù)交換的標(biāo)準(zhǔn)方法目的在于幫助使用UML以及不同語言和開發(fā)工具的程序員彼此交換數(shù)據(jù)模型有效地標(biāo)準(zhǔn)化了任意元數(shù)據(jù)集的描述,它要求用戶跨越多個工業(yè)和操作環(huán)境而使用同一種方式讀取數(shù)據(jù) XMI建立并擴(kuò)展于三個工業(yè)標(biāo)準(zhǔn):XML、UML、MOF-22-QVTQVT(MOF 2.0 Query/View/Transformation),模型查詢、視圖和轉(zhuǎn)換查詢選擇已經(jīng)存在的對象轉(zhuǎn)換描述了如何從已經(jīng)存在的對象生成新對象在轉(zhuǎn)換時,如果選擇保持輸入和輸出間的連接,則為視圖QVT包含3種模型變換語言,它們共同構(gòu)成了QVT的層次構(gòu)架Rel
10、ations和Core是聲明式語言O(shè)perationalMappings屬于命令式語言-23-OCLOCL is the Object Constraint Languagea textual language to describe constraintsthe constraint language used in UML modelsAs well as the UML meta-modelFormal but easy to use unambiguousno side effects-24-航班管理系統(tǒng)?-25-Different kinds of constraintsClass
11、invariant (不變式)a constraint that must always be met by all instances of the classPrecondition (前置條件) of an operation a constraint that must always be true BEFORE the execution of the operationPostcondition (后置條件) of an operation a constraint that must always be true AFTER the execution of the operat
12、ionDbC Design by Contract-26-房屋抵押系統(tǒng)一個人只能抵押他自己的房子抵押的開始日期必須在結(jié)束日期之前每個人的身份證號碼必須是不同的只有在一個人的收入充足的情況下才允許新的抵押只有在房子的估價足夠的情況下才允許將它作為新的抵押-27-增加OCL表達(dá)所需的語義-28-內(nèi)容安排從模型到代碼UML2相關(guān)標(biāo)準(zhǔn)MDA與模型轉(zhuǎn)換下一步-29-模型驅(qū)動的開發(fā)模型驅(qū)動的開發(fā)(MDD, Model-Driven Development)系統(tǒng)開發(fā)過程就是建模的過程,從需求、分析、設(shè)計、實(shí)現(xiàn)到測試,所有階段的交付物都是模型各類模型之間通過模型轉(zhuǎn)換技術(shù)進(jìn)行演化實(shí)現(xiàn)也是一種模型(實(shí)現(xiàn)/代碼模型
13、),通過模型轉(zhuǎn)換技術(shù)可以從設(shè)計模型中直接獲得支持MDD的核心技術(shù)模型驅(qū)動架構(gòu)(MDA, Model Driven Architecture)模型轉(zhuǎn)換(MT, Model Transformation)-30-MDA-Model Driven Architecture-31-The Languages of MDAMetaObjectFacility (MOF)A modeling language for defining modeling languagesMOF“core”GeneralStandard UMLCommon Warehouse Metamodel (CWM)etc.For
14、general OO modelingFor exchanging information about businessdataReal-TimeprofileEAI profileSoftwareprocess profileetc.UML “bootstrap”-32-MDA相關(guān)術(shù)語清單縮略語全稱含義OMGthe Object Management Group對象管理組織MDAModel-Driven Architecture模型驅(qū)動架構(gòu)UMLUnified Modeling Language統(tǒng)一建模語言MOFMeta-Object Facility元對象設(shè)施XMIXML Metadata
15、 InterchangeXML元數(shù)據(jù)交換CWMCommon Warehouse Metamodel公共倉庫元模型PIMPlatform-Independed Model平臺獨(dú)立模型PSMPlatform-Specific Model特定平臺模型CIVComputation Independent Viewpoint計算無關(guān)的視角PIVPlatform Independent Viewpoint平臺無關(guān)的視角PSVPlatform Specific Viewpoint平臺相關(guān)的視角CIMComputation Independent Model計算無關(guān)的模型-33-傳統(tǒng)的軟件開發(fā)流程-34-MD
16、A架構(gòu)下的開發(fā)流程-35-MDA實(shí)現(xiàn)技術(shù)可執(zhí)行的UML(xUML)陣營建立UML編譯器,將UML直接作為編程語言,使UML可以執(zhí)行模型轉(zhuǎn)換UML PIM陣營:使用UML來建立PIM,然后利用模型轉(zhuǎn)換來生成PSM,最后用PSM生成代碼(模型轉(zhuǎn)換)MOF陣營:不使用UML,而用MOF來代替,建模語言和模型轉(zhuǎn)換都使用MOF來定義-36-模型轉(zhuǎn)換技術(shù): 建模領(lǐng)域新熱點(diǎn)模型轉(zhuǎn)換是MDA中的核心技術(shù)OMG提出了的查詢/視圖/轉(zhuǎn)換(QVT,MOF 2.0 Query/View/Transformation)是的模型轉(zhuǎn)換的標(biāo)準(zhǔn)化方案模型轉(zhuǎn)換技術(shù)可以實(shí)現(xiàn)代碼(代碼模型)的自動生成解決不同平臺、技術(shù)之間的集成和互
17、操作性適應(yīng)涌現(xiàn)出的新技術(shù)和新平臺支持從業(yè)務(wù)模型到系統(tǒng)模型的自動化轉(zhuǎn)換-37-現(xiàn)有的模型轉(zhuǎn)換技術(shù)建立元模型之間的映射來進(jìn)行模型轉(zhuǎn)換當(dāng)進(jìn)行模型轉(zhuǎn)換時,根據(jù)元模型元素之間的映射來轉(zhuǎn)換模型元素,從而生成目標(biāo)模型利用UML profile來進(jìn)行模型轉(zhuǎn)換將UML profile作為PSM的建模語言,利用這種專用的PSM建模語言,實(shí)現(xiàn)從PIM到PSM的映射利用XSLT進(jìn)行模型轉(zhuǎn)換和代碼生成采用XMI存儲UML模型,并給予XSLT技術(shù)進(jìn)行模型轉(zhuǎn)換圖形化的模型轉(zhuǎn)換技術(shù)用圖形符號指出源模型元素和目標(biāo)模型元素之間的匹配關(guān)系-38-現(xiàn)有的模型轉(zhuǎn)換框架ATLATLAS Transformation Language基于
18、OCL定義轉(zhuǎn)換規(guī)則引入了新的元模型描述語言KM3 MTFModel Transformation Framework基于關(guān)系定義轉(zhuǎn)換規(guī)則,實(shí)現(xiàn)模型間的映射(Mapping)和和解(Reconciliation)KTFKent Transformation Framework基于OCL定義轉(zhuǎn)換規(guī)則-39-MDA工具Compuware: OptimalJAndroMDAInteractive Objects: ArcStyler IBM: Rational Software ArchitectBorland: Together、ECO-40-OptimalJ中的各種模型-41-內(nèi)容安排從模型到代碼UML2相關(guān)標(biāo)準(zhǔn)MDA與模型轉(zhuǎn)換下一步-42-回顧一下學(xué)到了什么?基本的UML建模語法面向?qū)ο蟮能浖_發(fā)思想利用UML分析和設(shè)計面向?qū)ο笙到y(tǒng)沒學(xué)到什么?完整軟件開發(fā)的過程和管理策略編寫分析設(shè)計文檔的方法編程實(shí)現(xiàn)一個軟件的知識UML+OO-43-總結(jié)一下業(yè)務(wù)建模1. 業(yè)務(wù)用例模型2. 業(yè)務(wù)對象模型需求3. 用例模型分析4. 備選構(gòu)架5. 用例實(shí)現(xiàn)設(shè)計
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度臨時用電安全設(shè)施維護(hù)保養(yǎng)合同文本2篇
- 2025年度產(chǎn)品代理合同:智能家電全系列產(chǎn)品代理權(quán)轉(zhuǎn)讓
- 2025版內(nèi)蒙古自治區(qū)農(nóng)牧廳農(nóng)業(yè)產(chǎn)業(yè)鏈延伸與價值鏈提升合同4篇
- 二零二五年度臨時用電安全培訓(xùn)服務(wù)合同范本
- 2025年度食品添加劑研發(fā)項(xiàng)目配料保密合同范本
- 2025年度苗木種植項(xiàng)目招投標(biāo)合同4篇
- 二零二五年度家電品牌代言合同標(biāo)準(zhǔn)范本
- 二零二五年度某某學(xué)校校園內(nèi)電梯維修保養(yǎng)服務(wù)合同4篇
- 《短視頻編?。哼x題構(gòu)想+腳本制作+劇本策劃+鏡頭拍攝》課件 第5、6章 了解劇本:創(chuàng)作優(yōu)劇本的基礎(chǔ)、劇本編寫:創(chuàng)作優(yōu)的故事情節(jié)
- 2025年度鋼材深加工項(xiàng)目運(yùn)輸及安裝合同2篇
- 《霍爾效應(yīng)測量磁場》課件
- 30題紀(jì)檢監(jiān)察位崗位常見面試問題含HR問題考察點(diǎn)及參考回答
- 高考作文復(fù)習(xí)任務(wù)驅(qū)動型作文的審題立意課件73張
- 詢價函模板(非常詳盡)
- 《AI營銷畫布:數(shù)字化營銷的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 一個28歲的漂亮小媳婦在某公司打工-被老板看上之后
- 乘務(wù)培訓(xùn)4有限時間水上迫降
- 2023年低年級寫話教學(xué)評語方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
- GB/T 16474-2011變形鋁及鋁合金牌號表示方法
評論
0/150
提交評論