1.需求分析概述:需求分析是軟體定義程式時期的最後一個階段,它的基本任務是準確地回答“系統必須做什麼”這個問題。
2.明確對系統的綜合需求:(1)功能需求:指定系統必須提供的服務 (2)效能需求:回應時間、並發/可延伸性 (3)可靠性和可用性需求:定量、定時 (4)出錯處理需求 “出錯處理”指的是當應用系統發現自己犯下一個錯誤時所採取的行動 (5)介面需求:使用者、軟體、通訊、IO (6)約束:相關標準、安全性、精度、平台 (7)逆向需求:不需要的需求 (8)將來可能提出的需求
3.分析系統的資料要求:ER模型
4.邏輯模型:DFD DD ER圖 功能結構圖 演算法
5.與使用者溝通獲得需求的方法:
(1)訪談 調查表 情景分析技術
(2)面向資料流自頂向下求精
(3)簡易的應用規格說明技術 :首先進行初步的訪談,通過使用者對基本問題的回答,初步確定待解決的問題的範圍和解決方案。然後開發人員和使用者分別寫出“產品需求”
(4)快速建立軟體原型:快速原型的目的是儘快向使用者提供一個可在電腦上啟動並執行目標系統的模型,以便使使用者和開發人員在目標系統應該“做什麼”這個問題上儘可能達成共識。
6.資料對象:對軟體必須理解的複合資訊的抽象。所謂複合資訊是指具有一系列不同的性質或屬性的事物,僅有單個值的事物(例如寬度)不是資料對象。
資料對象彼此之間是有關聯的 1:1 1:N M:N
7.注意聯絡也有屬性
8.範式
(1)第一範式 每個屬性值都必須是原子值,即僅僅是一個簡單的值而不含有內部結構
(2)第二範式 滿足第一範式的條件,而且每個關鍵字屬性都是由整個關鍵字決定(而不是由關鍵字的一部分決定)違反{學號,姓名,課程名,成績},其中課程名不能完全由學號決定
(3)第三範式:符合第二範式的條件,每個非主關鍵字屬性都僅由關鍵字決定,而且每一個關鍵字屬性不能僅僅是對另一個關鍵字的進一步描述(即每一個非關鍵字屬性不依賴於另一個關鍵字屬性值) 違反{學號,姓名,出生日期,年齡} 其中年齡和出生日期
9.驗證軟體需求的方法:
(1)驗證需求的一致性:概念一致
(2)驗證需求的現實性:技術上
(3)驗證需求的完整性和有效性