uml對象技術與可視化建模基礎ppt課件_第1頁
uml對象技術與可視化建?;Appt課件_第2頁
uml對象技術與可視化建模基礎ppt課件_第3頁
uml對象技術與可視化建?;Appt課件_第4頁
uml對象技術與可視化建模基礎ppt課件_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

UML建模語言及工具,第2章對象技術與可視化建?;AAnOverviewofObjectTechnologyandVisualModeling,Review:AnApproachtotheObject-Oriented,上升到面向對象面向對象技術概述定義、利益、研究內容面向對象技術發(fā)展歷史(里程碑)、現(xiàn)狀、未來面向對象與結構化揚棄而非否定上升到面向對象利用面向對象的觀點認識客觀問題,-3-,學習線路圖,-4-,Agenda1,ObjectandClassFourPrinciplesofOOGeneralizationandPolymorphismPrinciplesofVisualModelingTheUMLProcessandvisualmodeling,-5-,Object,Informally,anobjectrepresentsanentity,eitherphysical,conceptual,orsoftwarePhysicalentityConceptualentitySoftwareentity,化學過程,-6-,Object-FormalDefinition,Anobjectisanentitywithawell-definedboundaryandidentitythatencapsulatesstateandbehavior.Stateisrepresentedbyattributesandrelationships.Behaviorisrepresentedbyoperations,methods,andstatemachines.,-7-,對象的標識,每一個對象都有一個唯一的標識,即使其狀態(tài)有可能與其它對象一樣,班機747on11/10,班機747on11/11,班機747on11/12,-8-,對象的標識,Professor“JClark”teachesBiology,Professor“JClark”teachesBiology,-9-,對象的狀態(tài),一個對象的狀態(tài)是它反映于現(xiàn)實世界的一系列屬性:參數的數值(也就是,與對象有關系的數據)它與其它對象的關系,可能的狀態(tài):停泊運營著陸終止,班機747,-10-,對象的狀態(tài),Stateisaconditionorsituationduringthelifeofanobject,whichsatisfiessomecondition,performssomeactivity,orwaitsforsomeevent.Thestateofanobjectnormallychangesovertime.,Name:JClarkEmployeeID:567138DateHired:July25,1991Status:TenuredDiscipline:FinanceMaximumCourseLoad:3classes,Name:JClarkEmployeeID:567138HireDate:07/25/1991Status:TenuredDiscipline:FinanceMaxLoad:3,ProfessorClark,-11-,對象的行為,定義當其它對象發(fā)出請求時,該對象如何反應由為對象定義的一系列操作決定,-12-,對象的行為,Behaviordetermineshowanobjectactsandreacts.Thevisiblebehaviorofanobjectismodeledbyasetofmessagesitcanrespondto(operationsthattheobjectcanperform).,ProfessorClark,ProfessorClarksbehaviorSubmitFinalGradesAcceptCourseOfferingTakeSabbaticalSetMaxLoad,SubmitFinalGrades(),AcceptCourseOffering(),TakeSabbatical(),SetMaxLoad(),-13-,Sample-AnObject,-14-,RepresentingObjectsintheUML,Anobjectisrepresentedasarectanglewithanunderlinedname.,NamedObject,AnonymousObject,-15-,Class,Aclassisadescriptionofasetofobjectsthatsharethesameattributes,operations,relationships,andsemantics.Anobjectisaninstanceofaclass.AclassisanabstractioninthatitEmphasizesrelevantcharacteristics.Suppressesothercharacteristics.,-16-,Sample-AClass,ClassEmployee,PropertiesNameAddressPositionSalaryStartDateEndDate,BehaviorHireFirePromoteIncreaseSalaryRetire,-17-,RepresentingClassesintheUML,Aclassisrepresentedusingarectanglewithcompartments.,屬性,操作,-18-,具有相同特征和操作的對象可以放到類中。在下面這副圖中您看到了什么類?,類,-19-,對象的類,您看到了幾個類?,-20-,屬性,屬性是類的特征或特性屬性的值是某一特定對象的屬性值在類中屬性名必須是唯一的每一個類的實例都有為這個類定義的所有屬性的值,銀行帳戶類屬性帳號銀行名稱擁有者金額,Mary的銀行帳戶屬性值12345678FirstNationalBankMarySmith$1024.48,-21-,屬性取決于視點,從銷售人員的角度型號價格顏色里程數,一輛汽車具有的屬性:,從維修人員的角度馬達類型傳動類型維修記錄,-22-,操作,對象的行為是由為此對象定義的一系列操作決定的操作訪問或修改對象的屬性值一個類可能同時存在多個實例,也可能在某一時刻沒有實例一個類的所有實例都可以使用在這個類中定義的操作,-23-,類和對象,對象,實體,類,抽象數據類型,計算機世界,實例化,抽象,映射,映射,現(xiàn)實世界,-24-,類是生成對象的模板,類是生成對象的模板類的定義中包含有產生和刪除對象的操作一個類定義了使用哪種數據表示法來描述屬性每一個實例都采用有屬性值的數據表示法一個類通過一系列操作來定義行為這種操作能在每個實例中激活,班機,-25-,類和對象的關系,每一個對象都是某一個類的實例每一個類在某一時刻都有零個或更多的實例類是靜態(tài)的;它們的存在、語義和關系在執(zhí)行前就已經定義好了對象是動態(tài)的;它們在程序執(zhí)行時可以被創(chuàng)建和刪除,-26-,Sample-ObjectandClass,現(xiàn)實世界中的學生對象和對Student類的建模,Bob,John,Kate,Beverly,Student屬性方法,一些學生對象,Student類,-27-,Agenda-2,ObjectandClassFourPrinciplesofOOGeneralizationandPolymorphismPrinciplesofVisualModelingTheUMLProcessandvisualmodeling,-28-,BasicPrinciplesofObjectOrientation,-29-,抽象,抽象(abstraction)就是過濾掉對象的一部分特性和操作,直到只剩下所需要的屬性和操作。,一些權威認為抽象對于建模者來說是最重要的技術,也就是說要搞清楚什么應該納入模型中,什么應該舍去。,抽取共同性,例如,準備編制游戲軟件,其中需要實現(xiàn)不同人物使用魔法的功能。每個人物具有不同的魔法,并具備使用魔法的行為,抽象得到的人物類圖如:,-30-,Example:Abstraction,一個項目的抽象依賴于定義抽象的上下文,-31-,封裝性-Encapsulation,Hidesimplementationfromclients.Clientsdependoninterface.,-32-,封裝性,封裝(encapsulation)是軟件模塊化思想的體現(xiàn),也是面向對象的根本之一封裝實現(xiàn)信息隱藏和數據抽象信息隱藏的出發(fā)點:對象的私有數據不能被外界存取,只能以合法的手段訪問將數據抽象為一組行為,而不是內部的具體數據結構,把用戶隔離在細節(jié)之外,從而使得軟件各個部分依賴于抽象層,各模塊獲得自由,可以變化細節(jié),可以替換,-33-,ProfessorClarkneedstobeabletoteachfourclassesinthenextsemester.,SubmitFinalGrades(),AcceptCourseOffering(),TakeSabbatical(),ProfessorClark,SetMaxLoad(),Name:JClarkEmployeeID:567138HireDate:07/25/1991Status:TenuredDiscipline:FinanceMaxLoad:4,SetMaxLoad(4),-34-,為什么要封裝,結構化程序設計:程序=算法+數據結構,全局數據,算法,算法,算法,算法,一個大問題:如何保證數據的一致性?,-35-,范例:數據一致性,classShippingAddresspubliclongcityCode;publicStringaddress;,城市代碼例如:北京為01上海為02,郵政地址“北京朝陽區(qū)靜安里6號”,操作這個數據結構的程序員,必須嚴格遵守一系列業(yè)務邏輯規(guī)則,否則很容易破壞數據的一致性結構化程序設計處理大項目時,多人協(xié)同開發(fā)時,本質上無法保證數據的一致性,classShippingAddressprivatelongcityCode;privatestringaddress;publiclongModifyAddress(Stringaddress),-36-,信息隱藏保證數據一致性,通過信息隱藏:1.外圍代碼無法隨意訪問底層數據,只能以合乎規(guī)范的方式操作數據2.保證數據一致性的邏輯只需正確開發(fā)一次,便可以供所有人反復使用3.業(yè)務邏輯知識被局限起來,協(xié)同開發(fā)難度降低信息隱藏是面向對象更適應大型軟件開發(fā)的根本原因之一,-37-,數據隱藏的實現(xiàn):C,文件域內的數據隱藏,粒度太粗/*本文件域的私有數據*/staticintuse_count=0;voidfunc(intarg)+use_count;C的結構體無數據隱藏機制:structSimpleObject_tintmyInteger;void(*setInteger)(int);,-38-,數據隱藏的實現(xiàn):C+,用private訪問級別關鍵字定義私有數據,隱藏內部數據structSimpleObjectprivate:intmyInteger;public:voidsetInteger(inti);SimpleObject(inti=0):myInteger(i)使用:SimpleObjectso(8);so.myInteger=16;/compileerrorso.setInteger(16);/OKC+對于對象私有數據的隱藏,完全是靠編譯器保證,而由于C+過于強大的指針運算能力,編譯器很容易被欺騙,所以,-39-,1#include2usingnamespacestd;345classA67private:8/a20,21intA:GetA()2223returna;242526doubleA:GetB()2728returnb;2930,-40-,31int_tmain(intargc,_TCHAR*argv)3233Atest;3435coutbeforepointeraccess:n36test.a=test.GetA()n37test.b=test.GetB()nendl;38,43/valuechangingbypointer!44*privateA=1;45*privateB=2.5;4647coutafterpointeraccess:ntest.a=test.GetA()ntest.b=test.GetB()nDraw();main()ShapeaShape;CircleaCircle;SphereaSphere;DrawShape(,-58-,應用多態(tài)性,假設我們有一個數組sharr,里面放著一排Shape,但是不知道哪些是Rectangle,哪些是Circle。利用多態(tài)性,我們可以:for(inti=0;isharr.length;+i)Shapeshape=(Shape)sharri;shape.draw();遍歷整個數組的過程中,各個Shape自己知道應當如何在畫布上繪制自己。shape.draw()這同一行代碼在shape指向不同的對象時表現(xiàn)出不同的行為,這就是所謂多態(tài)性,-59-,Agenda-4,ObjectandClassFourPrinciplesofOOGeneralizationandPolymorphismPrinciplesofVisualModelingTheUMLProcessandvisualmodeling,-60-,WhatIsaModel?,Amodelisasimplification(簡化)ofreality,-61-,WhyModel?,Modelingachievesfouraims:Helpsyoutovisualizeasystemasyouwantittobe.Permitsyoutospecifythestructureorbehaviorofasystem.Givesyouatemplatethatguidesyouinconstructingasystem.Documentsthedecisionsyouhavemade.YoubuildmodelsofcomplexsystemsbecauseyoucannotcomprehendsuchasysteminitsentiretyYoubuildmodelstobetterunderstandthesystemyouaredeveloping,-62-,建模的意義,模型是對現(xiàn)實的簡化,建模是為了更好地理解系統(tǒng)。模型幫助我們按照實際情況或需求對系統(tǒng)可視化;(掌握不了文字,畫幅畫代替)模型允許我們詳細說明系統(tǒng)的結構、行為;模型給出了一個構造系統(tǒng)的模板;模型對我們作出的決策進行文檔化。(先有文檔,再有代碼),-63-,TheImportanceofModeling,PaperAirplane,FighterJet,LessImportant,MoreImportant,-64-,Principle1:TheChoiceofModelIsImportant,ThemodelsyoucreateprofoundlyinfluencehowaproblemisattackedandhowasolutionisshapedInsoftware,themodelsyouchoosegreatlyaffectyourworldviewEachworldviewleadstoadifferentkindofsystem,-65-,Principle2:LevelsofPrecisionMayDiffer,Everymodelmaybeexpressedatdifferentlevelsofprecision(精度)Thebestkindsofmodelsletyouchooseyourdegreeofdetail,dependingon:WhoisviewingthemodelWhytheyneedtoviewit,-66-,Principle3:TheBestModelsAreConnectedtoReality,AllmodelssimplifyrealityAgoodmodelreflectspotentiallyfatalcharacteristicsThetrickistobesurethatyoursimplificationsdontmaskanyimportantdetails.Agoodmodelrevealsanypotentiallyfatalflawsindesign,-67-,Principle4:NoSingleModelIsSufficient,Nosinglemodelissufficient.Everynon-trivialsystemisbestapproachedthroughasmallsetofnearlyindependentmodels.Createmodelsthatcanbebuiltandstudiedseparately,butarestillinterrelated,-68-,建模的原理,選擇創(chuàng)建什么模型對如何動手解決問題和如何形成解決方案有意義深遠的影響。三只小豬蓋房子摩天大廈每一種模型可以在不同的精度級別上表示。最好的模型可以讓你根據觀察的角色及原因選擇它的詳細程度。對每個系統(tǒng)最好用一組幾乎獨立的模型去處理。飛機模型,-69-,Agenda-5,ObjectandClassFourPrinciplesofOOGeneralizationandPolymorphismPrinciplesofVisualModelingTheUMLProcessandvisualmodeling,-70-,TheUML,UMLYouMustLearnUMLUnifiedModelingLanguageUML是一種標準的圖形化建模語言,它是面向對象分析與設計的一種標準表示,它:不是一種可視化的程序設計語言,而是一種可視化的建模語言不是工具或知識庫的規(guī)格說明,而是一種建模語言規(guī)格說明,是一種表示的標準不是過程,也不是方法,但允許任何一種過程和方法使用它,-71-,WhatIstheUML?,TheUMLisalanguageforVisualizingSpecifyingConstructingDocumentingtheartifactsofasoftware-intensivesystem,UnifiedModelingLanguage(統(tǒng)一建模語言)是對象管理組織(OMG)制定的一個通用的、可視化的建模語言標準,可以用來可視化(visualize)、描述(specify)、構造(construct)和文檔化(document)軟件密集型系統(tǒng)的各種工件(artifacts,又譯制品),-72-,UML是標準的符號,1.用UML畫圖很容易,擺脫符號煩惱,全心面對問題,2.UML僅僅是一種表達形式,用好UML首先需要掌握OOAD的基本原則和方法,并在一定的軟件開發(fā)過程(如統(tǒng)一過程UP/USDP/RUP、XP等)的指導下進行有取舍的運用,但知道要畫什么是困難的!,-73-,選擇UML-1,MartinFlower:如果你正在使用其它的舊技術,我強列建議您馬上轉用UML,因為它明顯地將成為符號系統(tǒng)的統(tǒng)一標準。如果你正在考慮開始使用設計符號來工作,UML是一個好的選擇,因為它已經統(tǒng)治業(yè)界了,-74-,選擇UML-2,UML不是萬能的,很多場合并不適合使用1)傳統(tǒng)的做法已完全適用,對OOAD的要求也不高,項目非常成功,無任何改進的必要2)開發(fā)的系統(tǒng)比較簡單,直接用源碼配上少量的文字就能解決問題,軟件開發(fā)文檔也無需添加圖形來輔助說明3)開發(fā)人員更習慣于直接閱讀源碼,用源碼交流,這樣做不影響工作效率和質量4)開發(fā)的系統(tǒng)本身不屬于OO方法、UML適用范圍,-75-,選擇UML-3,很多情況下,推薦使用UML:1)OO方法是項目決定采用的方法論,是整個項目或產品成功的關鍵2)開發(fā)人員感覺用源碼說明不了真正的問題,希望利用可視化建模語言簡化文檔,提高交流效率,準確抓住問題本質3)系統(tǒng)的規(guī)模和設計都比較復雜,需要用圖形抽象地表達復雜的概念,增強設計的靈活性、可讀性和可理解性,以便暴露深層次的設計問題,降低開發(fā)風險4)組織希望記錄已成功項目、產品的公共設計方案,在開發(fā)新項目時可以參考、重用過去的設計,以節(jié)省投入,提高開發(fā)效率和整體成功率5)有必要采用一套通用的圖形語言和符號體系描述組織的業(yè)務流程和軟件需求,促進業(yè)務人員、軟件開發(fā)人員之間一致、高效的交流,-76-,UML發(fā)展背景,面向對象建模語言產生于1970年代中期1990年代初,建模語言數量達到50多種眾多語言各有千秋,缺乏通用性語言之間的細小差別妨礙了用戶的交流1990年代中期,三位主要的OO建模大師:Booch,Rumbaugh,Jacoson開始致力于建立統(tǒng)一建模語言的工作,-77-,三位面向對象大師,-78-,UML誕生,公眾反饋,OOPSLA95UnifiedMethod0.8,工業(yè)化標準化統(tǒng)一化分散的各部分,Booch93OMT-2,1996.6和1996.10UML0.9&0.91,1997.9公布UML1.1,1997.1公布UML1.0,合作伙伴意見,1997.11.17UML1.1被OMG接納為標準,Booch91OMT-1其他方法OOSE,-79-,UML統(tǒng)一,-80-,Agenda-6,ObjectandClassFourPrinciplesofOOGeneralizationandPolymorphismPrinciplesofVisualModelingTheUMLProcessandvisualmodeling,-81-,HowmuchyoucandependonUML?,TheUMLisnotaprocessormethodologyobject-orientedanalysisanddesignGuidelines(指導、準則)fordesignMuchmoreimportant:Skillindesigningwithobjects.,-82-,ALanguageIsNotEnoughtoBuildaSystem,-83-,WhatIsaProcess?,DefinesWhoisdoingWhat,Whentodoit,andHowtoreachacertaingoal.,-84-,開發(fā)過程概述,傳統(tǒng)開發(fā)過程瀑布模型統(tǒng)一軟件開發(fā)過程(RUP),-85-,傳統(tǒng)開發(fā)過程,瀑布模型,Requirements,Analysis,Design,Implementation,Test,Time,-86-,OOAD的開發(fā)過程,大項目分解為一些子項目使用UML工具統(tǒng)一軟件開發(fā)過程(RUP)是一個迭代、遞增的開發(fā)過程,-87-,RUP的軟件開發(fā)生命周期,-88-,OverviewoftheUnifiedProcess,TheUnifiedProcessisIterativeandincrementalUsecasedrivenArchitecture-centric,-89-,OOAD的開發(fā)過程,InceptionDefinethescopeoftheprojectanddevelopbusinesscase,ElaborationPlanproject,specifyfeatures,andbaselinethearchitecture,ConstructionBuildtheproduct,TransitionTransitiontheproducttoitsusers,-90-,MajorMilestones,-91-,PhasesandIterations,Aniterationisasequ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論