軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法,(方法、工具、過程)
軟件需求分析和定義
軟件需求:功能需求、非功能需求、設計約束;業(yè)務需求、用戶需求、系統(tǒng)需求
需求工程:需求開發(fā)(需求捕獲、需求分析、編寫規(guī)格說明書、需求驗證)、需求管理(需求基線、處理需求變更、需求跟蹤)
需求調查和問題定義:要捕獲的信息、信息的來源、需求捕獲技術(用戶訪談、用戶調查、現(xiàn)場觀摩、文檔考古、聯(lián)合討論會)
可行性研究的任務:技術可行性、經濟可行性、社會可行性
可行性研究工作的步驟:核實問題定義和目標,研究分析現(xiàn)有系統(tǒng)(包括非計算機系統(tǒng)),為新系統(tǒng)建模(系統(tǒng)上下文關系范圍圖、實體-關系圖(E-R)、用例模型、域模型、IPO表),客戶復核、提出并評價解決方案、確定最終推薦的解決方案(成本效益分析包括成本估計、效益分析)、草擬開發(fā)計劃、提交可行性分析報告
需求分析:繪制系統(tǒng)上下文范圍關系圖、創(chuàng)建用戶接口原型、分析需求的可行性、確定需求的優(yōu)先級、為需求建立模型、創(chuàng)建數據字典、使用質量功能調配
需求分析方法:結構化分析方法、軟系統(tǒng)方法、面向對象分析方法、面向問題域的分析
結構化分析與面向對象分析方法之間最大的區(qū)別是:結構化分析方法把系統(tǒng)看做一個過程的集合體,包括人完成的和電腦完成的;而面向對象方法則把系統(tǒng)看成一個相互影響的對象集。結構化分析方法的特點是利用數據流圖來幫助人們理解問題,對問題進行分析
步驟:研究“物質環(huán)境”、建立系統(tǒng)邏輯模型、劃清人機界面
數據流圖:過程、外部實體、數據存儲、數據流、實時連接
實體-關系圖(E-R圖)