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