版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
AOSD培訓資料6、法律的基礎有兩個,而且只有兩個……公平和實用。——伯克7、有兩種和平的暴力,那就是法律和禮節(jié)?!璧?、法律就是秩序,有好的法律才有好的秩序。——亞里士多德9、上帝把法律和公平湊合在一起,可是人類卻把它拆開。——查·科爾頓10、一切法律都是無用的,因為好人用不著它們,而壞人又不會因為它們而變得規(guī)矩起來?!轮円怂笰OSD培訓資料AOSD培訓資料6、法律的基礎有兩個,而且只有兩個……公平和實用?!?、有兩種和平的暴力,那就是法律和禮節(jié)。——歌德8、法律就是秩序,有好的法律才有好的秩序?!獊喞锸慷嗟?、上帝把法律和公平湊合在一起,可是人類卻把它拆開?!椤た茽栴D10、一切法律都是無用的,因為好人用不著它們,而壞人又不會因為它們而變得規(guī)矩起來?!轮円怂笴SAI華東區(qū)首席顧問
徐鋒面向方面的軟件開發(fā)方法Agenda面向對象開發(fā)技術與開發(fā)范型變遷橫切關注點橫切關注點的建模與分離彈性體系結構演變AOSD的應用面向對象開發(fā)技術的歷史變遷面向對象程序設計面向對象設計面向對象分析面向對象程序語言1980196019701990LispSimula67SmallTalk72SmallTalk80CObjective-CC++Java1970年1990年年面向對象編程開啟了面向對象發(fā)展之門。而面向對象分析、設計方法才是OO思想的真正標志。面向對象開發(fā)技術的今天—核心基礎核心基礎:組件技術、UML建模技術組件技術:大型項目與系統(tǒng)的必由之路
需要支持多平臺:SOA、ESB—連接組件
擁有大量組件:重用、MDA—快速、廉價集成組件
響應日益復雜的業(yè)務操作:EA(連通軟件與業(yè)務的鴻溝)、PLE(處理產品線可變性)、反向工程(重用遺留系統(tǒng))
框架:J2EE、.NET等獨立與廠商的組件描述語言--UML顯然僅有組件和UML是不夠的,因為我們還需要知道如何捕獲組件!--答案就是最佳實踐:
迭代開發(fā)
體系結構為中心
用例驅動面向對象開發(fā)技術的今天—最佳實踐最佳實踐1—迭代開發(fā)最佳實踐2—用例驅動最佳實踐3—體系結構為中心Agenda面向對象開發(fā)技術與開發(fā)范型變遷橫切關注點橫切關注點的建模與分離彈性體系結構演變AOSD的應用橫切關注點1—擴展嗯,一切似乎很完美。是什么打破了這一寧靜?橫切關注點是打亂這一規(guī)則的“破壞分子”!橫切關注點包括兩類:
擴展:在基組件之上定義的組件,它用來表示附加的服務或功能非功能屬性--AOP原先的發(fā)現(xiàn)
對等關注點:相互獨立的功能點,各組件中參與類有較大的交疊纏繞與分散--Ivar博士的補充發(fā)現(xiàn)彌補用例分析與實現(xiàn)的鴻溝橫切關注點1—擴展AOP就是基于對非功能屬性實現(xiàn)中發(fā)現(xiàn)的“重復”。例如:留存、事務處理、安全、性能優(yōu)化、錯誤處理、日志、調試、度量等。橫切關注點2—對等關注點各個組件包含滿足不同關注點的實現(xiàn)—纏繞狀態(tài)某個特定的關注點的實現(xiàn)分散在多個組件中—分散狀態(tài)橫切關注點現(xiàn)行實行的不足橫切關注點1—擴展
代碼的大量重復,涉及到多個功能性類
當橫切關注點的需求發(fā)生變化時,會造成大量修改
橫切關注點的更新難以實現(xiàn)一致性橫切關注點2—對等功能點
捕獲對等功能點的用例本身就涉及了多個類,容易使分析與設計的結果不能夠有效地對應起來,影響了跟蹤
功能的修改,可能涉及多個類,從而影響系統(tǒng)的彈性
原有的用例建模在管理橫切關注點時存在問題面向方面技術本質:合成機制,分離橫切關注點的方法
可以實現(xiàn)將類之外的附加行為合并到類本身
可以在編譯時或運行時進行
可以將不同的關注點的實現(xiàn)分離到不同模塊中核心概念
aspect:核心類元,模塊化單元
intertype:aspect的方法,定義為“原有類名.新操作名”--類擴展pointcut:在aspect中說明原有類中的擴展點(連接點)--操作擴展
advice:捕獲pointcut出現(xiàn)的特定事件 --操作擴展Agenda面向對象開發(fā)技術與開發(fā)范型變遷橫切關注點橫切關注點的建模與分離彈性體系結構演變AOSD的應用基于用例對橫切關注點建模用例是對橫切關注點建模的最好工具用例描述的關鍵是事件流用例擴展:pointcut基于用例對橫切關注點建模用例包含:用例泛化:基于用例捕獲橫切關注點應用(application)用例和基礎結構(infrastructure)用例理解涉眾關注點
理解問題域(領域類,領域模型)
抽取系統(tǒng)特性(FeatureList)
處理功能和非功能需求(應用用例、基礎結構用例)捕獲應用用例
從特性中識別出參與者,合并為用例
識別用例變量,并處理用例變量
處理擴展用例捕獲基礎結構用例
抽象為<執(zhí)行事務>用例對基本事務進行建模
基礎結構用例的結構化、描述基礎結構用例處理系統(tǒng)范圍的關注點用例切片用例的實現(xiàn)是協(xié)作:協(xié)作標識了類及類的擴展用例切片包括:協(xié)作(交互圖、類圖)、特定的類、特定的擴展基于用例切片實現(xiàn)分離合并特定于某用例的類:合并用例特定的類擴展:基于用例切片組成系統(tǒng)通過用例切片(usecaseslice)和非特定用例切片(non-uc-specificslice)來疊加出系統(tǒng):用例模塊對于某個用例而言,都包括不同的模型(用例描述、分析、設計、實現(xiàn)、測試設計、測試實現(xiàn)),每個模型都可以組成一個切片,而將這些切片放在一個單獨的包中,就稱為用例模塊Agenda面向對象開發(fā)技術與開發(fā)范型變遷橫切關注點橫切關注點的建模與分離彈性體系結構演變AOSD的應用架構(Architecture)什么是架構(體系結構)?
系統(tǒng)元素如何組織?
系統(tǒng)如何實現(xiàn)所需功能?
系統(tǒng)如何滿足預期性能、可靠性和其它質量特性
系統(tǒng)需要什么技術?
系統(tǒng)內部組織的結構是否能夠彈性響應功能、技術、平臺變化?
標準是否能夠確保系統(tǒng)開發(fā)始終保持一致?采用什么設計模式?什么是好的架構
分離功能需求
從功能需求中分離出非功能需求
分離平臺特性
將測試從已測單元中分離出來架構基線架構基線:最終系統(tǒng)的早期版本,SkinnySystem!
包含了最終系統(tǒng)所具有的子系統(tǒng)、組件和節(jié)點的骨架
UP過程中,這一任務主要是在精化階段完成用例驅動架構基線:尋找出關鍵用例子集
演練了系統(tǒng)的關鍵功能和特性
涵蓋了大部分的功能性、基礎結構、平臺特性等方面的風險
突出了系統(tǒng)中的一些具有高復雜度或高風險性的部分
是系統(tǒng)剩余系統(tǒng)的基礎迭代地建立架構基線平臺無關的結構(PIM)元素結構:基于包和類的分層結構
組成部分主要是領域相關的類
通常包括“應用層”和“領域層”
應用層的元素主要實現(xiàn)用中支持系統(tǒng)的主要參與者的工作流
領域層則要包括了描述重要領域概念的元素用例結構:在元素結構的基礎上添加了實際的內容疊加平臺相關特性(PSM)選擇平臺
系統(tǒng)的平臺特性基于架構師選定的部署結構和進程結構
我們需要將平臺特性與平臺無關的部分分離—最小化用例設計最小化用例設計(minimaluse-casedesign)
可執(zhí)行,并采用默認編程語言實現(xiàn)
是通過程序接口來激活的
分布性、內部進程的通信和平臺相關消息通信都與其分離
所需的信息都在內存中使功能需求保持分離1分離功能需求的最好辦法是用例(應用用例)
什么是特定于某用例的、什么是獨立于用例的,什么是特定于某應用的、什么是應用通用的,什么是領域通用的、什么是領域特定的。
這些問題的答案用于指導:如何將類歸入到層、包,如果將類擴展歸入到相應的切片、模型中應用用例的分析
考慮用例規(guī)約,必要時進行更新
分析用例:識別出參與用例實現(xiàn)的分析類,并將行為分配給這些類
在系統(tǒng)元素結構中將類組織成為層和包,在用例結構中將類和類擴展組織成切片
將分析元素映射為設計元素、識別出接口及附加的設計元素使功能需求在分析模型中保持獨立根據(jù)類參與實現(xiàn)的用例,形成合適的元素結構
將用例結構分為:針對某個特定用例行為的“用例切片”,不屬于特定的某個用例的“非用例特定切片”使功能需求保持分離2應用用例設計
識別設計元素:從分析模型中標識設計元素,根據(jù)實現(xiàn)需要引入新的設計元素
識別組件和接口:將分析為中的一部分演化為設計組件
完善設計元素使功能需求在設計模型中保持獨立使類擴展保持分離:ReserveRoom類需要updateAvailability()和retrieveDetails()兩個方法。前者是“預訂房間”特用,后者是公用。其處理方法有四種:
現(xiàn)行選擇編程困難使功能需求保持分離3使功能需求在設計模型中保持獨立使操作擴展保持獨立
1)總和:兩個用例切片需要從相同操作得到不同的輸出,并且操作的職責是提供兩種輸出的合并2)選擇:當用例切片需要從同一個操作得到不同的輸出,并且要求組合結果只有一種輸出操作擴展聲明包括
1)結構上下文:說明哪個操作是要增加的
2)行為上下文:說明擴展何時執(zhí)行
3)說明附加行為使擴展的功能需求保持分離1面向方面技術能夠使我們更好地在原有系統(tǒng)上進行擴展
該擴展流程應該在pointcut
UpdatingRoomAvailability返回沒有空閑房時
系統(tǒng)建立一個針對選定房間類型的帶唯一標識符的待處理訂單,然后將其放到等候列表中,再將此唯一標識符返回給客戶,用例結束。識別類:使擴展的功能需求保持分離2識別Pointcut,并將用例行為分配給類標識結構上下文:確定在何處運行這些操作擴展來調用擴展用例標識行為上下文:定義職責中的何處需要調用使擴展的功能需求保持分離3因此,得到了一個獨立的用例切片完成該擴展用例使非功能需求保持分離1分離非功能需求最有效的工具是基礎結構應用
識別類
標識Pointcut
將用例行為分配給類使非功能需求保持分離2使基礎結構用例保持分離
細化元素結構
在用例切片中使基礎結構保持分離使平臺特性保持分離最小設計視角合并了平臺特性Agenda面向對象開發(fā)技術與開發(fā)范型變遷橫切關注點橫切關注點的建模與分離彈性體系結構演變AOSD的應用保持關注點分離帶來的生產率提高假設某系統(tǒng)有N個獨立的需求,假設每個的工作量需X,則總工作量就是NX若N個需求未良好分離,就意味著每個需求的實現(xiàn)與其它需求的實現(xiàn)相互交迭,最壞時可能是每個需求的實現(xiàn)與N-1個需求相關,如果交迭部分的開發(fā)量是Y,則任務量就成了NX+N(N-1)Y假設N=20,X=20,Y=1,良好分離時工作量為400,未良好分離時顯然就是780,接近一倍。隨著Y值的增加,未良好分離的體系結構就會帶來越大的成本。
從何處入手用例建模與分析:對涉眾關注點捕獲的正確性和精確性是十分重要的。用例建模與分析適用于任何軟件開發(fā),不管是面向方面、面向對象還是其它的。建議針對基礎結構服務編寫用例。建議多練習,編寫出客戶和開發(fā)團隊都易于理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 配電網負荷動態(tài)平衡技術
- 保險行業(yè)數(shù)字化轉型模板
- 職業(yè)導論-2018-2019年房地產經紀人《職業(yè)導論》真題匯編
- 房地產交易制度政策-《房地產基本制度與政策》真題匯編4
- 要怎么寫問卷調查報告
- 人教版三年級數(shù)學下冊第三單元復式統(tǒng)計表綜合卷(含答案)
- 山西省朔州市部分學校2024-2025學年八年級上學期期末生物學試卷(含答案)
- 產權技術合同在跨國技術轉移中的法律風險與防范
- 蘇州中考英語模擬試卷單選題及答案
- 二零二五版房屋遺產繼承分配與拆除重建工程融資合同3篇
- 部編新改版語文一年級下冊《語文園地四》教學設計
- 2025年北京鐵路局集團招聘筆試參考題庫含答案解析
- 《藥品招商營銷概論》課件
- 曙光磁盤陣列DS800-G10售前培訓資料V1.0
- 寺廟祈?;顒臃桨?共6篇)
- 2025年病案編碼員資格證試題庫(含答案)
- 企業(yè)財務三年戰(zhàn)略規(guī)劃
- 2025新譯林版英語七年級下單詞表
- 提高膿毒性休克患者1h集束化措施落實率
- 山東省濟南市天橋區(qū)2024-2025學年八年級數(shù)學上學期期中考試試題
- 主播mcn合同模板
評論
0/150
提交評論