軟件工程:軟件需求模式之間的關系

字號:

當使用一個需求模式時,應該描述建立這種類型需求的需要知道的所有事。但是一個模式可能會因為一些原因引用其他模式。需求模式之間的關系存在兩種基本類型:
    1.引用 一個需求模式可以在定義中提到另一個模式。一個模式引用另外一個模式有幾個原因:
    a.一個需求定義的一些東西包含(有)另外一個需求定義的一些東西。
    b.一個模式的需求實例使用了第二個模式的需求實例定義的信息。例如一個需求定義了一個數(shù)據(jù)結構可能使用了一個數(shù)據(jù)類型需求定義的一個值。
    c.一個需求可能建議建立一種額外需求,可以應用一個模式定義它。
    d.轉移模式可能引導使用不同的模式建立需求。(見本章后面的“轉移需求模式部分)
    e.需求模式可以引用另一個模式,這個模式包含一個特別主題的相關推理信息。
    2.擴展 一個需求模式以另外一個模式為基礎開發(fā)(或者是特殊化)。在面向對象的術語中,這是繼承關系。除了擴展另外一個模式,需求模式可以擴展需求模式組。(在面向對象術語中,組類似于模式的抽象基類)需求模式不允許擴展多個模式或組。
    可以畫一個圖描述一組模式和基礎架構以及它們之間的關系。圖 3‑3顯示了兩個領域,并有符號注釋。繼承是最重要的關系類型。為了簡單,所有其他類型關系都顯示為“引用”,盡管它的角色寫在了連線的標簽上。當在一個圖中顯示多個領域時,顯示所有的關系是不實用的。這種情況下,可以只顯示所有領域內的關系和所有擴展關系,而省略領域之間的引用關系。對于熟悉面向對象概念(或者UML)的讀者,這類似于一個顯示類之間關系的類圖。
    
    Domain boundary: 領域邊界
    “Refers to” relationship: 引用關系
    Requirement pattern: 需求模式
    Domain name: 領域名稱
    Data type: 數(shù)據(jù)類型
    Calculation formula: 計算公式
    Information: 信息
    Uses: 使用
    ID: 標識符
    Data structure: 數(shù)據(jù)結構
    Data archiving: 數(shù)據(jù)歸檔
    Data longevity: 數(shù)據(jù)壽命
    Data entity: 數(shù)據(jù)實體
    Information storage: 信息存儲
    Living entity: 活實體
    Transaction: 交易
    Configuration: 配置
    Chronicle: 編年史
    Has: 有
    Infrastructure: 基礎架構
    Requirement pattern group (“abstract base pattern”): 需求模式組(抽象基模式)
    “Extends” relationship: 擴展關系,“數(shù)據(jù)實體”不是一個模式。它是一個需求模式組:描述了四個基于它之上的模式的共有的特性。任何適用于組中所有模式的描述信息應該放在模式組中,而不是在每個模式中重復。而且按照慣例,需求模式關系的標簽放在更靠近關系的主體一邊,而不是客體。所以是數(shù)據(jù)實體有一個標識符(而不是反過來)。六邊形的“信息存儲”代表是一個基礎架構。