3)用戶群分類:產品的用戶在很多方面存在著差異,例如:用戶使用產品的頻度、他們的應用領域和計算機系統(tǒng)知識、他們所使用的產品特性、他們所進行的業(yè)務過程、他們在地理上的布局以及他們的訪問優(yōu)先級。根據這些差異,你可以把這些不同的用戶分成小組。用戶類不一定都指人,你可以把其它應用程序或系統(tǒng)接口所用的硬件組件也看成是附加用戶類的成員。以這種方式來看待應用程序接口,可以幫助你確定產品中那些與外部應用程序或組件有關的需求。將用戶群分類并歸納各自特點為避免出現(xiàn)疏忽某一用戶群需求的情況,要將可能使都有所差異。詳細描述出它們的個性特點及任務狀況,將有助于產品設計。
4)選擇產品代表:擇每類用戶的產品代表為每類用戶至少選擇一位能真正代表他們需求的人作為那一類用戶的代表并能作出決策。這對于內部信息系統(tǒng)的開發(fā)是最易實現(xiàn)的,因為此時,用戶就是身邊的職員。而對于商業(yè)開發(fā),就得在主要的客戶或測試者中建立起良好的合作關系,并確定合適的產品代表。他們必須一直參與項目的開發(fā)而且有權作出決策。每一個產品代表者代表了一個特定的用戶類,并在那個用戶類和開發(fā)者之間充當主要的接口。
5)建立核心隊伍:建立起典型用戶的核心隊伍把同類產品或你的產品的先前版本用戶代表召集起來,從他們那里收集目前產品的功能需求和非功能需求。這樣的核心隊伍對于商業(yè)開發(fā)尤為有用,因為你擁有一個龐大且多樣的客戶基礎。與產品代表的區(qū)別在于,核心隊伍成員通常沒有決定權。
6)確定使用實例:讓用戶代表確定使用實例從用戶代表處收集他們使用軟件完成所需任務的描述-使用實例,討論用戶與系統(tǒng)間的交互方式和對話要求。在編寫使用實例的文檔時可采用標準模版,在使用實例基礎上可得到功能需求。
一個單一的使用實例可能包括完成某項任務的許多邏輯相關任務和交互順序。因此,一個使用實例是相關的用法說明的集合,并且一個說明是使用實例的例子。在描述時列出執(zhí)行者和系統(tǒng)之間相互交互或對話的順序。當這種對話結束時,執(zhí)行者也達到了預期的目的。
對于一些復雜的使用實例,畫出圖形分析模型是有益的,這些模型包括數據流程圖、實體關系圖、狀態(tài)轉化圖、對象類和聯(lián)系圖。
使用實例的描述并不向開發(fā)者提供他們所要開發(fā)的功能的細節(jié)。為了減少這種不確定性,你需要把每一個使用實例敘述成詳細的功能需求。每一個使用實例可引伸出多個功能需求,這將使執(zhí)行者可以執(zhí)行相關的任務;并且多個使用實例可能需要相同的功能需求。使用實例方法給需求獲取帶來的好處來自于該方法是以任務為中心和以用戶為中心的觀點。比起使用以功能為中心的方法,使用實例方法可以使用戶更清楚地認識到新系統(tǒng)允許他們做什么。
每一個使用實例都描述了一個方法,用戶可以利用這個方法與系統(tǒng)進行交互,從而達到特定的目標。使用實例可有效地捕捉大多數所期望的系統(tǒng)行為,但是你可能有一些需求,這些需求與用戶任務或其他執(zhí)行者之間的交互沒有特定的關系。這時你就需要一個獨立的需求規(guī)格說明。
7)召開應用程序開發(fā)聯(lián)系會議:召開應用程序開發(fā)聯(lián)系會議應用程序開發(fā)聯(lián)系會議是范圍廣的、簡便的專題討論會,也是分析人員與客戶代表之間一種很好的合作辦法,并能由此擬出需求文檔的底稿。該會議通過緊密而集中的討論得以將客戶與開發(fā)人員間的合作伙伴關系付諸于實踐。
8)分析用戶工作流程:分析用戶工作流程觀察用戶執(zhí)行業(yè)務任務的過程。畫一張簡單的示意圖(最好用數據流圖)來描繪出用戶什么時候獲得什么數據,并怎樣使用這些數據。編制業(yè)務過程流程文檔將有助于明確產品的使用實例和功能需求。你甚至可能發(fā)現(xiàn)客戶并不真地需要一個全新的軟件系統(tǒng)就能達到他們的業(yè)務目標。
9)確定質量屬性:確