① 面向對象分析方法的步驟和特點
使用MVC進行項目開發已經有一段時間了,在這段時間里感觸最深的就是自己對宏觀性面向對象分析方法的缺乏。面向對象分析是當今流行的系統分析方法之一,下面就談談在做項目的過程中我的一些小經驗。
在面對簡單系統時程序員可以很順利的提出問題的解決方案,並且一般情況下都是可行的。這是由於問題域關系簡單,所涉及到的內部構造、聯系比較容易解釋。而對於當前越來越復雜的系統,其問題域也就顯示的越來越復雜,而且內部的關系也不是很容易解釋,有些大的系統常常超出了人的解決問題的能力。在這種情況下,以往的面對過程的解決方法已經不能滿足日益增長的復雜系統分析的需要,在這種情況下,面向對象的分析方法就顯得尤為總要了。
在面向對象設計領域中,在橫向上把問題域分為數個不同的、低耦合、高內聚的問題域,而在縱向上又繼續分解各個不同的小的問題域,最後分解為葉節點問題域,從而解決問題。在面對對象分析方法中,用數個對象間的消息傳遞來完成整個問題。
下面看一看復雜系統的5個屬性:
1. 雜性經常是以層次的形式表現出來,復雜系統是由相互關聯的子系統組成,而這些子系統又是由他們各自的子系統構成,並由此類推到最底層的基本構件。
2. 對系統中最基本的構件的選擇是任意的,而且在很大程度上取決於系統觀察者的判斷力。
3. 一般而言,各構件內的連接總是要強於構件間的連接。在從構件的低頻動態中分離出高頻動態時,這一屬性是相當有用的。這是因為高頻動態涉及到各部件的內部結構,而低頻動態涉及到構件間的交互。
4. 層次系統通常都是由僅僅少數不同的子系統通過不同的排列組合方式組成。
5. 我們發現正運行的復雜系統總是由以前運行的簡單系統演化而來……任何胡亂湊合設計出來的復雜系統都不可能正常運轉,也不可能被修補好。我們必須由運行中的簡單系統開始。
對於第一點,正像我上面所說的那樣,系統是層次結構的。能夠給一個復雜的系統進行正確的層次分析,才能夠保證對系統的正確估計,包括可行性、可維護性、可擴展性……等等。而且對於日後對該系統進行維護(maintenance)、演化(evolution)、維持(preservation)都能夠很好的支持。
對於其中的第二點,強調了觀察者的判斷力,其實我認為其中也包括觀察者的身份角度。對於一個系統而言,觀察者並不是只進行分析設計的工程師,編碼階段的程序員,還應該包括用戶等所有這些同該系統有關的人員。作為不同的人員,對於系統就有不同的觀察點、觀察角度、身份等特殊因素。因此在不同身份的人(指參與者)甚至同一身份的人眼中說觀察到的系統特性都是不盡相同的。在大學里大家都接觸過透明性的概念,這就是不同觀察者所觀察角度不同的直觀反應。對於用戶來說,基本上底層的操作、演算法、通訊對於他們來說都是透明的,他們根本不用理會(其實也不知道)內部用了什麼。而對於一個負責某模塊的程序員來說就不會考慮其他模塊的實現,對於他們來說其他模塊是透明的,他們只需要負責管理好提供的模塊介面就OK了。
對於第三點,講的就是面對對象分析設計的方向,在面對對象分析設計系統時,被分解的各個模塊一定要做到高內聚、低耦合。有良好高內聚、低耦合系統常常會很容易維護,一個地方改動通常不需要牽扯到大的改動,維護行強。而且對於像VC程序這種更要求效率的程序來說,高內聚、低耦合也可以提高程序的運行期效率,應為對象內部的調用一般情況下會相比模塊間的調用佔用更少的執行時間,這樣將高頻動態封裝在一個對象內部就會一定程度上提高程序運行期執行效率。
第四點則說明了面向對象程序設計對程序設計可復用性的優點。在這點中所「層次系統由僅僅少數不同的子系統構成」那麼多數子系統在不同的復雜系統中都是能夠重復使用的。比如說建築一棟大廈和建築橋梁,雖然兩者都是復雜的系統,但是對於其結構中就會有很多相似甚至相同之處,沒有必要建築好大廈回頭建築橋梁的時候又要重新設計每一快磚瓦。
第五點提醒我們在系統設計時,盡量使用以往能夠正常運行的子系統來重新構件新的系統。這一點不僅說明第四點中的復用性,而且也說明了一個我們常常要犯的錯誤。就是將並沒有通過嚴格測試的子系統,匆忙的加入到大系統中,這樣做不利於對系統的基層,常常引入了其他錯誤,使得系統頻頻崩潰,最嚴重會導致系統的重新分析。
這是我對面向對象的一點心得體會,雖然我們大家在平時工作中所面對的問題、問題域不同,使用的開發工具不同,但是面向對象是一種思維方式,有利於分析、解決問題的一種方法,並不和任何語言掛鉤(當然語言對於面向對象特性的支持程度有所不同)。所以希望各位同事能夠盡量使用科學的方法分析解決問題,形成一種設計模式,以供大家互相交流。
軟體設計是一種藝術,也是一門工程學。
② 面向對象怎麼分析,例子
Java的面向對象!打個比如!你現在手裡!有一部手機!這個手機就是面向對象!意思就是說!面向對象就是你看到的一切皆是對象!你得分析他有什麼!手機!有電池!有內存卡!可以打電話!可以發簡訊!可以上網!這就是對象!
③ 面向對象方法的基本步驟
(1) 分析確定在問題空間和解空間出現的全部對象及其屬性;
(2) 確定應施加於每個對象的操作,即對象固有的處理能力;
(3) 分析對象間的聯系,確定對象彼此間傳遞的消息;
(4) 設計對象的消息模式,消息模式和處理能力共同構成對象的外部特性;
(5) 分析各個對象的外部特性,將具有相同外部特性的對象歸為一類,從而確定所需要的類;
(6) 確定類間的繼承關系,將各對象的公共性質放在較上層的類中描述,通過繼承來共享對公共性質的描述;
(7) 設計每個類關於對象外部特性的描述;
(8) 設計每個類的內部實現(數據結構和方法);
(9) 創建所需的對象(類的實例),實現對象間應有的聯系(發消息)。
④ 為什麼說「面向對象分析方法」優越於傳統的「功能/數據分析方法」
面向對象效率高具有可重用性,可擴展性,可管理性和可維護性,可以滿足現代軟體開發規模擴大,復雜性增加和標准化程度日益提高的。。。
⑤ 面向對象分析是對系統進行什麼的一種方法。 A需求分析。B程序設計。C硬體環境。D測試驗收。
是需求分析的一個方法,簡稱OOA,對應完了這一個階段還有面向對象設計過程,簡稱OOD。
⑥ 結構化分析方法和面向對象方法的區別
1.結構化方法遵循的基本原則
結構化方法的基本思想就是將待解決的問題看作一個系統從而用系統科學的思想方法來分析和解決問題結構化方法遵循以下基本原則
(1)抽象原則
抽象原則是一切系統科學方法都必須遵循的基本原則它注重把握系統的本質內容而忽略與系統當前目標無關的內容它是一種基本的認知過程和思維方式
(2)分解原則
分解原則是結構化方法中最基本的原則它是一種先總體後局部的思想原則在構造信息系統模型時它採用自頂向下分層解決的方法
(3)模塊化原則
模塊化是結構化方法最基本的分解原則的具體應用它主要出現在結構化設計階段中其目標是將系統分解成具有特定功能的若干模塊從而完成系統指定的各項功能
2.面向對象模型遵循的基本原則
面向對象模型遵循的基本原則有:抽象、封裝、模塊化以及層次原則等
(1)抽象
抽象是處理現實世界復雜性的最基本方式在OO方法中它強調一個對象和其他對象相區別的本質特性對於一個給定的域確定合理的抽象集是面向對象建模的關鍵問題之一
(2)封裝
封裝是對抽象元素的劃分過程抽象由結構和行為組成封裝用來分離抽象的原始介面和它的執行
封裝也稱為信息隱藏Information Hiding它將一個對象的外部特徵和內部的執行細節分割開來並將後者對其他對象隱藏起來
(3)模塊化
模塊化是已經被分為一系列聚集的和耦合的模塊的系統特性對於一個給定的問題確定正確的模塊集幾乎與確定正確的抽象集一樣困難通常每個模塊應該足夠簡單以便能夠被完整地理解
(4)層次
抽象集通常形成一個層次,層次是對抽象的歸類和排序。在復雜的現實世界中有兩種非常重要的層次一個是類型層次另一個是結構性層次 。確定抽象的層次是基於對象的繼承,它有助於在對象的繼承中發現抽象間的關系,搞清問題的所在理解問題的本質
3.結構化方法的核心問題
模型問題是結構化方法的核心問題建立模型簡稱建模是為了更好地理解我們要模擬的現實世界建模通常是從系統的需求分析開始在結構化方法中就是使用SA方法構建系統的環境模型然後使用SD方法確定系統的行為和功能模型最後使用SP方法進行系統的設計並確定用戶的現實模型
4..面向對象方法的核心問題
面向對象方法與結構化方法一樣其核心問題也是模型問題面向對象模型主要由OOA模型OOD模型組成其中OOA主要屬於學科抽象形態方面的內容OOD主要屬於學科設計形態方面的內容
5.結構化系統分析方法的特點
(1)面向用戶,用戶自始至終參與系統的分析工作;
(2)強調調查工作的重要性;
(3)對管理業務中的各種數據進行分解;
(4)採用了層次分解的系統思想;
(5)用圖形工具來分析和構建新方案。
¨結構化分析的圖表工具主要由數據流程圖、數據字典和數據處理說明組成。
6.面向對象系統分析方法的特點
(1) 強調系統開發的整體性和全局性
(2) 側重於數據轉換的過程而不是數據本身
(3) 系統的開發周期長
(4) 封裝性
對象的概念突破了傳統數據與操作分離的模式。對象作為獨立存在的實體,將自由數據和操作封閉在一起,使自身的狀態、行為局部化。
(5) 繼承性
繼承是面向對象特有的,亦是最有力的機制。通過類繼承可以彌補由封裝對象而帶來的諸如數據或操作冗餘的問題,通過繼承支持重用,實現軟體資源共享、演化以及增強擴充。
(6) 多態性
同一消息發送至不同類或對象可引起不同的操作,使軟體開發設計更便利,編碼更靈活。
(7) 易維護性
面向對象的抽象封裝使對象信息隱藏在局部。當對象進行修改,或對象自身產生錯誤的時候,由此帶來的影響僅僅局限在對象內部而不會波及其他對象乃至整個系統環境,這極大方便了軟體設計、構造和運行過程中的檢錯、修改。
⑦ 面向對象方法包括什麼
面向對象方法模型包括六個要素:封裝、抽象、模塊化、層次結構、類型、並發發、持久。
面向對象方法是一種基於對象模型的程序設計方法,包括面向對象分析、面向對象設計、面向對象編程,是目前應用范圍最廣的設計方法。
面向對象是軟體開發方法。面向對象的概念和應用已超越了程序設計和軟體開發,擴展到如資料庫系統、互動式界面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術發展到一定階段後的產物。
(7)面向對象分析方法擴展閱讀:
面向對象的系統分析:
面向對象的分析方法是利用面向對象的信息建模概念,如實體、關系、屬性等,同時運用封裝、繼承、多態等機制來構造模擬現實系統的方法。
傳統的結構化設計方法的基本點是面向過程,系統被分解成若干個過程。而面向對象的方法是採用構造模型的觀點,在系統的開發過程中,各個步驟的共同的目標是建造一個問題域的模型。在面向對象的設計中,初始元素是對象,然後將具有共同特徵的對象歸納成類,組織類之間的等級關系,構造類庫。在應用時,在類庫中選擇相應的類。
參考資料來源:網路-面向對象
⑧ 2.採用面向對象分析方法後得到的結果必須用面向對象設計方法解決,這種說法對嗎請說明理由。
這種說法是錯誤的,沒有這么絕對得
面向對象開發方法的基本思想是盡可能按照人類認識客觀世界的方法來分析和解決問 題,jackson方法就不屬於面向對象方法