需求可以按多種方式分類(例如,按功能和非功能分類)。使用需求模式有一個優(yōu)點,如果對模式分類,自動就對使用這些模式的需求分類。分類告訴我們一些使用模式的需求的本性。
使用這些分類的其他方式是按照分類找到需求以及統(tǒng)計需求。人們喜歡統(tǒng)計(至少有一些人,通常他們是高級行政人員,我們應(yīng)該讓他們高興)。對系統(tǒng)的需求的統(tǒng)計可以在很多方面有用。可以幫助大概了解系統(tǒng)的復(fù)雜性和規(guī)模。為了這個目標,需要對每個需求標記所需統(tǒng)計的數(shù)值。(需求管理工具通常定義一些額外的需求屬性,然后對每個需求輸入屬性的數(shù)值,這是個乏味的工作。)使用需求模式可以節(jié)省這方面的工作,因為使用模式產(chǎn)生的所有需求有共同的屬性。它們只需要在模式編寫的時候定義一次。這個信息記錄在每個模式的“模式分類”部分。
于如何保存需求。(這留給讀者練習)一個直接的辦法就是把需求拷貝到excel中,添加一列確定需求使用的需求模式,對每一個分類添加一列。(按模式名排序可以更容易一次處理多個分類數(shù)值。)
本書中的需求模式只包含了少量的基本分類方式,定義在下面。你可以定義自己額外的分類方式,并用它們對模式分類。如果是這樣的話,按照下面的方式編寫合適的定義,然后把它們放在引用它們的需求模式的地方。
分類可以幫助使用需求的任何人,包括開發(fā)人員。因此,不必要所有人都理解每一個分類。基于這個原因,每一個分類要有一個主要讀者,并且明確的陳述。如果你不屬于這部分讀者,不要擔心不能理解它的目的或者對它不感興趣。
需求模式的分類需要合適和精確的定義,否則基于分類的統(tǒng)計就不可能可靠。每個分類需要定義以下內(nèi)容:
名稱: |
分類的唯一的,明顯的名稱 |
讀者: |
關(guān)于誰可能對這個分類感興趣的解釋:目標是誰。 |
目的: |
描述分類使用的意圖是什么。 |
允許值: |
定義在模式中這個分類可以有的值,解釋它們的含義。最通常的方法是定義數(shù)值列表。數(shù)字的或者文字的或者任何其他數(shù)值都可以使用,只要讀者了解這些數(shù)值的含義。 |
缺省值: |
如果在模式中的分類沒有定義(明確陳述),這就是采用的數(shù)值。這樣可以不必在模式中明確的定義分類,如果這個分類只對相對少量的模式有意義(換句話說,就是只對少量模式重要)。 |
本書中用到三個需求模式分類,下面使用這種格式描述。
“功能”分類
名稱: |
功能 |
讀者: |
對挑選系統(tǒng)功能感興趣的任何人,或者對功能數(shù)量感興趣的人。 |
目的: |
指出這種類型的需求是否定義了系統(tǒng)必須提供的功能 |
允許值: |
是 |
每一個這種類型的需求是功能需求。 |
可能是 |
有些這種類型的需求是功能需求;有些不是。編寫一個模式時,小心使用這個值。確定模式是否定義清楚了;可能應(yīng)該分成兩個,一個是功能部分一個是非功能部分。 |
否 |
這種類型的需求不是功能需求 |
缺省值: |
否 |
“普遍性”分類
名稱: |
普遍性 |
讀者: |
軟件開發(fā)人員 |
目的: |
指出這種類型的需求是否是普遍性的(也就是說,適用整個系統(tǒng))。它的目的是提醒開發(fā)人員注意,不管他們正在開發(fā)系統(tǒng)的那一部分,這個需求都影響他們。 |
允許值: |
是 |
這種類型的需求是普遍性需求。 |
可能是 |
有些這種類型的需求是普遍性的,有些不是。 |
否 |
這種類型的需求不是普遍性需求 |
缺省值: |
否 |
“影響數(shù)據(jù)庫”分類
名稱: |
影響數(shù)據(jù)庫 |
讀者: |
數(shù)據(jù)庫管理員(以及軟件開發(fā)人員) |
目的: |
指出這種類型的需求是否會影響系統(tǒng)數(shù)據(jù)庫的設(shè)計。它的目的提醒負責設(shè)計數(shù)據(jù)庫的人員關(guān)注 |
這些需求 |
允許值: |
是 |
這種類型的需求影響數(shù)據(jù)庫。 |
可能是 |
有些這種類型的需求影響數(shù)據(jù)庫,有些不影響。 |
否 |
這種類型的需求不直接影響數(shù)據(jù)庫。(盡管這并不意味著數(shù)據(jù)庫管理員可以不關(guān)心它)。 |
缺省值: |
可能是 |