結構化分析(,簡稱SA)是軟體工程中的一種方法,結構化分析和結構化設計可以分析商業的,再轉換為規格文件,最後再產生電腦軟體、硬體組態及相關的手冊及程序。
結構化分析及設計技術是系統分析的基礎,是由1960到70年代的系統分析技術發展而成。
目的
結構化分析在1980年代起開始廣為使用。結構化分析包括將系統概念轉換為用資料及控制的來表示,也就是轉換為資料流程圖。資料流程圖中的程序以泡泡來表示,因此也稱為「泡泡圖」。不過完整的資料流程圖中可能有許多的「泡泡」,使得很難去追蹤資料流動的情形。此時可以先定義外界需要系統回應的事件,每一個事件指定一個泡泡,當系統定義完成後,再將事件的泡泡和回應的程序的泡泡相連接。也可以將程序對應泡泡加以分組,組合成較高階的程序。資料字典用來描述資料和指令的流動,而用程序規格來描述交易或資料轉換的相關資訊。
許多著名的分析方式都和結構化分析(SA)及結構化設計(SD)有關,包括結構圖、資料流程圖及資料模型圖等。許多程序设计方法学也結合了結構化分析及結構化設計,包括結構化系統分析及設計方法(SSADM)及結構化分析及設計技術(SADT)等。
歷史
結構化分析是許多結構化方法中的一部份。「結構化分析是系統分析、設計及編程技術的組合,其目的是為了處理1960至1980年代軟體開發所遇到的問題,這段期間多半是用COBOL和Fortran語言開發,後來也使用C語言及BASIC,也沒有將需求及設計文件化的技術。隨著系統越來越大也更加複雜,資訊系統的發展也變得越來越困難。」為了方便管理大而複雜的系統,演進出下列的結構化方法。
自1967年起出現了許多的結構化方法。
- :在 Derek J. Hatley及Imtiaz A. Pirbhai於1988年所著的《Strategies for Real-Time System Specification》中定義。
- 資訊工程:約在1990年代由提出,後來因的推廣而廣為人知。
依照Hay在1999年提出的定義:「資訊工程是1970年代提出許多結構化技術的延伸。先由結構化編程進展到結構化設計,然後進展到結構化系統分析。這些技術使用的圖也所不同:結構化設計中使用結構圖,而結構化系統分析使用資料流程圖。二者都可以幫助程式開發者及使用者的溝通,並且提昇程式分析者及設計者的紀律。1980年起開始有工具可以自動繪製這類的圖面,並追蹤資料字典中的內容。」在電腦輔助設計及電腦輔助製造(CAD/CAM)名詞廣為使用之後,上述工具的使用也稱為電腦輔助軟體工程(CASE)。
結構化分析主題
抽象化機制
結構化分析一般會建立一個使用單一抽象化機制(single abstraction mechanism)的階層系統。結構化分析方法可以使用IDEF(如圖),IDEF是一個程序驅動的分析方法,是由目的及觀點開始進行。此方法一開始會先確認整體機能,再反覆地將機能分割為更小的機能,保留程序最佳化需要的輸入、輸出、控制及機制。IDEF也被視為是一種的分析方法,著重在函式的内聚力及函式之間的耦合力。
系統關係圖(System Context Diagram)是表示系統和外界環境之間的作用系統關係圖和資料流程圖有關,有助於了解系統和其他相關系統或事件之間的關係。
資料字典
在設計資料庫時非常重要。資料字典包括資料庫中所有的檔案、每一個檔案的欄位個數、欄位名稱及型態。為了保護資料字典的內容不被破壞,大部份的資料庫管理系統不允許使用者更改資料字典。資料字典沒有資料庫中的資料內容,只有一些存取資料庫需要的資訊。資料庫管理系統一定要配合資料字典才能存取資料庫的內容]]
資料流程圖(DFD)是用圖像方式表示資訊系統中資料的流動方式。資料流程圖和系統流程圖不同,主要是表示資料在不同程序之間的流動,而不是程式的控制流程。資料流程圖是由賴瑞·康斯坦丁所提出,是以Martin及Estrin的「資料流圖」(data flow graph)為基礎。
一般在繪製資料流程圖前,會先繪製環境圖,描述系統和外界環境的交互作用。資料流程圖可以將系統分割為幾個較小的部份,並且強調各部份之間的資料流動。資料流程圖是結構化系統分析及設計方法(SSADM)的三個重要圖表中的一個。
結構圖
中,結構圖可以將程式模組整理為樹狀結構,每一個模組以一個其中有模組名稱的方框表示,樹狀結構可以清楚表示各模組之間的關係。
結構化分析中常用結構圖表示程式的頂層架構。結構圖有助於程式設計者用個個擊破的方式處理軟體問題,也就是將一直將問題拆解為更小的問題,直到最後問題小到可以被人類理解為止。此程序稱為或是。結構圖的作用類似建築房屋中使用的藍圖。在設計階段,結構圖是客戶和不同軟體工程師溝通的方式。在代碼實現的階段,由結構圖可以得知系統的完整架構。
結構化設計
結構化設計(SD)是有關軟體模組的開發,及分析模組之間的「模組層次」(module hierarchy),
在結構化設計中,有以下二個主要的概念:
- 内聚力是指機能相關的程式組合成一模組的程度。
Page-Jones在1980年提出的研究中有三個主題:結構圖、模組規格及資料字典,以及程序或副程式的模版。。
相關條目
*
*
- 杰克逊结构化程序设计
*
- 尤登結構化方法
*
參考資料
延伸閱讀
- Larry Constantine and Ed Yourdon (1975). Structured Design. Yourdon Press.
- Tom DeMarco (1979). Structured Analysis and System Specification. Prentice Hall. ISBN 0-13-854380-1
- Keith Edwards (1993). Real-Time Structured Methods, System Analysis. Wiley. ISBN 0-471-93415-1
- Derek J. Hatley, Imtiaz A. Pirbhai (1988). Strategies for Real Time System Specification. John Wiley and Sons Ltd. ISBN 0-932633-04-8
- Stephen J. Mellor and Paul T. Ward (1986). Structured Development for Real-Time Systems: Implementation Modeling Techniques: 003. Prentice Hall. ISBN 0-13-854803-X
- Edward Yourdon (1989). Modern Structured Analysis, Yourdon Press Computing Series, 1989, ISBN 0-13-598624-9
外部連結
- [https://web.archive.org/web/20070203213944/http://www.yourdon.com/strucanalysis/wiki/index.php?title=Introduction Structured Analysis Wiki]
- [https://web.archive.org/web/20100628050219/http://www.cragsystems.co.uk/ITMUML/fun01/04fun01.htm Three views of structured analysis] CRaG Systems, 2004.
评论 (0)