系統分析不完全是需求分析;需求分析屬于系統分析。
在我印象中,系統分析和需求分析是同一件事,說法不同而已,平時也是混合使用,不加區分。但事實上,二者還是有所差別。教程裡,系統分析和需求分析分别位于不同的章節,其中系統分析自成一章,而需求分析則放在需求工程章節裡。
從書本表述看,系統分析與需求分析用的技術,包括調查方法和分析内容,基本上是一緻的,而系統分析的産物是《系統需求規格說明書》,需求分析之後進行需求定義,産物是《軟體需求規格說明書》,輸出也一樣。
一、系統分析
按照書本的理論,系統分析階段也稱為邏輯設計階段,其任務是根據系統設計任務書所确定的範圍,對現有系統進行詳細調查,描述現有系統的業務流程,指出現有系統的局限性和不足之處,确定新系統的基本目标和邏輯功能要求,即提出新系統的邏輯模型。
系統分析的工作内容包括:
1)詳細調查
2)現有系統分析
3)組織結構分析
對使用系統的企業或機關進行組織結構分析
4)系統功能分析
5)業務流程分析
6)資料與資料流程分析
7)輸出系統需求規格說明書
二、需求分析
需求分析就是提煉、分析和仔細審查已經擷取到的需求,把雜亂無章的使用者要求和期望,轉化為使用者需求,以確定所有的項目幹系人都明白其含義,并找出其中的錯誤、遺漏或其他不足的地方。需求分析的工作通常包括7個方面:
1)繪制系統上下文範圍關系圖
2)建立使用者界面原型
3)分析需求的可行性
4)确定需求的優先級
5)為需求建立模型
6)建立資料字典
7)使用QFD(品質功能部署)
即将使用者需求精确無誤地轉變為技術要求。QFD是一種在設計階段應用的系統方法。
QFD(Quality Function Deployment,品質功能部署)是一種将使用者要求轉化成軟體需求的技術。其目的是最大限度地提升軟體工程過程中使用者的滿意度。為了達到這個目标,QFD将軟體需求分為三類:正常需求、期望需求和意外需求。
【正常需求】
使用者認為系統應該做到的功能或性能,實作越多使用者越滿意。
【期望需求】
使用者想當然認為系統應當具備的功能或性能,但并沒有或不能正确地描述自己想要這些功能或性能。如果期望需求沒有實作,使用者會不滿意。
【意外需求】
也稱為興奮需求。是使用者要求範圍外的功能或性能,實作了使用者會更高興,但不實作也不影響購買決策。意外需求實施與否,控制在開發人員手中。開發人員可以選擇實作,以便獲得使用者的更高忠誠度;也可以從成本角度出發,不予實作。
需求擷取及記錄聯合需求計劃(JRP)需求分析工作過程
三、系統分析與需求分析的差別
按我的了解,系統分析和需求分析的差別如下:
1、系統分析針對的是在現有系統基礎上更新或建立系統;而需求分析說的是從無到有地建立一個系統
2、系統分析适用于機關或企業内部建設系統;而需求分析适用于對外的商業系統開發
3、系統分析的範圍比需求分析廣。系統分析包括系統調查、現有系統分析、輸出系統需求規格說明書,而需求分析隻是需求工程之需求開發中的一個步驟,需求開發的步驟依次是需求擷取、需求分析、需求定義、需求驗證。
或者說,系統分析對标的是需求開發。
四、系統分析與需求分析沒有差別
但如果根據國家标準(GB/T 8566-2007)對軟體生命周期的劃分,則需求分析又等同于系統分析,是對其中一個階段的命名。