一 需求
1.定義系統(tǒng):初步定義系統(tǒng)中應(yīng)該包括哪些內(nèi)容,以及不包括哪些內(nèi)容。
目標(biāo)-確定系統(tǒng)的范圍
活動(dòng):
1)捕獲通用詞匯:確立項(xiàng)目中要使用的通用術(shù)語(yǔ)和概念。
輸入工件:前景文檔
輸出工件:詞匯表
通用術(shù)語(yǔ)指的是那些在描述系統(tǒng)行為過(guò)程中經(jīng)常會(huì)出現(xiàn)的詞匯。
2)找出參與者和用例:定義系統(tǒng)的邊界
綜述:識(shí)別出參與者和用例,將結(jié)果記錄在用例模型中。對(duì)于不能與特定用例相關(guān)
聯(lián)的需求內(nèi)容記錄在補(bǔ)充規(guī)約中。
輸出工件:用例模型、補(bǔ)充規(guī)約
步驟:
(1)找出參與者
參與者是在系統(tǒng)外部與系統(tǒng)交互的某人或者某系統(tǒng)。找出參與者有助于定義系
統(tǒng)的邊界。它們代表系統(tǒng)的外部環(huán)境。
(2)找出用例
用例是一個(gè)完整的事件流描述,為特定的參與者提供一個(gè)有價(jià)值的結(jié)果。
找出用例的最好辦法就是研究每一個(gè)參與者針對(duì)系統(tǒng)的要求。系統(tǒng)之所以存在
的意義就在于為那些與其交互的參與者提供他們需要的服務(wù)。
以下的一系列問(wèn)題有助于找出用例:
· 針對(duì)每一個(gè)參與者,系統(tǒng)將參與完成哪些任務(wù)
· 參與者是否需要獲知系統(tǒng)內(nèi)部所發(fā)生的特定情況。
· 參與者是否需要將外部變化通知系統(tǒng)
· 找出的用例是否能夠提供前景中所描述的全部特性。
· 在系統(tǒng)中必須要修改和建立什么信息。哪些參與者需要參與到相應(yīng)的變更
活動(dòng)中。
· 什么用例會(huì)支持系統(tǒng)的管理和維護(hù)工作。
注:現(xiàn)在不用描述用例的細(xì)節(jié)內(nèi)容。現(xiàn)在的主要任務(wù)是定義這些用例的目的。
(3)收集補(bǔ)充需求
有些需求并不能分配給特定的用例,這些需求是針對(duì)整個(gè)系統(tǒng)的。將這些
需求記錄在補(bǔ)充規(guī)約當(dāng)中。
(4)描述參與者和用例的交互
它們之間的關(guān)系被表述為關(guān)聯(lián)關(guān)系。
(5)對(duì)用例和參與者打包
用例模型的目的是開(kāi)發(fā)團(tuán)隊(duì)與系統(tǒng)涉眾之間的一個(gè)合約。因而將該模型的
復(fù)雜度控制在最低限度是非常重要的。如果參與者和用例的個(gè)數(shù)過(guò)多,可以將
它們放到用例模型的不同包當(dāng)中。
3)排序用例
活動(dòng):對(duì)已識(shí)別出的用例進(jìn)行排序
輸入工件:用例模型、前景文檔
輸出工件:用例優(yōu)先級(jí)列表。
步驟:
(1) 排序用例
(2) 更新軟件架構(gòu)文檔
2.精化系統(tǒng)定義
活動(dòng):
1) 細(xì)化用例
綜述:針對(duì)先前找出的用例,描述相應(yīng)的事件流內(nèi)容。不針對(duì)特定用例的需求內(nèi)容被記錄在補(bǔ)充規(guī)約中。在當(dāng)前的迭代中,針對(duì)每個(gè)用例展開(kāi)細(xì)化用例的活動(dòng)。
這個(gè)活動(dòng)的起點(diǎn)事在找出參與者和用例活動(dòng)中得到的用例的描述,而后逐步細(xì)化相關(guān)內(nèi)容,直到所有涉眾都認(rèn)可用例的內(nèi)容已經(jīng)能夠表達(dá)他們的需求。
在細(xì)化用例的時(shí)候,我們要說(shuō)明以下信息:
·名稱
·簡(jiǎn)要描述:用例的目標(biāo)和用途
·事件流:針對(duì)系統(tǒng)行為的文字描述。其內(nèi)容表述為參與者和系統(tǒng)之間的交互。
·特殊需求:針對(duì)那些不在事件流中的需求內(nèi)容的文字描述。就是針對(duì)用例的非功
能需求。
·前置條件:為了執(zhí)行特定用例,系統(tǒng)所應(yīng)具備的狀態(tài)
·后置條件:用例執(zhí)行結(jié)束時(shí),系統(tǒng)可能處于的狀態(tài)列表。
注:將用例的詳細(xì)文字描述放在用例規(guī)約文檔中。
步驟:
(1)細(xì)化用例的事件流內(nèi)容
(2)描述用例的特殊需求
(3)描述用例的前置條件
(4)描述用例的后置條件
2) 結(jié)構(gòu)化用例模型
綜述:消除用例之間的冗余,使得用例模型更加簡(jiǎn)明。