面向?qū)ο蟾攀鯻第1頁
面向?qū)ο蟾攀鯻第2頁
面向?qū)ο蟾攀鯻第3頁
面向?qū)ο蟾攀鯻第4頁
面向?qū)ο蟾攀鯻第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟾攀鲂彰豪铥惼疾┦?,副教授,美國?nèi)布拉加斯州大學(xué)奧馬哈分校訪問學(xué)者研究方向:軟件工程,軟件測試Tel:50214252E-mail:liliping@教師簡介第2頁,共40頁,2024年2月25日,星期天教師講課與學(xué)生練習(xí)相輔相成授課方式考核方式理論考試+平時成績+課程練習(xí)第3頁,共40頁,2024年2月25日,星期天ApplyingUMLandPatterns-AnIntroductiontoObject-OrientedAnalysisandDesignUML和模式應(yīng)用-面向?qū)ο蠓治雠c設(shè)計導(dǎo)論THEBESTObjectOrientatedAnalysisandDesigntutorialbook(A)在OOA/D、迭代式開發(fā)和UML方面是全球最暢銷的書籍之一,已被翻譯成多種語言并在業(yè)界和院校中被廣泛使用參考文獻第4頁,共40頁,2024年2月25日,星期天參考文獻第5頁,共40頁,2024年2月25日,星期天ReferencesCraigLarman“PeopleoftenaskmewhichisthebestbooktointroducethemtotheworldofOOdesign.EversinceIcameacrossit,ApplyingUMLandPatternshasbeenmyunreservedchoice.”--MartinFlower,author,UMLDistilledandRefactoring第6頁,共40頁,2024年2月25日,星期天軟件方法-業(yè)務(wù)建模和需求潘加宇著TheUnifiedModelingLanguageUserGuide(UML用戶指南)TheUnifiedModelingLanguageReferenceManual(UML參考手冊)GradyBoochJamesRumbaughIvarJacobson參考文獻第7頁,共40頁,2024年2月25日,星期天WebResources/software/rational//uml/////網(wǎng)絡(luò)資源第8頁,共40頁,2024年2月25日,星期天目標(biāo):能夠較熟練地使用UML表達設(shè)計思想運用面向?qū)ο笤O(shè)計的一般原則進行應(yīng)用系統(tǒng)的分析和設(shè)計掌握RationalRose環(huán)境與使用、UML圖的畫法課程內(nèi)容第9頁,共40頁,2024年2月25日,星期天

是軟件工程方向的重要內(nèi)容之一;是軟件工程方向?qū)W生必須掌握的基本技能之一。課程地位第10頁,共40頁,2024年2月25日,星期天

第1章面向?qū)ο蟾攀龅?1頁,共40頁,2024年2月25日,星期天1.什么叫面向?qū)ο竺嫦驅(qū)ο蠹夹g(shù)是一種以對象為基礎(chǔ),以事件或消息來驅(qū)動對象執(zhí)行處理的程序設(shè)計技術(shù)。從程序設(shè)計方法上來講,它是一種自下而上的程序設(shè)計方法,它不像面向過程程序設(shè)計那樣一開始就需要使用一個主函數(shù)來概括出整個程序,面向?qū)ο蟪绦蛟O(shè)計往往從問題的一部分著手,一點一點地構(gòu)建出整個程序。

1.1面向?qū)ο蠡靖拍畹?2頁,共40頁,2024年2月25日,星期天2.對象對象(object)是面向?qū)ο螅∣bject-Oriented,OO)系統(tǒng)的基本構(gòu)造塊,是一些相關(guān)的變量和方法的軟件集。對象是現(xiàn)實世界中某個具體的物理實體或概念在計算機邏輯中的映射和體現(xiàn)。物理對象:某種可被人感知的事物。如:學(xué)生、書籍等;概念性對象。如:國家、民族對象具有屬性(靜態(tài)特征)和操作(動態(tài)特征) 例如:汽車都有一些共同的屬性:品牌、型號和載重等。它們都有一些共同的行為:加速、減速、載客和運貨。面向?qū)ο蠡靖拍畹?3頁,共40頁,2024年2月25日,星期天3.類類(Class)是具有相同屬性和操作的一組對象的組合,也就是說,抽象模型中的“類”描述了一組相似對象的共同特征,為屬于該類的全部對象提供了統(tǒng)一的抽象描述。例如名為“學(xué)生”的類被用于描述為“學(xué)生管理系統(tǒng)”中的學(xué)生對象。類的定義要包含以下的要素第一,定義該類對象的數(shù)據(jù)結(jié)構(gòu)(屬性的名稱和類型)第二,定義對象所要執(zhí)行的操作。面向?qū)ο蠡靖拍畹?4頁,共40頁,2024年2月25日,星期天4.消息與事件所謂消息(Message)是指描述事件發(fā)生的信息,是對象間相互聯(lián)系和相互作用的方式。一個消息主要由5部分組成:消息的發(fā)送對象、消息的接收對象、消息傳遞方式、消息內(nèi)容(參數(shù))、消息的返回。所謂事件通常是指一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動作。事件作用于對象,對象識別事件并作出相應(yīng)反應(yīng)。對象通過對外提供的方法在系統(tǒng)中發(fā)揮自己的作用,當(dāng)系統(tǒng)中的其它對象請求這個對象執(zhí)行某個方法時,就向該對象發(fā)送一個消息,對象響應(yīng)這個請求,完成指定的操作。程序的執(zhí)行取決于事件發(fā)生的順序,由順序產(chǎn)生的消息來驅(qū)動程序的執(zhí)行。面向?qū)ο蠡靖拍畹?5頁,共40頁,2024年2月25日,星期天1.抽象(P6)將需要的事物進行簡化;將事物特征進行概括;將抽象模型組織為層次結(jié)構(gòu);使軟件重用得以保證。1.2面向?qū)ο蟮幕咎卣鞯?6頁,共40頁,2024年2月25日,星期天2.封裝封裝(Encapsulation)是把對象的狀態(tài)和行為綁到一起的機制,把對象形成一個獨立的整體,并且盡可能的隱藏對象的內(nèi)部細節(jié)。封裝有兩個含義:一是把對象的全部狀態(tài)和行為結(jié)合一起,形成一個不可分割的整體。對象的私有屬性只能夠由對象的行為來修改和讀取。二是盡可能隱蔽對象的內(nèi)部細節(jié),與外界的聯(lián)系只能夠通過外部接口來實現(xiàn)。封裝的信息屏蔽作用反映了事物的相對獨立性,我們可以只關(guān)心它對外所提供的接口,即能夠提供什么樣的服務(wù),而不用去關(guān)注其內(nèi)部的細節(jié)問題。比如說使用手機,我們關(guān)注的通常是這個手機能實現(xiàn)什么功能,而不太會去關(guān)心這個手機的是怎么一步步制造出來的。1.2面向?qū)ο蟮幕咎卣鞯?7頁,共40頁,2024年2月25日,星期天3.繼承繼承(Inheritance)是一種連接類與類的之間的層次模型。繼承是指特殊類的對象擁有其一般類的屬性和行為。繼承意味著“自動地擁有”,即在特殊類中不必重新對已經(jīng)在一般類中所定義過的屬性和行為進行定義,而是特殊類自動地、隱含地擁有其一般類的屬性和行為。繼承對類的重用性,提供了一種明確表述共性的方法。即一個特殊類既有自己定義的屬性和行為,又有繼承下來的屬性和行為。面向?qū)ο蟮牡幕咎卣鞯?8頁,共40頁,2024年2月25日,星期天4.多態(tài)多態(tài)性(Polymorphism)是指在兩個或多個屬于不同類中同一函數(shù)名對應(yīng)多個具有相似功能的不同函數(shù),可以使用相同的調(diào)用方式來調(diào)用這些具有不同功能的同名函數(shù)。面向?qū)ο蟮牡幕咎卣鞯?9頁,共40頁,2024年2月25日,星期天多態(tài)性分為兩種:編譯時的多態(tài)性:通過方法重載來實現(xiàn)。運行時的多態(tài)性:通過方法覆蓋來實現(xiàn)。多態(tài)性的實現(xiàn)方式:通過接口實現(xiàn)多態(tài)性通過繼承實現(xiàn)多態(tài)性通過抽象類實現(xiàn)的多態(tài)性多態(tài)第20頁,共40頁,2024年2月25日,星期天多態(tài)第21頁,共40頁,2024年2月25日,星期天1.3面向?qū)ο蟮拈_發(fā)方法的一般過程

OO方法中執(zhí)行主要活動的描述。主要步驟是分析、設(shè)計、實現(xiàn)及測試。面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計實現(xiàn)測試圖1.3OO方法的步驟第22頁,共40頁,2024年2月25日,星期天

OO方法中執(zhí)行主要活動的描述。主要步驟是分析、設(shè)計、實現(xiàn)及測試。獲取需求,建立需求模型。分析的典型活動:

1、獲取領(lǐng)域(問題域)知識;

2、定義系統(tǒng)功能(用例圖);

3、確定合適的類;

4、建立類的靜態(tài)模型(類圖);

5、描述對象的動態(tài)行為(狀態(tài)圖、協(xié)作圖、時序圖、活動圖);

6、驗證(專家對模型作靜態(tài)驗證);

7、給出基本的用戶界面原型(整體結(jié)構(gòu)的原型:主窗口的內(nèi)容、窗口之間的導(dǎo)航等)。面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計實現(xiàn)測試1.3面向?qū)ο蟮拈_發(fā)方法的一般過程第23頁,共40頁,2024年2月25日,星期天

OO方法中執(zhí)行主要活動的描述。主要步驟是分析、設(shè)計、實現(xiàn)及測試。

設(shè)計是分析結(jié)果在技術(shù)上的擴充和修改,重點是如何實現(xiàn)該系統(tǒng)。設(shè)計中的典型活動:1、將分析所得的類劃分為功能包,并從技術(shù)層面(用戶界面、數(shù)據(jù)庫處理、通信等)增加新包,建立包之間的通信聯(lián)系。2、標(biāo)識并發(fā)需求并建模。3、指出系統(tǒng)輸出的詳細格式:如用戶界面,報告,向其它系統(tǒng)發(fā)送的事務(wù)等。4、數(shù)據(jù)管理(建立類與表單的對應(yīng)關(guān)系,對數(shù)據(jù)庫的訪問機制)。5、異常處理6、分配類和構(gòu)件(構(gòu)件圖、配置圖)。還應(yīng)用偽代碼或者文字給出類的規(guī)約。面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計實現(xiàn)測試1.3面向?qū)ο蟮拈_發(fā)方法的一般過程第24頁,共40頁,2024年2月25日,星期天面向?qū)ο笤O(shè)計準(zhǔn)則面向?qū)ο笤O(shè)計的準(zhǔn)則包括模塊化、抽象、信息隱藏、低耦合和高內(nèi)聚等特征,見書P13。系統(tǒng)設(shè)計一般是先從高層入手,然后細化。系統(tǒng)設(shè)計要決定整個結(jié)構(gòu)及風(fēng)格,這種結(jié)構(gòu)為后面設(shè)計階段的更詳細策略的設(shè)計提供了基礎(chǔ)。

1.3面向?qū)ο蟮拈_發(fā)方法的一般過程第25頁,共40頁,2024年2月25日,星期天1.3面向?qū)ο蟮拈_發(fā)方法的一般過程

OO方法中執(zhí)行主要活動的描述。主要步驟是分析、設(shè)計、實現(xiàn)及測試。實現(xiàn)活動實際上就是編寫程序代碼,包括反復(fù)的編譯、連結(jié)、排錯等。并應(yīng)遵循傳統(tǒng)的編程準(zhǔn)則。

面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計實現(xiàn)測試第26頁,共40頁,2024年2月25日,星期天

OO方法中執(zhí)行主要活動的描述。主要步驟是分析、設(shè)計、實現(xiàn)及測試。測試的目的是發(fā)現(xiàn)代碼中的錯誤,測試的關(guān)鍵是確定高效的測試用例。測試的主要步驟有:1、面向?qū)ο蟮膯卧獪y試測試單元為封裝的類和對象,但不能孤立地測試單個操作,應(yīng)把操作作為類的一部分來測試。2、面向?qū)ο蟮募蓽y試

3、面向?qū)ο蟮拇_認測試類似傳統(tǒng)的確認測試和系統(tǒng)測試,根據(jù)動態(tài)模型和描述系統(tǒng)行為的腳本來設(shè)計測試用例,可用黑盒法。1.3面向?qū)ο蟮拈_發(fā)方法的一般過程面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計實現(xiàn)測試第27頁,共40頁,2024年2月25日,星期天什么是模型模型應(yīng)具有的特征為何要建立模型建模的意義1.4面向?qū)ο蠼5?8頁,共40頁,2024年2月25日,星期天什么是模型如果把現(xiàn)實世界中的某些事物看作是一種現(xiàn)實原型,那么模型就算對這種現(xiàn)實原型的一種抽象和模擬,以反映事物的本質(zhì)特征。模型既反映原型,又不等于原型。模型是實際系統(tǒng)或過程的代表或描述,它是實際系統(tǒng)的一部分屬性的抽象和模仿,而不是全部屬性的復(fù)制。模型的實質(zhì)是在一組簡化的假設(shè)條件下,描述一個實體活動的最本質(zhì)的屬性。第29頁,共40頁,2024年2月25日,星期天抽象性:突出重點方面,忽略無關(guān)緊要的細節(jié)。可理解性:易于使用者理解模型所表達的系統(tǒng)(建模的目標(biāo)對象)。精確性:應(yīng)該準(zhǔn)確地表達系統(tǒng)。確定性:能正確地推導(dǎo)出與系統(tǒng)有關(guān)的各種結(jié)論。廉價性:對于構(gòu)造和研究而言,比直接使用系統(tǒng)本身更加便宜。模型應(yīng)具有的特征第30頁,共40頁,2024年2月25日,星期天模型是對系統(tǒng)的一種抽象。抽象是人們處理復(fù)雜事務(wù)的一種基本手段之一。抽象有助于了解系統(tǒng)的本質(zhì)。在構(gòu)造一個復(fù)雜的系統(tǒng)時,必須從不同的角度來抽象系統(tǒng),使用準(zhǔn)確的符號,用模型來表示這種抽象。然后檢查這些模型是否符合系統(tǒng)的需求,并逐步添加細節(jié),從而將這些模型轉(zhuǎn)化為實現(xiàn)方案。為何要建立模型第31頁,共40頁,2024年2月25日,星期天模型是對現(xiàn)實的簡化,建模是為了更好地理解系統(tǒng)。建模的使用是軟件成功的一個基本因素.常見的模型展示相關(guān):建筑物模型、沙盤、公司總部的3D復(fù)制品…數(shù)據(jù)分析相關(guān):條形圖、餅狀圖…業(yè)務(wù)分析相關(guān):組織結(jié)構(gòu)圖、跨職能流程圖……設(shè)計相關(guān):建筑平面圖、管線圖、電路板設(shè)計圖建模的意義第32頁,共40頁,2024年2月25日,星期天模型的實質(zhì)

模型是對現(xiàn)實的簡化第33頁,共40頁,2024年2月25日,星期天模型的實質(zhì)

模型是對現(xiàn)實的簡化第34頁,共40頁,2024年2月25日,星期天通過建模,要實現(xiàn)以下4個目標(biāo):(1)便于開發(fā)人員展現(xiàn)系統(tǒng)。

——可視化visualization(2)允許開發(fā)人員指定系統(tǒng)的結(jié)構(gòu)或行為。

——詳述specification(3)提供指導(dǎo)開發(fā)人員構(gòu)造系統(tǒng)的模板。

——構(gòu)造construction(4)記錄開發(fā)人員的決策。

——文檔化documentation建模的目標(biāo)第35頁,共40頁,2024年2月25日,星期天具體到軟件所涉及的人員,包括用戶、軟件開發(fā)團隊、軟件的維護和技術(shù)支持者,系統(tǒng)建模有不同的作用。見書P16.軟件建模的作用第36頁

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論