




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
會計學1C面向對象分析設計方法2什么是面向對象開發(fā)方法面向對象技術概述根據(jù)Coad和Yourdon的定義,按照以下4個概念設計和實現(xiàn)的系統(tǒng),稱為是面向對象的。 面向對象=對象(object)+類(classification)+繼承(inheritance)+通信(communicationwithmessages)
面向對象的方法是一種運用對象、類、繼承、封裝、聚合、消息傳送、多態(tài)性等概念來構造系統(tǒng)的軟件開發(fā)方法。OOSD(Object-OrientedSoftwareDevelopment)法是一種把面向對象的思想應用于軟件開發(fā)過程,指導開發(fā)活動的系統(tǒng)方法。第1頁/共42頁3面向對象方法的特點(I)面向對象技術概述面向對象方法按照人類的自然思維方式,面對客觀世界建立軟件系統(tǒng)模型。對象、類、繼承、封裝、消息等基本概念符合人類的自然思維方式。有利于對業(yè)務領域和系統(tǒng)責任的理解,有利于人員的交流。面向對象方法對需求變化有較好的適應性面向對象的封裝機制使開發(fā)人員可以把最穩(wěn)定的部分(即對象)作為構筑系統(tǒng)的基本單位,而把容易發(fā)生變化的部分(即屬性與操作)封裝在對象之內。對象之間通過接口聯(lián)系,使得需求變化的影響盡可能地限制在對象的內部。第2頁/共42頁4面向對象方法的特點(II)面向對象技術概述面向對象方法支持軟件復用對象具有封裝性和信息隱蔽等特性,使其容易實現(xiàn)軟件復用。對象類可以派生出新類,類可以產(chǎn)生實例對象,從而實現(xiàn)了對象類數(shù)據(jù)結構和操作代碼的軟構件復用。面向對象程序設計語言的開發(fā)環(huán)境一般預定義了系統(tǒng)動態(tài)連接庫,提供大量公用程序代碼,提高了開發(fā)效率和質量。面向對象的軟件系統(tǒng)可維護性好系統(tǒng)由對象構成,對象是一個包含屬性和操作兩方面的獨立單元,對象之間通過消息聯(lián)系。系統(tǒng)出錯時容易定位和修改,而且不至于牽一發(fā)而動全身。第3頁/共42頁51.2面向對象技術發(fā)展歷史面向對象技術概述初始階段1960’s:Simulaprogramminglanguage1970’s:Smalltalkprogramminglanguage
發(fā)展階段1980’s:Objective-C,C++,Self,Flavors,etc.成熟階段1990’s:Object-orientedanalysisanddesignmethodologies(Booch,OMT,OOSE,etc.),Java1997:TheUnifiedModelingLanguage(UML)standardizedbytheObjectManagementGroup(OMG)第4頁/共42頁61.3面向對象的概念面向對象技術概述
面向對象技術的常見術語Object 對象Class 類Attribute 屬性Operation/Method 操作/方法Encapsulation 封裝Inheritance 繼承Polymorphism 多態(tài)Message 消息第5頁/共42頁71.3面向對象的概念——對象(Object)面向對象技術概述對象是系統(tǒng)中用來描述客觀事物的一個實體,它是構成系統(tǒng)的一個基本單位,由一組屬性和對這組屬性進行操作的一組服務組成。對象只描述客觀事物本質的、與系統(tǒng)目標有關的特征,而不考慮那些非本質的、與系統(tǒng)目標無關的特征。對象的兩個基本要素:屬性和服務屬性是用來描述對象靜態(tài)特征的一個數(shù)據(jù)項。服務是用來描述對象動態(tài)特征(行為)的一個操作序列。對象之間通過消息通信,系統(tǒng)功能通過新對象的建立和對象之間的消息通信來實現(xiàn)。第6頁/共42頁81.3面向對象的概念——類(Class)面向對象技術概述類是具有相同屬性和服務的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內部包括屬性和服務兩個主要部分。同類對象具有相同的屬性和方法,是指它們的定義形式相同,而不是說每個對象的屬性值都相同。類體現(xiàn)了人們認識事物的基本思維方法分類(Classification)第7頁/共42頁91.3面向對象的概念——類vs.對象面向對象技術概述EmployeenamepositionsalarystartDateendDatehire()fire()promote()salary()retire()類名屬性操作王平王平項目經(jīng)理6000元/月1999.6.262001.5.25hire()fire()promote()salary()retire()對象名屬性操作第8頁/共42頁101.3面向對象的概念——類vs.對象面向對象技術概述類與對象的比較同類對象具有相同的屬性和服務,是指它們的定義形式相同,而不是說每個對象的屬性值都相同。類是靜態(tài)的,類的存在、語義和關系在程序執(zhí)行前就已經(jīng)定義好了。對象是動態(tài)的,對象在程序執(zhí)行時可以被創(chuàng)建和刪除。在面向對象的系統(tǒng)分析和設計中,并不需要逐個對對象進行說明,而是著重描述代表一批對象共性的類。第9頁/共42頁111.3面向對象的概念——封裝面向對象技術概述封裝是把對象的屬性和方法結合成一個獨立的系統(tǒng)單位,并盡可能隱蔽對象的內部細節(jié)。封裝使對象形成兩個部分:接口和實現(xiàn)對用戶來說,接口是可見的,實現(xiàn)是不可見的。封裝可以保護對象,避免用戶誤用,也可以保護客戶端,其實現(xiàn)過程的改變不會影響到相應客戶端的改變。與封裝密切相關的概念是可見性,它是指對象的屬性和服務允許對象外部存取和引用的程度。第10頁/共42頁121.3面向對象的概念——繼承面向對象技術概述特殊類的對象擁有其一般類的全部屬性與方法,稱作特殊類對一般類的繼承。與一般類/特殊類等價的其他術語父類/子類、超類/子類、基類/派生類、……使用繼承可以增加軟件重用的機會繼承可分為單繼承和多繼承單繼承是指子類只從一個父類繼承多繼承是指子類從多個父類繼承第11頁/共42頁131.3面向對象的概念——單繼承面向對象技術概述交通工具陸上交通工具空中交通工具第12頁/共42頁141.3面向對象的概念——多繼承面向對象技術概述交通工具陸上交通工具空中交通工具小轎車卡車兩用交通工具飛機第13頁/共42頁151.3面向對象的概念——多態(tài)性面向對象技術概述多態(tài)是指在一般類中定義的屬性或方法被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。GraphDraw()CircleDraw()RectangleDraw()Draw()methodisoverriddentosupplyshape-specificdrawing第14頁/共42頁161.3面向對象的概念——消息面向對象技術概述消息是對象發(fā)出的服務請求,一般包含提供服務的對象標識、服務標識、輸入信息和應答信息等信息。一個對象向另一個對象發(fā)消息請求某項服務,接收消息的對象響應該消息,激發(fā)所要求的服務操作,并把操作結果返回給請求服務的對象。采用消息(而不是函數(shù)調用)這個術語的好處更接近人們日常思維所采用的術語;其涵義更具有一般性,如在分布式環(huán)境中。第15頁/共42頁17第九講面向對象分析設計方法1、面向對象技術概述
1.1面向對象方法的定義及特點
1.2面向對象技術發(fā)展歷史
1.3面向對象的概念2、面向對象的開發(fā)方法
2.1面向對象分析(OOA)
2.2面向對象設計(OOD)
2.3面向對象編碼(OOP)3、面向對象建模方法第16頁/共42頁18Astory(I)從前有兩個人要學中國上乘武功——輕功,一個叫大聰,另一個叫二呆。大聰頭腦靈活,二呆為人老實。他們到深山里找到一位老和尚,想要和他學輕功。老和尚讓他們先砍一棵大樹,做成練功的梅花樁,然后讓他們下山各買了一個籮筐和一頭小豬,再教他們簡單的武術套路。讓他們做到下面的要求:①
每天早晨要割青草喂飽小豬;②
背著小豬在木樁上操練武術套路;③
每天練完后將木樁的四周刨掉一層。過了一個月,沒見老和尚教什么輕功。大聰打聽到另一座山上有個輕功高手,想去拜師學習,叫二呆一起去,二呆說才來一個月不好意思就這么離開,于是二呆就留下來了。日復一日,二呆沒感覺太辛苦,只是有點簡單而枯燥。日子過得很快,一年過去了,小豬長成大豬,粗大木樁變成小桿桿,二呆還是老樣子地操練。
第17頁/共42頁19Astory(II)大聰回來了,大聰問二呆有沒有從老和尚身上學到輕功,二呆說還沒有,并問大聰有沒有學到輕功,大聰說也沒有。但大聰又聽說有個更高明的高手,要二呆一起去學習。于是二呆和大聰來到老和尚面前,二呆對老和尚說要跟大聰?shù)絼e的地方去學輕功。老和尚一聽,生氣了,把二呆逼到墻角,接著用腳往二呆下盤一掃,二呆急了往上一蹬,想不到的事發(fā)生了:二呆一下躥到了屋頂上——二呆會輕功了???大聰看呆了。老和尚叫二呆下來,跟二呆說你可以走了。二呆下來想了一會兒,跪下感謝老和尚……后來二呆沒走,繼續(xù)跟老和尚學了十年,成了飛檐走壁的高師。第18頁/共42頁20Astory(III)高深莫測的武功,其實就這么簡單!這里有老和尚的練功方法的巧妙設計:小豬體重每天增加一些(3~5兩重),木樁直徑每天少一點(1~2毫米),都感覺不出變化,但一年下來小豬變大豬,木樁直徑由幾十厘米變成幾厘米,腳下的功力(承受重量及穩(wěn)定性)不知不覺地每天都在長進。一年后去掉大豬的負擔,雖然沒有上乘的輕功也應有些入門了。
面向對象也像是上乘功夫,不是一兩個月可以學成的,也需要幾年的磨煉,但只要每天學習和體會一點,終可以學到面向對象方法和編程思想。
第19頁/共42頁21面向對象開發(fā)方法的組成面向對象開發(fā)方法
OOSD由三部分組成:
OOA(Object-OrientedAnalysis)面向對象的分析
OOD(Object-OrientedDesign)面向對象的設計
OOP
(Object-OrientedProgram)面向對象的程序設計OOAOOA強調的是對一個系統(tǒng)中的對象特征和行為的定義。建立系統(tǒng)的三類模型。與OOA密切配合順序實現(xiàn)對現(xiàn)實世界的進一步建模。OOP是面向對象的技術中發(fā)展最快的,使用面向對象的程序設計語言,進行編碼。OOD第20頁/共42頁22面向對象開發(fā)方法的組成(I)面向對象開發(fā)方法OOA法要解決“作什么”的問題。其基本任務就是要建立三種模型:狀態(tài)模型(動態(tài)模型)
描述任何時刻對象的聯(lián)系及其聯(lián)系的改變,即時序。常用狀態(tài)圖,事件追蹤圖描述。處理模型(函數(shù)模型)
描述系統(tǒng)內部數(shù)據(jù)的傳送處理。對象模型(信息模型)定義構成系統(tǒng)的類和對象,它們的屬性與操作。1、OOA法第21頁/共42頁23面向對象開發(fā)方法的組成(II)面向對象開發(fā)方法
上述的三種模型各自從不同側面反映了系統(tǒng)的實質性內容。一個典型的軟件系統(tǒng)綜合了上述3方面的內容:它使用數(shù)據(jù)結構(對象模型),執(zhí)行操作(動態(tài)模型),并且完成數(shù)據(jù)值的變化(功能模型)。1、OOA法
對任何大型系統(tǒng)來說,三種模型都是必不可少的。在三大模型中,最重要、最基本、最核心的是對象模型。第22頁/共42頁24面向對象開發(fā)方法的組成(II)面向對象開發(fā)方法2、OOD
法
在需求分析的基礎上,進一步解決“如何作”的問題,OOD法也分為概要設計和詳細設計。概要設計:細化對象行為,添加新對象,認定類,組類庫,確定外部接口及主要數(shù)據(jù)結構詳細設計:加細對象描述3、OOP
法使用面向對象的程序設計語言,如C++進行程序設計。
Coad和Yourdon給出一個面向對象的定義:
面向對象=對象+類+繼承+消息如果一個軟件系統(tǒng)是按照這樣四個概念設計和實現(xiàn)的,則可以認為這個軟件系統(tǒng)是面向對象的。第23頁/共42頁25第九講面向對象分析設計方法1、面向對象技術概述
1.1面向對象方法的定義及特點
1.2面向對象技術發(fā)展歷史
1.3面向對象的概念2、面向對象的開發(fā)方法
2.1面向對象分析(OOA)
2.2面向對象設計(OOD)
2.3面向對象編碼(OOP)3、面向對象建模方法第24頁/共42頁26面向對象分析OOA面向對象開發(fā)方法
面向對象分析OOA(Object-OrientedAnalysis)的目標是完成對所求解問題的分析,確定系統(tǒng)“作什么”,并建立系統(tǒng)的模型。OOA的基本任務
運用面向對象的方法,對問題域和系統(tǒng)責任進行分析和理解,找出描述它們的類和對象,定義其屬性和操作,及其結構、靜態(tài)聯(lián)系和動態(tài)聯(lián)系。第25頁/共42頁27面向對象分析OOA面向對象開發(fā)方法獲取用戶基本需求標識類和對象定義類的結構表示類(對象)間的關系為對象行為建模圖1OOA分析過程1,OOA的分析過程:第26頁/共42頁28面向對象分析OOA面向對象開發(fā)方法1,OOA的分析過程:1、獲取用戶基本需求
用戶與開發(fā)者之間進行充分交流,常用Usercase來收集和描述用戶的需求。即先標識使用該系統(tǒng)的不同的行為者(actor)。
行為者所提出的每個使用場景(或功能)稱為一個用例,所有的用例則構成完整的系統(tǒng)需求。第27頁/共42頁29面向對象分析OOA面向對象開發(fā)方法確定最終對象
可根據(jù)以下原則確定:需要保留的信息,需要的服務。從問題域或用例描述入手,發(fā)現(xiàn)對象。
對象可能的形式有:外部實體、事物、發(fā)生的事件、角色、組織單位、場所、構造物等。標識屬性
從本質上講,屬性定義了對象??蓮膯栴}的陳述中或通過對類的理解而標識出屬性。定義操作
操作定義了對象的行為并以某種方式修改對象的屬性。操作分為:對數(shù)據(jù)的操作,計算操作,控制操作。2、標識類和對象標識類與對象是一致的。在確定系統(tǒng)的用例后,可標識類及類的屬性和操作。第28頁/共42頁30面向對象分析OOA面向對象開發(fā)方法3、定義類的結構類的結構有:一般—特殊(generalization-specialization)結構整體—部分(whole-part)結構
用“對象-關系模型”描述了系統(tǒng)的靜態(tài)結構。5、建立對象-行為模型描述了系統(tǒng)的動態(tài)行為。4、建立類(對象)間的關系第29頁/共42頁31第九講面向對象分析設計方法1、面向對象技術概述
1.1面向對象方法的定義及特點
1.2面向對象技術發(fā)展歷史
1.3面向對象的概念2、面向對象的開發(fā)方法
2.1面向對象分析(OOA)
2.2面向對象設計(OOD)
2.3面向對象編碼(OOP)3、面向對象建模方法第30頁/共42頁32面向對象設計OOD面向對象開發(fā)方法OOD是面向對象分析到實現(xiàn)的一個橋梁。面向對象分析——
建立問題域模型(“做什么”)面向對象設計——
建立求解域模型(“怎么做”)
面向對象的設計OOD(Object-OrientedDesign)是面向對象方法在軟件設計階段應用與擴展的結果。OOD與OOA沒有明顯的分界,采用相同的符號。第31頁/共42頁33面向對象設計OOD面向對象開發(fā)方法OOD模型:OOD模型分為4個部分一、面向對象設計準則:
1)模塊化 2)抽象3)信息隱藏
4)弱耦合 5)強內聚6)可重用二、面向對象設計的主要內容有:
1)問題域部分的設計
2)人機交互部分的設計
3)任務管理部分的設計
4)數(shù)據(jù)管理部分的設計PDC問題域組元
HIC人機界面組元TMC任務管理組元DMC數(shù)據(jù)管理組元主題層對象層結構層屬性層服務層圖2設計模型第32頁/共42頁34面向對象設計的過程面向對象開發(fā)方法1,設計對象與類在OOA對象模型的基礎上,具體設計對象與類的屬性、服務操作,設計對象與類的各種外部聯(lián)系的實現(xiàn)結構,設計消息與事件的內容和格式等。類和對象的設計應當充分利用預定義的系統(tǒng)類庫或其他來源的現(xiàn)有的類,將它們加到解決方案中去,并采用繼承、復用、演化等方法設計所需要的新類。第33頁/共42頁35面向對象設計的過程面向對象開發(fā)方法2,設計系統(tǒng)結構設計系統(tǒng)結構的主要任務是設計組件與子系統(tǒng),以及它們相互之間的靜態(tài)和動態(tài)關系。軟件系統(tǒng)的結構通常由兩種方式:層次結構和塊狀結構。3,設計問題論域子系統(tǒng)問題論域子系統(tǒng)負責實現(xiàn)領域的業(yè)務服務,如一個教學管理系統(tǒng)的業(yè)務領域是教學管理,向用戶提供課程管理、成績管理、教學計劃安排等服務。問題論域子系統(tǒng)應包括與應用領域的業(yè)務直接有關的全部類和對象。第34頁/共42頁36面向對象設計的過程面向對象開發(fā)方法4,設計人機交互子系統(tǒng)設計人機交互子系統(tǒng)的主要任務是設計用戶界面,包括用戶分類;描述交互場景;設計人機交互操作命令、命令層次和操作順序;設計詳細交互過程;設計人機交互類,如窗口、對話框、菜單等。人機交互子系統(tǒng)中的類與所使用的操作系統(tǒng)和編程語言密切相關,當代面向對象的程序設計語言都提供了豐富的預定義動態(tài)連接庫,如C++語言的MFC類庫等。設計人機交互子系統(tǒng)時,通常只要從預定義的動態(tài)連接庫中選擇合適的類,在從這些類派生出實現(xiàn)人機交互所需的類。第35頁/共42頁37面向對象設計的過程面向對象開發(fā)方法5,設計數(shù)據(jù)管理子系統(tǒng)數(shù)據(jù)管理子系統(tǒng)負責數(shù)據(jù)的管理,包括數(shù)據(jù)的錄入、操縱、檢索、存儲,以及永久性數(shù)據(jù)的訪問控制等。設計數(shù)據(jù)管理子系統(tǒng)的主要任務是:確定數(shù)據(jù)管理的方法,設計數(shù)據(jù)庫與數(shù)據(jù)文件的邏輯結構和物理結構,設計實現(xiàn)數(shù)據(jù)管理的對象類。這些類應當擁有對數(shù)據(jù)的存儲操作、數(shù)據(jù)輸入與輸出操作、檢索操作、安全性一致性維護操作等。目前常用的數(shù)據(jù)管理方法有:數(shù)據(jù)文件管理、關系數(shù)據(jù)庫、面向對象數(shù)據(jù)庫,其中使用最廣泛的是關系數(shù)據(jù)庫。第36頁/共42頁38面向對象設計的過程面向對象開發(fā)方法6,設計任務管理子系統(tǒng)任務管理子系統(tǒng)的職責是協(xié)調和管理進程,尤其并發(fā)進程。設計任務管理子系統(tǒng)就是要設計軟件系統(tǒng)的內部模塊運行的管理機制,即把事件驅動、時鐘驅動、優(yōu)先級管理、關鍵任務和協(xié)調任務等系統(tǒng)管理任務分配給硬件和軟件執(zhí)行。7,設計優(yōu)化,提高系統(tǒng)的性能系統(tǒng)設計結果需要優(yōu)化,盡可能地提高系統(tǒng)的性能和質量。根據(jù)實際情況制定一個設計優(yōu)化的折衷方案,進行系統(tǒng)的優(yōu)化,提高系統(tǒng)的性能和質量。第37頁/共42頁39第九講面向對象分析設計方法1、面向對象技術概述
1.1面向對象方法的定義及特點
1.2面向對象技術發(fā)展歷史
1.3面向對象的概念2、面向對象的開發(fā)方法
2.1面向對象分析(OOA)
2.2面向對象設計(OOD)
2.3面向對象編碼(OOP)3、面向對象建模方法第38頁/共42
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拆裝玻璃合同范本
- 合同范本知乎
- 貨物置換合同范本
- 種植業(yè)資源高效利用與結構優(yōu)化探索
- 煤礦綜采維修電工職業(yè)技能理論考試題庫150題(含答案)
- 訂購鋼材合同范本
- 2025年鼎和財產(chǎn)保險股份有限公司校園招聘37人筆試參考題庫附帶答案詳解
- 2025年貴州烏江水電開發(fā)有限責任公司應屆大學畢業(yè)生招聘筆試參考題庫附帶答案詳解
- 班級活動策劃與思政教育的有效銜接
- 2025至2030年中國自動控溫電餅鐺數(shù)據(jù)監(jiān)測研究報告
- 文獻檢索與論文寫作-文獻檢索與科技論文寫作138課件
- 公務員錄用審批表
- 重慶市住宅裝飾裝修工程質量驗收標準
- 廢橡膠處理協(xié)議書范本
- 部編版初中語文七至九年級語文教材各冊人文主題與語文要素匯總一覽表合集單元目標能力點
- 新蘇教版六年級下冊《科學》全一冊全部課件(共16課)
- 幼兒園食品安全教育培訓ppt課件模板
- 《離騷》PPT課堂大賽一等獎
- 潔凈廠房監(jiān)理實施細則
- 初三九年級下冊部編人教版歷史考試必背資料(2020最新版)
- 觀賞樹木的園林特性課件
評論
0/150
提交評論