项目需求分析——如何理解和识别系统需求?
在前面的課程中,已經了解了結構化開發方法和面向對象的開發方法,并且學習了分析和設計階段的活動以及這些階段的每一項活動的目標。從這節課開始,我們將結合人脈項目,討論在分析階段使用的技巧及有關任務。分析階段有兩個關鍵任務,分別是識別系統需求和根據系統需求為系統建立需求模型。
一般說來,負責開發軟件項目的項目經理或系統分析員,需要盡可能地了解軟件項目涉及的業務活動細節,這是因為只有熟悉了項目的業務活動細節,才能確保系統完全滿足業務需求。例如,人脈項目是社交類項目,社交涉及的業務活動都需要熟悉和了解。如微信是主要的社交軟件,只有了解微信的分享、微信公眾號等業務功能,才能實現人脈項目與微信的互動。
?
功能和技術需求
系統分析階段要做的主要工作就是確定系統需求。系統需求是新系統必須要完成的功能,在《人脈項目技術要求》任務說明書中已經給出了系統的功能范疇。在系統分析階段,項目經理或系統分析員需要詳細地定義和描述這些功能,換句話說,項目經理或系統分析員要把這些高層功能分解為詳細的系統需求。一般而言,系統需求分為功能需求和技術需求兩類。
功能需求是系統必須完成的活動,功能需求直接來自項目招標書、任務說明書、項目合同書等確定的系統功能。例如,在《人脈項目技術要求》任務說明書中規定了項目要實現這樣一些功能:支持人脈資料的自動識別、批量導入和手動錄入、支持人脈資料的管理和分類、支持構建人脈網絡結構等等。這些都是人脈項目要實現的功能,確定和描述所有這些功能需要花費大量的時間和精力,給功能需求建模是理解功能需求最好的方式。
技術需求是描述軟件運行環境和性能目標的系統需求。例如在《人脈項目技術要求》任務說明書中,要求人脈項目支持Windows和Linux平臺、支持的移動終端為Android平臺和iOS平臺、用戶訪問系統并完成操作的響應時間一般控制在5秒以內等等,這些都是技術需求。
對于新系統的完整定義,功能需求和技術需求是必不可少的。這兩種系統需求都包含在系統需求調查中,功能需求通常記載在已建立的分析模型中,技術需求則通常記載在技術需求的敘述性描述里。
?
系統相關者
系統功能需求的主要來源是新系統的各種系統相關者。系統相關者是對系統感興趣的人。系統相關者有三類,一是類是使用系統的人,這類人也稱為用戶;二是購買和擁有系統的人,這類人也稱為客戶;三是確保系統運行的維護人員,這類人也稱為技術人員。
?
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖 1 人脈項目系統相關者
用戶是使用系統處理日常事務的人,用戶在使用系統時可能會處于不同的角色,不同角色的用戶對系統會有不同的需求。例如在庫存管理系統中,會涉及到生產部門、進貨部門、倉庫和銷售部門,每個部門的工作人員對系統的需求都會不同。因此在調查系統需求時,必須要確保這些部門的每個人都講述了自己的需求。
在人脈系統中,如圖1所示。用戶分為商務用戶、普通用戶、學生用戶、職業用戶、客戶和技術人員。商務用戶會有維護客戶關系、拓展客戶的需求;普通用戶可能就是單純記錄通訊資料的需求;學生用戶更注重于社交資料的真實性、個性化數字名片、校園社交等需求;職業用戶包括公務員、醫生、律師、科技工作者等用戶,這類用戶會有社交圈、分享等需求。
客戶是為系統提供資金的人和組織。客戶可能是項目招標方、購買系統的個人和組織、制定項目的公司管理層等。把客戶包括在系統相關者列表中,是因為項目開發小組必須在項目的整個開發過程中,始終向客戶提供項目進展的概要情況。
技術人員并不是真正的用戶,但他們是技術需求的來源。技術人員包括系統研發人員和維護系統運行的人員。技術人員會在編程語言、技術體系、計算機平臺和其它設備方面對項目提供幫助。
?
如何識別系統需求?
在系統開發中分析階段的目標就是要理解項目涉及的業務流程和定義系統需求。理解一個新系統的業務流程,最好的方法就是做好系統相關者的需求調查。也可以通過確定類似系統的業務流程和活動,來推斷出新系統的業務流程和系統需求。類似的系統可以是原有的系統,也可以是第三方公司的產品。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 2 識別系統需求的方法
在進行系統分析時,項目經理或系統分析員首先要問的問題是:我需要收集哪方面的信息?通常情況下,調查系統需求主要是獲取能夠建立新系統邏輯模型的信息。開展系統需求調查可以從三個問題入手:
● 項目涉及的業務過程和活動是什么?也就是提問用戶“你要干什么”?
● 業務過程和活動該怎樣完成?也就是提問用戶“你準備怎么完成它”或“需要哪些步驟”?
● 需求信息是什么?也就是提問用戶“為了實現這些業務過程,你需要哪些信息”?
?
第一個問題“你要干什么”。是從用戶的角度來理解系統要完成的功能。在大多數情況下,用戶會從已知的系統或者自身的需求來作出回答。作為項目經理或系統分析員需要從用戶的回答中仔細辨別出用戶提出的功能,哪些功能是重要的,哪些功能是需要保留的,哪些功能是需要刪除的。例如,人脈項目的商務用戶可能希望在節假日給選定的客戶自動發送賀卡等。
第二個問題是“你準備怎么完成它?”。從用戶的角度描述完成功能的步驟。例如在自動發送賀卡功能中,用戶可能希望首先選定要自動發送的客戶,然后設定發送的時間,再設置賀卡模板,輸入賀卡內容,最后系統在設定的時間自動發送賀卡。
第三個問題是針對第一個和第二個問題的。用戶提出了新系統的功能和完成步驟后,項目經理和系統分析員需要確定要給系統提供哪些信息來完成這些功能。
第一個問題和第二個問題用于確定新系統的功能及完成步驟,第三個問題給出了描述第一個問題和第二個問題的具體信息。對這三個問題的回答定義了系統需求的基礎。作為一個項目經理或系統分析員,理解用戶需求并建立需求模型是最重要的能力之一。
調查系統需求時也可以遵循一些已經證明行之有效的方法,這些方法往往被項目經理和系統分析員組合起來使用,提高了系統分析的效率,這些方法可以廣泛地用于不同規模的軟件項目開發中。下面列出了這些方法:
● 向系統相關者分發和收集調查表
● 復查現有報表、表格或過程描述
● 主持與用戶的面談和討論
● 觀察類似系統的過程和工作流
● 建立新系統原型
在后面的課程中會介紹如何使用這些方法。
?
小結
1、系統需求主要由功能需求和技術需求組成。功能需求是系統必須完成的活動。項目招標書、任務說明書、項目合同書等確定了系統的功能范疇。在分析階段,項目經理或系統分析員要把這些高層功能分解為詳細的功能需求;技術需求是描述軟件運行環境和性能目標的系統需求,例如系統的性能指標等。
2、系統功能需求的主要來源是新系統的各種系統相關者。系統相關者是對系統感興趣的人。如使用系統的用戶、購買或給系統提供資金的客戶、技術人員等。
3、識別新系統需求最好的方法是做好系統相關者的需求調查,調查系統相關者的方法有向系統相關者分發和收集調查表、復查現有報表、表格或過程描述、主持與用戶的面談和討論。也可以通過確定類似系統的業務流程和活動,來推斷出新系統的業務流程和系統需求。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的项目需求分析——如何理解和识别系统需求?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 3 一些常用的内置数据结构
- 下一篇: 光栅图形学算法基础其三 (消隐算法)