2011年軟件水平考試軟件設計師輔導資料(10)
第10章面向對象的方法
面向對象的方法是今后軟件開發方法的主流。學習本章,***是學過面向對象程序設計語言,這樣可以對對象、類、類的層次結構、方法、消息等概念更容易理解。本章總的要求是,掌握面向對象的基本思想、基本概念、基本原理,掌握三種模型的基本概念和構造方法,掌握面向對象的分析、設計和實現的過程。
一、面向對象的基本概念
1、什么面向對象?首先了解幾個概念:
1、對象:對象是人們要進行研究的任何事物。具體一點講就是研究對象。它可以是有形實體,也可以是作用、事件、性能說明等,當然,如果女朋友成為你研究的對象時,對象也可以是你的女朋友。
2、對象的狀態和行為:對象有自身的狀態,比如你的女朋友有她的姓名(叫小麗)、年齡(22歲)、工作單位等。對象還有操作,用于改變對象的狀態,對象及其操作就是對象的行為,比如"小麗.跳槽到(某公司)"這個行為將使她的工作單位這個狀態發生變化。
3、類:具有相同或相似性質的對象的抽象就是類。如桃樹、李樹、樟樹等是具體的樹,抽象之后得到"樹"這個類。類具有屬性,屬性是狀態的抽象,如一棵李樹的高度是3米,樟樹是10米,樹則抽象出一個屬性"高度"。類具有操作,它是對象行為的抽象。
4、類的結構:有兩種,一種是"一般-具體"結構,如植物、樹都是類,它們之間是抽象到具體的關系,即樹是一種(is a)植物。還有一種就是"整體-部分"結構,如計算機是類、CPU也是類,則計算機與CPU之間就是整體與部分的關系。
5、消息和方法:對象之間進行通信的構造叫做消息,比如小麗是一個對象,上司發出一個消息:小麗.出差到(深圳)。這樣,相應的對象接收到這個消息就會給予響應,在這個消息中,小麗是對象名,出差到就是方法名,深圳就是參數。在類中操作的實現過程叫做方法。上面的出差到(某地)這個方法如何實現呢,就是買車票,乘車到某地。這個過程就是方法。
總之,面向對象這種思想很符合人們觀察世界的自然思想。在很多時候我們可以用自然的觀點去理解面向對象。
2、面向對象的特征有四點:對象唯一性、分類性、繼承性和多態性。
3、面向對象的要素:抽象、封裝性、共享性
4、面向對象技術強調的是對象結構而不是程序結構。
5、面向對象的開發方法主要有以下幾種:Coad方法、Booch方法、OMT方法和OOSE方法,***的統一建模語言UML則不僅統一了Booch方法,OMT方法、OOSE方法,而且對其作了進一上的發展,最終統一為大眾所接受的標準建模語言。
二、面向對象的模型(簡單應用)
面向對象的模型包括三個,它們分別是:描述系統數據結構的對象模型、描述系統控制結構的動態模型和和描述系統功能的功能模型。這三種模型都涉及到數據、控制和操作等共同的概念,只是每種模型描述的側重點不同。這三種模型從三個不同但又密切相關的角度模擬目標系統,它們各自從不同的側面反映了系統的實質性內容,綜合起來則全面反映了對目標系統的需求。
1、對象模型:它表示了靜態的、結構化的系統數據性質,描述了系統的靜態結構,它是從客觀世界實體的對象關系角度來描述,表現了對象的相互關系。該模型主要關系的是系統中對象的結構、屬性和操作,使用了對象圖的工具來刻畫,它是分析階段三個模型的核心,也是其他兩個模型的框架。涉及及的概念有,對象和類、關聯和鏈。
2、動態模型:是與時間和變化有關的系統性質。該模型描述了系統的控制結構,它表示了瞬時的、行為化的系統控制性質,它關系的是系統的控制,操作的執行順序,它從對象的事件和狀態的角度出發,表現了對象的相互行為。該模型描述的系統屬性是觸發事件,事件序列、狀態、事件與狀態的組織。使用狀態圖作為描述工具。涉及的重要概念是事件、狀態、操作等。
3、功能模型:描述了系統的所有計算。功能模型指出發生了什么,動態模型確定什么時候發生,而對象模型確定發生的客體。功能模型表明一個計算如何從輸入值得到輸出值,它不考慮所計算的次序。功能模型由多張數據流圖組成。數據流圖說明數據流是如何從外部輸入、經過操作和內部存儲輸出到外部的。功能模型也包括對象模型中值的約束條件。功能模型說明對象模型中操作的含義、動態模型中動作的意義以及對象模型中約束的意義。相關的概念有:數據流圖中的處理、數據流、動作對象、數據存儲對象等。
三、面向對象的分析(簡單應用)
面向對象分析的目的是對客觀世界的系統進行建模。分析問題有三種用途:用來明確問題需求;為用戶和開發人員提供明確需求;為用戶和開發人員提供一個協商的基礎,作為后繼的設計和實現的框架。通過分析,建立對象模型、動態模型和功能模型。
四、面向對象的設計(領會)
1、面向對象設計的準則:
(1)模塊化:對象就是模塊,它是把數據結構和操作這些數據的方法緊密地結合在一起所構成的模塊。
(2)抽象:包括過程抽象、數據抽象、規格說明抽象及參數化抽象等。
(3)信息隱蔽:在面向對象方法中,信息隱蔽通過對象的封裝性來實現。
(4)低耦合:低耦合是設計的一個重要標準,應該避免對象之間的高耦合,強調對象間的低耦合。
(5)高內聚:在面向對象設計中存在三種內聚:操作內聚、類內聚及一般-具體內聚,緊密的繼承耦合與高度的一般--具體內聚是一致的。
2、面向對象設計的啟發規則:
(1)設計結果應該清晰易懂
(2)一般--具體結構的深度應適當
(3)設計簡單的類
(4)使用簡單的協議
(5)使用簡單的操作
(6)把設計變動減至最小
五、面向對象的實現(領會)
面向對象實現主要包括兩項工作,把面向對象設計結果翻譯成用某種程序設計語言寫成的面向對象程序;測試并調試面向對象程序。
在開發過程,類的實現是核心問題。在用面向對象風格所寫的系統中,所有的數據都被封裝在類的實例中,而整個程序則被封裝在一個更高級的類中。
【編輯推薦】