1. 結構化分析的歷史
結構化分析是許多結構化方法中的一部份。「結構化分析是系統分析、設計及編程技術的組合,其目的是為了處理1960至1980年代軟體開發所遇到的問題,這段期間多半是用COBOL和Fortran語言開發,後來也使用C語言及BASIC,也沒有將需求及設計文件化的技術。隨著系統越來越大也更加復雜,信息系統的發展也變得越來越困難。」為了方便管理大而復雜的系統,演進出下列的結構化方法。
自1967年起出現了許多的結構化方法: 結構化編程:由艾茲格·迪傑斯特拉在1967年提出-《GOTO陳述有害論》。 逐步設計(Stepwise design):由尼克勞斯·維爾特在1971年提出。 1972年出現的Nassi-Shneiderman圖。 1974年提出的Warnier/Orr圖-「Logical Construction of Programs」。 1974年提出的HIPO-IBM的層次化輸入-處理-輸出圖。 結構化設計:由賴瑞·康斯坦丁、愛德華·尤登及韋恩·史帝文斯在1975年提出。 傑克遜結構化程序設計:由邁克爾·安東尼·傑克遜在1975年提出。 結構化分析:約在1978年由湯姆·狄馬克及尤登等人提出。 結構化分析及設計技術(SADT):由道格拉斯·T·羅斯發展。 尤登結構化方法:由愛德華·尤登提出。 結構化分析及系統規格(Structured Analysis and System Specification):由湯姆·狄馬克在1979年提出。 結構化系統分析及設計方法 (SSADM):最早是由英國商務辦公室在1983年提出。 以結構化分析及設計技術為基礎的IDEF0,由道格拉斯·T·羅斯在1985年提出。 Hatley-Pirbhai模型:在 Derek J. Hatley及Imtiaz A. Pirbhai於1988年所著的《Strategies for Real-Time System Specification》中定義。 信息工程:約在1990年代由克萊夫·芬克爾斯坦提出,後來因詹姆斯·馬丁的推廣而廣為人知。 依照Hay在1999年提出的定義:「信息工程是1970年代提出許多結構化技術的延伸。先由結構化編程進展到結構化設計,然後進展到結構化系統分析。這些技術使用的圖也所不同:結構化設計中使用結構圖,而結構化系統分析使用數據流程圖。二者都可以幫助程序開發者及用戶的溝通,並且提升程序分析者及設計者的紀律。1980年起開始有工具可以自動繪制這類的圖面,並追蹤數據字典中的內容。」在電腦輔助設計及電腦輔助製造(CAD/CAM)名詞廣為使用之後,上述工具的使用也稱為電腦輔助軟體工程(CASE)。

2. 結構化工作分析方法
結構化工作分析方法包括職位分析問卷法(PAQ)、美國勞工部工作分析程序和功能性工作分析方法。
具體來講:
1)職位分析問卷法(PAQ)。
職位分析問卷是由麥考密克、珍納爾和米查姆設計的。它圍繞任職者進行信息收集,以對任職者從事工作需要進行的活動進行統計分析為基礎。
①職位分析問卷的項目。
職位分析問卷由194個項目或者職位要素構成,這些項目可分為六個方面:信息輸入、心理過程、工作輸出、人際活動、工作情景與職務關系以及其他方面。
②職位分析問卷的評分標准。
PAQ給出了6個評分標准:信息使用度、耗費時間、適用性、對工作的重要程度、發生的可能性以及特殊計分。
③職位分析問卷的優缺點。
它真正的優勢在於,問卷的實施者可以根據是否負有決策/溝通/社會方面的責任、是否執行熟練的技能性活動、是否伴隨有相應的身體活動、是否操縱汽車/設備和是否需要對信息進行加工這五個基本維度對工作進行等級劃分,對於每一項工作可以分配到一個量化的分數。職位分析問卷的不足之處在於沒有對職位的特定工作活動進行描述,且可讀性不強。
2)美國勞工部工作分析程序。
它是由美國勞工部所採用的工作分析方法,核心是對於每一項工作都按照任職者和信息、人、物三者之間的關系來進行等級劃分。其基本程序為
①清理出任職者在信息、人、物這三個維度上有哪些基本活動,並予以歸納總結;
②根據目標職位的任職者在理論上需要哪個層次的活動,並賦予相應的分數;
③這三項的分的總和就成為此項工作的等級劃分的基礎。
(3)功能性工作分析方法。
功能性工作分析方法不僅僅是依據信息、人、物三方面來對工作進行分類,它還考慮以下四個因素:
①在執行工作時需要得到多大程度的指導;
②在執行工作時需要運用的推理和判斷能力應達到什麼程度;
③完成工作所需要具備的數字能力有多高;
④執行工作時所要求的口頭及語言表達如何。

拓展資料:
結構化分析方法(Structured Method,結構化方法)是一種軟體開發方法,一般利用圖形表達用戶需求,強調開發方法的結構合理性以及所開發軟體的結構合理性。
結構化分析方法_網路
3. 結構化分析方法的主要特點是什麼
1.結構化分析方法簡單、清晰,易於學習掌握和使用。2.結構化分析的實施步驟是先分析當前現實環境中已存在的人工系統,在此基礎上再構思即將開發的目標系統,這符合人們認識世界改造世界的一般規律,從而大大降低了問題的復雜程度。目前一些其它的需求分析方法,在該原則上是與結構化分析相同的。3.結構化分析採用了圖形描述方式,用數據流圖為即將開發的系統描述了一個可見的模型,也為相同的審查和評價提供了有利的條件。從上到下把大問題分解成若干個小問題,然後分別解決工具:CASE ,MICROSOFT VISIO
4. 結構化分析方法
結構化分析方法(Structured Method,結構化方法)是一種軟體開發方法,一般利用圖形表達用戶需求,強調開發方法的結構合理性以及所開發軟體的結構合理性。
主要用於分析需求,形成需求規約結構化分析方法是以自頂向下,逐步求精為基點,以一系列經過實踐的考驗被認為是正確的原理和技術為支撐,以數據流圖,數據字典,結構化語言,判定表,判定樹等圖形表達為主要手段,強調開發方法的結構合理性和系統的結構合理性的軟體分析方法。
其基本思想主要是把一個復雜問題的求解過程分階段進行,而且這種分解是自頂向下,逐層分解,使得每個階段處理的問題都控制在人們容易理解和處理的范圍內。而它的基本要點是自頂向下、逐步求精、模塊化設計、結構化編碼。

5. 結構化分析
「 軟體開發方法 」的含義:軟體開發過程所遵循的辦法和步驟。
軟體開發活動的目的:有效地得到一個運行的系統及其支持文檔(程序 + 文檔),並且滿足有關的質量要求(功能需求 + 非功能需求)。
「 軟體開發方法學 」的含義: 規則、方法和工具的集成 ,即支持開發也支持以後的演化過程(交付運行後,系統還會變化;或者為了改錯,或為了功能的遞增)。
結構化方法是一種特定的軟體開發方法學/一種系統化的軟體開發方法,包括:
就 軟體需求分析 而言,結構化分析指的是:系統化地使用 問題域 術語,給出該 問題的模型 (即「系統必須做什麼?」的一個估算)。
一個抽象層是由一組確定的術語定義的,為支持需求分析中有關要使用的那些信息的表達,結構化分析方法給出了以下五個術語/符號:
數據流圖是一種描述 數據變換 的圖形工具,它包含的元素可以是數據流、數據存儲、加工、數據源和數據潭等。
數據字典用於定義 數據流 和 數據存儲 的結構,並給出構成所給出的數據流和數據存儲的各數據項的基本數據類型。
數據字典還引入了一些 邏輯操作符 來定義 數據結構 。
示例:
描述加工「做什麼」,即 加工邏輯 ,也包括其它一些與加工有關的信息,如執行條件、優先順序、執行頻率、出錯處理等。
💡 描述一個加工,一般遵循如下模版:
「結構化自然語言」適用於加工的輸入數據和輸出數據之間的邏輯關系比較 簡單 的加工描述。
示例:
「判定表」適用於加工的輸入數據和輸出數據之間的邏輯關系比較 復雜 的加工描述。
判定表:
示例:
「判定樹」適用於加工的輸入數據和輸出數據之間的邏輯關系比較 復雜 的加工描述。
示例:
💡 頂層數據流圖——0層數據流圖——1層數據流圖——...
「設計」的定義:一種軟體開發活動,定義實現需求規約所需的軟體結構。
設計目標:依據需求規約,在一個抽象層上建立系統軟體模型,包括軟體體系結構(數據和程序結構),以及詳細的處理演算法,產生設計規約說明書。
即: 回答如何解決問題——給出軟體解決方案 。
結構化設計分為:
在總體設計層:
第一階段:初始設計。在對給定的數據流圖進行復審和精化的基礎上,將其轉化為初始的模塊結構圖。 根據穿越系統邊界的數據流初步確定系統與外部的介面 。
第二階段:精化設計。依據模塊「高內聚低耦合」的原則,精化初始的模塊結構圖,並 設計其中的全局數據結構和每一模塊的介面 。
第三階段:設計復審階段,(設計人員與綜合評審團隊)對前兩個階段得到的高層軟體結構進行復審,必要時還可能需要對軟體結構做一些精化工作。
基於 模塊化 原理—— 高內聚、低耦合 ;
模塊化的概念和基本原則(略)。
耦合:不同模塊之間相互依賴程度的度量。
內聚:一個模塊之內各成分之間相互依賴程度的度量。
啟發式規則:根據設計准則,從 長期的軟體開發實踐中,總結出來的規則 。
介面設計的分類:
系統的介面設計(包括用戶界面設計及與其他系統的介面設計)是由穿過系統邊界的數據流定義的。
在最終的系統中,數據流將成為用戶界面中的表單、報表或與其他系統進行交互的文件或通信。
用戶界面應具有的特性:可使用性、靈活性、可靠性。
「數據設計」:在設計階段必須對要存儲的數據及其格式進行設計。
文件設計的主要工作: 根據使用要求、處理方式、存儲的信息量、數據的活動性以及所提供的設備條件等確定文件類型 ,選擇文件媒體,決定文件組織方法,設計文件記錄格式,並估算文件的容量。
以下幾種情況適合選擇 文件存儲 :
詳細設計的任務:定義每一模塊。
詳細設計中主要引入了三種動作控制結構(順序、選擇、循環)的術語/符號。
結構化程序設計的概念:設計具有如下結構的程序:
優點:
PDL 不僅可以作為設計工具,而且可作為注釋工具,直接插在源程序中間,以保持文檔和程序的一致性,提高了文檔的質量。
缺點:
優點:
對控制流程的描繪很直觀,便於初學者掌握。
缺點:
優點:
優點:支持自頂向下逐步求精的結構化詳細設計,並且嚴格限制了控制從一個處理到另一個處理的轉移。
當演算法中 包含多重嵌套 的條件選擇時,用程序流程圖、盒圖、PAD圖、PDL都不易清楚描述,這時可以 選擇判斷表來表達復雜的條件組合與應做的動作之間的對應關系 。
判定樹是判定表的變種,也能清晰地表達復雜的條件組合與應做的動作之間的對應關系,形式簡單,但簡潔性不如判定表,數據元素的同一個值往往需要重復寫多次,而且越接近樹的葉斷重復次數越多。
一切系統都是由信息流構成的(其中包含一些必要的數據變換),每一個信息流都有自己的起點數據源,有自己的歸宿數據潭,有驅動信息流動的加工,因此所謂信息處理主要表現為 信息的流動 。
結構化方法是一種系統化的軟體系統建模方法,從測試的角度看,結構化方法是一種特定的建立驗證和確認所需標尺的方法學,包括 結構化分析 和 結構化設計 。
結構化方法的抽象層,包括:
緊緊圍繞 自頂向下 、 過程抽象 、 數據抽象 和 模塊化 等基本原理/原則,給出了: 完備的符號 、 可操作的過程 和 易於理解的表示工具 。並提供了:控制信息組織復雜性的機制,例如逐層分解,數據打包等,以支持將問題空間的一個問題映射為解空間的一個解。
6. 結構化分析方法的基本手段是什麼
結構化分析方法(Structured Method,結構化方法)是強調開發方法的結構合理性以及所開發軟體的結構合理性的軟體開發方法。
結構化分析方法給出一組幫助系統分析人員產生功能規約的原理與技術。它一般利用圖形表達用戶需求,使用的手段主要有數據流圖、數據字典、結構化語言、判定表以及判定樹等。
它的設計原則包括:
使每個模塊執行一個功能(堅持功能性內聚)
每個模塊用過程語句(或函數方式等)調用其他模塊
模塊間傳送的參數作數據用
模塊間共用的信息(如參數等)盡量少
基本實現手段如下:
一: 數據流圖
含義
數據流圖是SA方法中用於表示邏輯系統模型的一種工具,它從數據傳遞和加工的角度,以圖形的方式來刻畫數據流從輸入到輸出的變換過程。
(1)、元素
A、數據流。是由一組固定成分的數據組成,箭頭的方向表示數據的流向,箭頭的始點和終點分別代表數據流的源和目標。除了流向數據存儲或從數據存儲流出的數據不必命名外,每個數據流必須要有合適的名字,以反映數據流的含義。
B,外部實體。代表系統之外的實體,可以是人、物或其它系統軟體,他指出數據所需要的發源地或系統所產生的數據歸屬地。
C,對數據進行加工處理。加工是對數據進行處理的單元,它接受一定的數據輸入,對其進行處理,並產生輸出。
D、數據存儲。表示信息的靜態存儲,可以代表文件、文件的一部分、資料庫的元素等。
(2) 分層數據流圖
對於一個大型系統,如果在一張數據圖上畫出所有的數據和加工,則會使得數據流圖復雜而難以理解,為了控制復雜性,結構化分析法採用數據流圖分層技術。一套分層的數據流圖由頂層、底層和中間層組成。
(3)保持數據守恆
(4)加工細節隱蔽
二、數據字典
數據字典是關於數據的信息的集合,也就是對數據流圖中包含的所有元素定義的集合。數據字典是結構方法的核心。數據字典有以下幾個條目:數據項條目、數據流條目、文件條目和加工條目。
三、判定表
有些加工的邏輯用語形式不容易表達清楚,而用表的形式則一目瞭然。如果一個加工邏輯有多個條件、多個操作,並且在不同的條件組合下執行不同的操作,就可以使用判定表來描述。
四、判定樹
判定樹和判定表沒有本質的區別,可以用判定表表示的加工邏輯都可以用判定樹來表示。
五、結構化語言
採用一種介於自然語言和形式化語言之間的結構化語言來描述加工邏輯,既可以像自然語言那樣最方便,也可以像形式化語言一樣能夠精確描述事物,且被計算機易於處理。
六、E-R圖
E-R圖包含實體、關系和屬性等3種成分。這三個成分來理解現實問題,接近人們的思維方式。
注意事項:
一,命名。
二,畫數據流而不是控制流。
三,一般不畫物質流。
四,每個加工至少有一個數據流和一個輸出數據流。
五,編號
六,保持父圖和子圖的平衡
七,數據流圖的一致性
八,提高數據流圖的易懂性
7. 簡述結構分析方法基本手段和基本策略
結構化分析方法的基本手段是逐層分解,而數據流圖則是描述分解的基本手段.結構化分析方法能夠長期被人們接受並採納,主要是因為它有以下的特點:一、強調用戶自始至終的積極參與 在系統分析階段,用戶始終積極參與,使得用戶可以更多的了解新系統,並隨時從業務和用戶角度提出新的要求.另一方面也可使系統分析人員能更多的了解用戶的要求,更深入的調查和分析管理業務,使新系統更加科學、合理.二、注重整體分析,層層落實 按系統的觀點,任何事情都是相互聯系的有機整體.在分析時應首先站在整體的角度,將各項具體的業務或組織融合成一整體加以考察,首先確保全局的正確,然後再層層分解進行解剖分析.三、強調系統的適應性 各種事物都是運動和變化的.同理,在進行系統分析時,要充分預料到可能會發生的變化,增強系統的適應性,以應付各種各樣的變化.這些變化主要來自以下幾個方面:1、系統外部環境的變化.如外部的組織機構發生了變化,將引起信息傳遞渠道變化;上級主管部門需要的信息發生變化,則引起輸出和處理模塊的變化.2、系統內部處理模式的變化.如系統內部組織機構、管理方式和工藝流程的改變,必將引起數據的收集、輸入以及處理方式的變化.3、用戶要求的變化.隨著時間的推移、問題的深入、技術的發展,用戶的要求也會隨之變化.
8. 簡述結構化分析方法的實現步驟
結構化分析的步驟如下:
①分析當前的情況,做出反映當前物理模型的DFD;
②推導出等價的邏輯模型的DFD;
③設計新的邏輯系統,生成數據字典和基元描述;
④建立人機介面,提出可供選擇的目標系統物理模型的DFD;
⑤確定各種方案的成本和風險等級,據此對各種方案進行分析;
⑥選擇一種方案;
⑦建立完整的需求規約.
9. 結構化分析方法
結構化分析方法(Structured Method,結構化方法)是:一種軟體開發方法。

結構化設計的步驟如下:
①評審和細化數據流圖;
②確定數據流圖的類型;
③把數據流圖映射到軟體模塊結構,設計出模塊結構的上層;
④基於數據流圖逐步分解高層模塊,設計中下層模塊;
⑤對模塊結構進行優化,得到更為合理的軟體結構;
⑥描述模塊介面。