02333自考(2011年版)軟件工程課後習題參考答案——第三章

1.、解釋術語
1)需求分析
答:一般來說,分析是系統地使用信息,對一個問題的估算。軟件需求分析是這一概念的特化,即系統化地使用“數據流”、“加工”、“數據存儲”、“數據源”和“數據潭”等術語所表達的信息,對待建系統“是什麼”給出一個估算――系統概念模型 軟件設計:在需求分析的基礎上,定義滿足需求所需要的結構,即針對給定的問題,給出該問題的軟件解決方案,確定“怎麼做”的問題。
2)軟件設計
答:在需求分析的基礎上,定義滿足需求所需要的結構,即針對給定的問題,給
出該問題的軟件解決方案,確定“怎麼做”的問題
3)數據流圖
答:表達功能模型的工具,即數據流圖( Dataflow Diagram ) 簡稱DFD圖,簡單
的說,DFD圖是一種描述數據變換的圖形化工具,其中包含的元素可以是數據流、數據存儲、加工、數據源和數據潭等。
4)變換性數據流圖
答:具有較明顯的輸入部分和變換(主加工)部分之間的界面、變換部分和
輸出部分之間界面的數據流圖
5)事務性數據流圖
答::數據到達一個加工T,該加工T 根據輸入數據的值,在其後的若干動作
序列(稱爲一個事務)中選出一個來執行的數據流圖
6)模塊
答::執行一個特殊任務的一個過程以及相關的數據結構稱爲模塊

2、何謂模塊耦合?簡述模塊耦合的類型
答:耦合是不同模塊之間相互依賴程度的度量。
模塊耦合分爲以下幾個類型:

  • 內容耦合:當一個模塊直接修改或操作另一個模塊的數據,或一個模塊不通過正常入口而轉入到另一個模塊時,稱爲內容耦合
  • 公共耦合:兩個或兩個以上的模塊共同引用一個全局數據項,這種耦合被稱爲公共耦合
  • 控制耦合:一個模塊通過接口向另一個模塊傳遞一個控制信號,接收信號的模塊根據信號值進行適當的動作
  • 標記耦合:若一個模塊A通過接口向兩個模塊B 和C傳遞一個公共參數,稱模塊B和C之間存在標記耦合
  • 數據耦合:模塊之間通過參數來傳遞數據

3、何謂模塊內聚?簡述模塊內聚的類型
答:內聚指一個模塊內部各成分之間相互關聯程度的度量
內聚的類型:

  • 偶然內聚:一個模塊的各成分之間基本不存在任何關係
  • 邏輯內聚:幾個邏輯上相關的功能被放在同一個模塊中
  • 時間內聚:一個模塊完成的功能必須在同一時間內執行,但這些功能只是因爲時間因素關聯在一起
  • 過程內聚:一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執行
  • 通信內聚:一個模塊的所有成分都操作同一數據集或生成同一數據集
  • 順序內聚:一個模塊的各個成分和同一個功能密切相關,而且一個成分的輸出作爲另一個成分的輸入
  • 功能內聚:最理想的內聚,模塊的所有成分對於完成單一的功能都是基本的。功能內聚的模塊對完成其功能而言是充分必要的

4、何謂模塊的控制域和模塊的作用域?並舉例說明
答:控制域:模塊本身以及所有直接或間接從屬於它的模塊的集合。
作用域:受該模塊內的一個判定所影響的所有模塊的集合

5、簡答以下問題:
1)爲了表達系統功能模型,結構化方法給出了哪些基本概念?它們是如何表示的?其基本作用是什麼?使用中應注意哪些問題?
答:
給出的基本概念 :

  • 數據流、加工、數據存儲、數據源和數據潭。

表示方法 :

  • 數據流表示方法:方向向右的箭頭;
  • 加工的表示方法:橢圓;
  • 數據存儲表示方法:兩條平行線;
  • 數據源和數據潭表示方法:一個長方形。

作用 :

  • 數據流:用於表達在分析中所使用的、用於表達“客體”的信號。
  • 加工:用於表達在分析中所使用的、用於表達“處理”的信號。
  • 數據存儲:用於表達在分析中所使用的、用於表達“結構化客體”的信號。
  • 數據源和數據潭:表示系統的環境,可以使用它們和相關數據流來定義系統的邊界,表達系統 /產品“邊界”的信息。

2)以結構化分析方法建立的系統功能模型由哪些部分組成?每一部分的基本作用是什麼?
答:組成部分:數據流、加工、數據存儲、數據源和數據潭。作用同上。

3)解釋結構符“+”、“|”、“{}”的含義,並舉例說明。
答:結構符用於定義數據結構:
+表示順序結構,例如 班級=班主任+學生
|表示選擇結構,例如 性別=男|女
{}表示重複結構,例如 學生成績={學生成績}

4)就一個特定系統而言,系統功能模型與系統模型的主要區別是什麼?
答:
區別:系統功能模型分爲數據流、加工、數據存儲、數據源和數據潭這四部分組成。
系統模型分爲兩類:一類稱爲概念模型,描述了系統是什麼;另一類系統稱爲軟件模型,描述了實現概念模型的軟件解決方法。

5)簡述結構化方法總體設計的任務及目標
答:任務:在需求分析的基礎上,定義滿足需求所需要的結構。目標:建立系統的模塊結構。

6)簡述結構化方法詳細設計的任務及目標。
答:任務:具體描述模塊結構圖中的每一模塊,即給出實現模塊功能的實施機制,包括一組例程和數據結構,從而精確地定義了滿足需求所規約的結構。
目標:將總體設計階段所產生的系統高層結構映射爲以這些術語所表達的低層結構,也是系統的最終結構。

7)簡述變換設計與事務設計之間的區別。
答: 區別:變換設計的目標是將變換型數據流圖映射爲模塊結構圖,而事務設計的目標是將事務型數據流圖映射爲模塊結構圖。

8) 簡述啓發式規則的基本原理。
答:啓發式規則“基於高內聚低耦合的原理,採用一些經驗性的啓發式規則,對初始的模塊結構圖進行精化,形成最終的模塊結構圖” 。
啓發式規則包括:
1. 改進軟件結構,提高模塊獨立性。
2. 力求模塊規模適中。
3. 力求深度、寬度、扇出和扇入適中。
4. 盡力使模塊的作用域在其控制域之內。
5. 盡力降低模塊接口的複雜度。
6. 力求模塊功能可以預測。

9)簡述依據一個系統的DFD,將其轉換爲MSD的基本思路
答:結構化設計方法在分類DFD 的基礎上,基於自頂向下、功能分解的設計原則,定義了兩種不同的“映射” ,即變換設計和事務設計。其基本步驟是,首先將系統的DFD 圖首先轉化爲初始的模塊結構圖,再基於“高內聚低耦合”這一軟件設計原理,通過模塊化,將初始的模塊結構圖轉化爲最終的、可供詳細設計使用的模塊結構圖

10)爲什麼說結構化設計與結構化分析之間存在一條鴻溝?
答::從軟件方法學習研究的角度,結構化方法仍然存在一些問題,其中最主要的問題是仍然沒有“擺脫”馮·諾依曼體系結構的影響,捕獲的“功能(過程) ”和“數據”恰恰是客觀失誤的易變性質,由此建造的系統結構很難與客觀實際系統的結構保持一致。

6、舉例說明結構化方法給出的控制複雜性機制
答:

  • 上層數據流可以打包,實例研究數據流查詢要求就是一個打包數據,並以* 作一特殊標誌。上下層數據流之間的對應關係通過數據字典予以描述。
  • 爲便於理解,把一幅圖中圖元個數儘量控制在7 加減2 個以內。
  • 檢查與每個加工相關的數據流是否有太多的輸入/ 輸出數據流,並尋找可降低該加工接口複雜性的,對數據流進行劃分的方法。
  • 分析數據內容,確定是否所有的輸入信息都用於產生輸出信息,相應的由一個加工產生的所有信息是否都能由進入該加工的信息導出。

7、試分析結構化方法在建造系統模型中存在的問題。
答:最主要的問題是沒有擺脫馮·諾依曼體系結構的影響,捕獲的功能過程和數據恰恰是客觀事物的易變性質,由此建造的系統結構很難與客觀實際系統的結構保持一致。在某種意義上說就是這些問題促使面向對象方法學的產生和發展。

9、舉例說明變換設計的步驟。
答:第一步,設計準備,複查並精化系統模型。第二步,確定輸入,變換,輸出這三部分之間的邊界。第三步,第一級分解,系統模塊結構圖頂層和第一層設計。第四步,第二級分解,自頂向下,逐步求精。

10、舉例說明事務設計的步驟。
答:第一步,設計準備,複查並精化系統模型。第二步,確定事務處理中心。第三步,第一級分解,系統模塊結構圖頂層和第一層設計,以數據流圖爲基礎,按自頂向下逐步細化的原則進行。第四步,第二級分解,自頂向下逐步求精。

13、一種軟件開發方法學,應該由哪些基本部分組成?
答:包括結構化分析方法、結構化設計方法、結構化程序設計方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章