軟件需求分析就是把軟件計划期間建立的軟件可行性分析求精和細化,分析各種可能的解法,並且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、准確、清晰、具體的要求。
開發軟件系統最為困難的部分就是要准確說明開發什么。最為困難的概念性工作便是要編寫出詳細的技術需求,這包括所有面向用戶、面向機器和其它軟件系統的接口。如果做錯,這將是會最終給系統帶來極大損害的一部分,並且以后再對它進行修改也極為困難。目前,國內產品的龐雜,一家企業可能有幾個系統並立運行,它們之間的接口是系統開發人員最頭痛的問題。對於商業最終用戶應用程序,企業信息系統和軟件作為一個大系統的一部分的產品是顯而易見的。但是對於我們開發人員來說,並沒有編寫出客戶認可的需求文檔,我們如何知道項目於何時結束?而如果我們不知道什么對客戶來說是重要的,那我們又如何能使客戶感到滿意呢?
本學期學習這門課應掌握的內容:業務需求、用戶需求和功能需求(也包括非功能需求)也是需求分析三個不同的層次。
1.業務需求(business requirement)反映了組織機構或客戶對系統、產品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。業務需求通常來自項目投資人、購買產品的客戶、實際用戶的管理者、市場營銷部門或產品策划部門。業務需求描述了組織為什么要開發一個系統,即組織希望達到的目標。使用前景和范圍文檔來記錄業務需求,這份文檔有時也被稱作項目輪廓圖或市場需求文檔。
2.用戶需求(user requirement) 文檔描述了用戶使用產品必須要完成的任務,這在使用實例(usecase)文檔或方案腳本說明中予以說明。用例、場景描述和事件――響應表都是表達用戶需求的有效途徑。也就是說用戶需求描述了用戶能使用系統來做些什么。比如,作為用戶你用淘寶,找東西,拍貨,付款,你有怎樣的需求。作為賣家,你用淘寶怎么收款,發貨,管理訂單。 這就是一個個的use case 或者 user story。 所以 寫user story , 開頭第一句就是 As a xxx. 這都是從個人視角去看需求的。
3.功能需求(functional requirement)定義了開發人員必須實現的軟件功能,規定開發人員必須在產品中實現的軟件功能,用戶利用這些功能來完成任務,滿足業務需求。功能需求有時也被稱作行為需求( behavioral requirement ),因為習慣上總是用“應該”對其進行描述:“系統應該發送電子郵件來通知用戶已接受其預定”。功能需求描述是開發人員需要實現什么。
