標籤:資訊隱藏 com 依賴性 原則 二義性 產生 程式設計 現象 擴充
1.結構化方法
1.1概述
結構化方法(SD方法)是一種傳統的軟體開發方法,它是由結構化分析、結構化設計和結構化程式設計三部分有機組合而成的。它的基本思想:把一個複雜問題的求解過程分階段進行,而且這種分解是自頂向下,逐層分解,使得每個階段處理的問題都控制在人們容易理解和處理的範圍內。
1.2基本要點
結構化方法的基本要點是:自頂向下、逐步求精、模組化設計、結構化編碼。
結構化分析方法是以自頂向下,逐步求精為基點,以一系列經過實踐的考驗被認為是正確的原理和技術為支撐,以資料流圖,資料字典,結構化語言,判定表,判定樹等圖形表達為主要手段,強調開發方法的結構合理性和系統的結構合理性的軟體分析方法。
結構化設計方法是以自頂向下,逐步求精,模組化為基點,以模組化,抽象,逐層分解求精,資訊隱蔽化局部化和保持模組獨立為準則的設計軟體的資料架構和模組架構的方法學。
結構化方法按軟體生命週期劃分,有結構化分析(SA),結構化設計(SD),結構化實現(SP)。 其中要強調的是,結構化方法學是一個思想準則的體系,雖然有明確的階段和步驟,但是也整合了很多原則性的東西,所以學會結構化方法,不是能夠單從理論知識上去瞭解就足夠的,要的更多的還是實踐中慢慢的理解個個準則,慢慢將其變成自己的方法學。
1.3基本原則
使每個模組盡量只執行一個功能(堅持功能性內聚);
每個模組用過程語句(或函數方式等)調用其他模組;
模組間傳送的參數作資料用;
模組間共用的資訊(如參數等)盡量少。
2.物件導向方法
2.1概述
物件導向(Object Oriented,OO)是軟體開發方法。物件導向的概念和應用已超越了程式設計和軟體開發,擴充到如資料庫系統、互動式介面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。物件導向是一種對現實世界理解和抽象的方法,是電腦編程技術發展到一定階段後的產物。
2.2要素
⑴抽象。
抽象是指強調實體的本質、內在的屬性。在系統開發中,抽象指的是在決定如何?對象之前的對象的意義和行為。使用抽象可以儘可能避免過早考慮一些細節。
類實現了對象的資料(即狀態)和行為的抽象。
⑵封裝性(資訊隱藏)。
封裝性是保證軟體組件具有優良的模組性的基礎。
物件導向的類是封裝良好的模組,類定義將其說明(使用者可見的外部介面)與實現(使用者不可見的內部實現)顯式地分開,其內部實現按其具體定義的範圍提供保護。
對象是封裝的最基本單位。封裝防止了程式相互依賴性而帶來的變動影響。物件導向的封裝比傳統語言的封裝更為清晰、更為有力。
⑶共用性
物件導向技術在不同層級上促進了共用
同一類中的共用。同一類中的對象有著相同資料結構。這些對象之間是結構、行為特徵的共用關係。
在同一應用中共用。在同一應用的類階層中,存在繼承關係的各相似子類中,存在資料結構和行為的繼承,使各相似子類共用共同的結構和行為。使用繼承來實現代碼的共用,這也是物件導向的主要優點之一。
在不同應用中共用。物件導向不僅允許在同一應用中共用資訊,而且為未來目標的可重用設計準備了條件。通過類庫這種機制和結構來實現不同應用中的資訊共用。
2.3特徵
⑴對象唯一性。
每個對象都有自身唯一的標識,通過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不同的對象不能有相同的標識。
⑵抽象性。
抽象性是指將具有一致的資料結構(屬性)和行為(操作)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其他一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
⑶繼承性。
繼承性是子類自動共用父類資料結構和方法的機制,這是類之間的一種關係。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並加入若干新的內容。
繼承性是物件導向程式設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。
在類層次中,子類只繼承一個父類的資料結構和方法,則稱為單重繼承。
在類層次中,子類繼承了多個父類的資料結構和方法,則稱為多重繼承。
多重繼承,JAVA、VB、NET、Objective-C均僅支援單繼承,注意在C++多重繼承時,需小心二義性。
在軟體開發中,類的繼承性使所建立的軟體具有開放性、可擴充性,這是資訊組織與分類的行之有效方法,它簡化了對象、類的建立工作量,增加了代碼的可重用性。
採用繼承性,提供了類的規範的等級結構。通過類的繼承關係,使公用的特效能夠共用,提高了軟體的重用性。
⑷多態性(多型)
多態性是指相同的操作或函數、過程可作用於多種類型的對象上並獲得不同的結果。不同的對象,收到同一訊息可以產生不同的結果,這種現象稱為多態性。
多態性允許每個對象以適合自身的方式去響應共同的訊息。
多態性增強了軟體的靈活性和重用性。
3.比較
結構化方法首先關心的是功能,強調以模組(即過程)為中心,採用模組化、自頂向下、逐步求精設計過程,系統是實現模組功能的函數和過程的集合,結構清晰、可讀性好,的確是提高軟體開發品質的一種有效手段。每個模組有可能保持較強的獨立性,但它往往與資料庫結構相獨立,功能模組與資料庫邏輯模式間沒有映射關係,程式與資料結構很難封裝在一起。如果問題世界的功能比資料更複雜或者更重要,那麼結構化方法仍然應是首選的方法。如果資料結構複雜,模組獨立性很難保證。
物件導向方法抽象的系統結構往往並不比結構化方法產生的系統結構簡單,但它能映射到資料庫結構中,很容易實現程式與資料結構的封裝。
結構化方法思路清晰,條理清楚,又有效地分解了繁複的問題,使得編寫程式時清晰明了,簡化了編程人員繁雜的工作,而在閱讀時也能夠一氣呵成,給人以明朗的感覺。 物件導向方法與人類習慣的思維方法一致,使得使用者和維護人員都容易理解,在使用者使用時不會理解困難,在軟體維護中可維護性也較高,並且易於測試和調試。它的穩定性好,對軟體的局部進行修改時,不會引起整體的變化,而且對局部修改容易實現。它的可重用性好,並且由於它是把大的問題分解成相互獨立的小問題處理,降低了開發的技術難度,開發工作的管理也變的容易了,開發大型軟體變的容易,成本也降低了。
結構化方法與物件導向方法應用比較