結構化方法,是70年代末,由demarco等人提出的,旨在減少分析活動中的錯誤,建立滿足使用者需求的系統邏輯模型。結構化方法是強調開發方法的結構合理性以及所開發軟體的結構合理性的軟體開發方法,也稱為新生命週期法,是生命週期法的繼承與發展,是生命週期法與結構化程式設計思想的結合。其基本思想是用系統工程的思想和工程化得方法,根據使用者至上的原則,自始自終按照結構化、模組化,自頂向下地對系統進行分析與設計。
常用的抽象化手段有過程抽象、資料抽象和控制抽象
過程抽象:任何乙個完成明確功能的操作都可被使用者當做單位的實體看待,儘管這個操作時機上可能由一系列更低階的操作來完成。
資料抽象:與過程抽象一樣,允許設計人員在不同層次上描述資料物件的細節。
與過程抽象和資料抽象一樣,控制抽象可以包含乙個程式控制機制而無須規定其內部細節。
將軟體的體系結構按自頂向下方式,對各個層次的過程細節和資料細節逐層細化,直到用程式語言的語句能夠實現為止,從而最後確立整個的體系結構。
將乙個待開發的軟體分解成若干個小的簡單的部分——模組,每個模組可獨立地開發、測試,最後組裝成完整的程式。這是一種複雜問題的「分而治之」的原則。模組化的目的是使程式結構清晰,容易閱讀,容易理解,容易測試,容易修改。
表明了程式構件(模組)的組織情況。控制層次往往用程式的層次結構(樹形或網型)來表示。
深度:程式結構的層次數,可以反映程式機構的規模和複雜程度。
寬度:同一層模組的最大模組個數
模組的扇出:乙個模組呼叫(或控制)的其他模組數
模組的扇入:呼叫(或控制)乙個給定模組的模組個數
資訊遮蔽:將每個程式的成分隱蔽或封裝在乙個單一的設計模組中,定義每乙個模組時盡可能少的顯露其內部的處理,可以提高軟體的可修改性,可測試性和可移植性。
每個模組完成乙個相對特定獨立的子功能,並且與其他模組之間的聯絡簡單。衡量度量標準有兩個:模組間的耦合和模組的內聚。模組獨立性強必須做到高內聚低耦合。
耦合:模組之間聯絡的緊密程度,耦合度越高模組的獨立性越差。耦合度從低到高的次序為:非直接耦合、資料耦合、標記耦合、控制耦合、外部耦合、公共耦合、內容耦合。
內聚是指內部各元素之間聯絡的緊密程度,內聚度越低模組的獨立性越差。內聚度從低到高依次是:偶然內聚、邏輯內聚、瞬時內聚、過程內聚、通訊內聚、順序內聚、功能內聚。
結構化分析的步驟:
分析當前的情況,做出反映當前物理模型的dfd
推導出等價的邏輯模型的dfd
設計新的邏輯系統,生成資料字典和基元描述
建立人機介面,提出可供選擇的目標系統物理模型的dfd
確定各種方案的成本和風險等級,據此對各種方案進行分析
選擇一種方案
建立完整的需求規約。
結構化分析的常用工具:
物件導向有三大特性:封裝,繼承,多型
所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。封裝是物件導向的特徵之一,是物件和類概念的主要特性。 簡單的說,乙個類就是乙個封裝了資料以及操作這些資料的**的邏輯實體。在乙個物件內部,某些**或某些資料可以是私有的,不能被外界訪問。通過這種方式,物件對內部資料提供了不同級別的保護,以防止程式中無關的部分意外的改變或錯誤的使用了物件的私有部分。
所謂繼承是指可以讓某個型別的物件獲得另乙個型別的物件的屬性的方法。它支援按級分類的概念。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。 通過繼承建立的新類稱為「子類」或「派生類」,被繼承的類稱為「基類」、「父類」或「超類」。繼承的過程,就是從一般到特殊的過程。要實現繼承,可以通過「繼承」(inheritance)和「組合」(composition)來實現。繼承概念的實現方式有二類:實現繼承與介面繼承。實現繼承是指直接使用基類的屬性和方法而無需額外編碼的能力;介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;
所謂多型就是指乙個類例項的相同方法在不同情形有不同表現形式。多型機制使具有不同內部結構的物件可以共享相同的外部介面。這意味著,雖然針對不同物件的具體操作不同,但通過乙個公共的類,它們(那些操作)可以通過相同的方式予以呼叫。
由於模組相互獨立,因此在設計其中乙個模組時,不會受到其它模組的牽連,因而可將原來較為複雜的問題化簡為一系列簡單模組的設計。模組的獨立性還為擴充已有的系統、建立新系統帶來了不少的方便,因為我們可以充分利用現有的模組作積木式的擴充套件。
按照結構化程式設計的觀點,任何演算法功能都可以通過由程式模組組成的三種基本程式結構的組合:順序結構、選擇結構和迴圈結構來實現。
結構化程式設計的基本思想是採用"自頂向下,逐步求精"的程式設計方法和"單入口單出口"的控制結構。自頂向下、逐步求精的程式設計方法從問題本身開始,經過逐步細化,將解決問題的步驟分解為由基本程式結構模組組成的結構化程式框圖;"單入口單出口"的思想認為乙個複雜的程式,如果它僅是由順序、選擇和迴圈三種基本程式結構通過組合、巢狀構成,那麼這個新構造的程式一定是乙個單入口單出口的程式。據此就很容易編寫出結構良好、易於除錯的程式來。
結構化方法和物件導向方法的比較
結構化方法和物件導向方法的比較 翁松秀 北京航空航天大學 摘要 程式設計之精髓在於程式設計思想,而不同的程式設計方法有不同的程式設計思想。結構化程式設計方法一直以來都是程式設計人員基本的程式設計方法,而近年來流行的物件導向方法也備受人們青睞。文章通過介紹程式設計世界的這兩種主要程式設計方法,結構化方...
結構化方法與物件導向方法之應用比較
結構化方法與物件導向方法之應用比較 結構化方法是計算學科的一種典型的系統開發方法。它採用了系統科學的思想方法,從層次的角度,自頂向下地分析和設計系統。結構化方法包括結構化分析 sa 結構化設計 sd 和結構化程式設計 sp 三部分內容。其中,sa 和sd 主要屬於學科抽象的內容,sp 則主要屬於學科...
結構化方法和物件導向方法之比較
從目前大多數資訊系統的開發現狀來看,結構化方法是運用最為普遍,同時也是最為成熟的一種開發方式。其基本要點是以系統的邏輯功能設計和資料流關係為基礎,根據資料流程圖和資料字典,通過 自上而下 和 自下而上 的反覆,逐層把系統劃分為多個大小適當 功能明確 具有一定獨立性並容易實現的模組,從而把複雜系統的設...