Chapter 4 結構化技術 - Ian-Liu-1990/Systems-Analysis-Design GitHub Wiki

1. 結構化技術範疇

1. 結構化分析(Structured Analysis,SA)

  1. 資料流程圖(Data Flow Diagram)
  2. 資料字典(Data Dictionary)
  3. 決策表(Decision Table)
  4. 資料結構圖(Data Structured Diagram)或HIPO
  5. 決策樹(Decision Tree)
  6. 系統關係圖(System Context Diagram)

2. 結構化設計(Structured Design,SD)


3. 結構化程式設計


4. 由上而下的發展

1-1. 由上而下設計

1-2. 由下而上設計


2. 由上而下或由下而上編碼


3-1. 軟體測試[何為軟體測試? ]

測試類型 測試階段 測試模式 測試內容 測試人員 測試例子
單元 開發初期 白箱 模組為單元,測試邏輯程序(迴圈次數,判斷式條件是否正確,輸入參數是否符合規範和輸出結果是否正確).且獨立進行,不受前後工作致使結果受影響而不一致 程式設計師 測試腳本
整合 模組結合為子系統 白箱 單元測試邏輯延伸,為測試多個模組元件間的介面在相互溝通和傳遞資料是否正確 程式設計師 測試腳本
驗收 軟體部署於硬體前 黑箱 確保軟體準備就緒,展示軟體可依使用者需求執行 專門測試人員 Alpha測試
系統 系統完成時 黑箱 軟硬結合,人員,數據和環境等與系統有關之元素結合一起測試 特定人士 Beta測試

  • 參考 - Alpha和Beta測試 :
    • Alpha測試:
      • 何時: 階段性的開發完成後所開始進行,是一種驗證測試,
      • 誰測: 通常是開發與測試單位的開發人員與測試人員,
      • 怎麼測: 以類比或實際操作性的方式進行驗證測試。
      • 結果: 驗證資訊系統符合使用者以及設計需求所期望的功能。
    • Beta測試:
      • 何時: Alpha測試完之後
      • 誰測: 由公眾參與的測試的階段
      • 怎麼測: 在一個真實的環境中以實際的資料來執行測試,以確認效能,系統執行有效率,系統復原與備份作業正常
      • 結果: 透過測試讓資訊系統日後可以更趨完善。

3-2. 由上而下實施(Top-Down Implementation)或由上而下整合測試(Top-Down Integration Test)

換句話說,在由上而下測試中,殘根模組(Stub Module)或虛擬模組(Dummy Module)作為暫時替代的模組當作低階模組幫助高階模組測試.
由上而下-優點 缺點 由下而上-優點 缺點
發先錯誤 錯誤在上方及早發現 - 錯誤在下方及早發現 -
測試準備 - 需要製造殘根和虛擬模組(設計複雜,輸出入設計困難) - 必須製造啟動模組
結果觀察 - 測試個案不易產生或不準確,結果難觀察,準確度不高 測試個案設計容易,易準確觀察測試結果 -
設計與測試重疊 - 設計與測試產生重疊的誤解,潛意識對模組測試產生可延期的想法 不會產生設計與測試重疊的誤解 -
測試範疇 - 低階模組平行測試受限上層模組的完成度 - 整體系統要到最後模組完成才可以看見全貌
測試次數 最高階模組介面被測試次數最多 - 最低階模組受測試較徹底 -

結構化分析與設計結論-分治(Divide and Conquer)

  • 分析對象: 針對資訊系統有使用者介面,問題處理,知識子系統三個主要元件作結構化的分析與設計
  • 實現辦法: 因為結構化強調資料與流程分開處理,所以分成
1. 資料塑模: 針對知識子系統,若後端系統使用關聯資料庫,使用系統需求分析階段完成的[藍圖+描述詞彙]內容,以實體關聯圖[ERD]進行資料塑模,表示資料與資料間的關係,再依規則轉換成關聯表,並進行正規化檢查與精簡,進一步創建資料庫系統.

2. 流程塑模: 針對系統問題處理,使用系統需求分析階段完成的[環境圖+流程圖+事件描述]內容,以資料流程圖[DFD]進行流程塑模,表示所有外部實體與系統的互動,包括系統內部之處理程序及所需資料的輸出入,再將DFD圖轉成結構圖或HIPO圖,以層級結構再進行模組設計,最後再進行結構化程式設計

3. 使用者介面塑模: 針對使用者介面,使用[介面(結構圖+藍圖+元件規格),狀態圖與轉換表]進行介面表達,完成後進行進階之使用者介面設計