《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 信息系統(tǒng)領域需求庫描述模式
信息系統(tǒng)領域需求庫描述模式
來源:微型機與應用2013年第24期
孟劍萍1, 孟劍君2, 欒 輝3
(1. 中國電子科技集團公司南京第二十八研究所,江蘇 南京 210007; 2. 山東中煙工業(yè)有限責
摘要: 隨著社會分工越來越細,面向信息系統(tǒng)軟件研發(fā)的企業(yè)和部門越來越多地專注于特定領域的產(chǎn)品開發(fā),并在企業(yè)和部門資產(chǎn)庫中積累了大量的基于單個項目的軟件需求。目前,這些需求像一個個孤立的“煙囪”,很難用于相同領域后續(xù)項目的開發(fā),造成了企業(yè)財富和成果的大量浪費。分析了領域需求與項目需求的關系,描述了領域需求庫的構成與建立過程、領域需求庫管理方法,用于指導系統(tǒng)化軟件需求復用,為企業(yè)領域工程工作的開展和研究奠定基礎。
Abstract:
Key words :

摘  要: 隨著社會分工越來越細,面向信息系統(tǒng)軟件研發(fā)的企業(yè)和部門越來越多地專注于特定領域的產(chǎn)品開發(fā),并在企業(yè)和部門資產(chǎn)庫中積累了大量的基于單個項目的軟件需求。目前,這些需求像一個個孤立的“煙囪”,很難用于相同領域后續(xù)項目的開發(fā),造成了企業(yè)財富和成果的大量浪費。分析了領域需求與項目需求的關系,描述了領域需求庫的構成與建立過程、領域需求庫管理方法,用于指導系統(tǒng)化軟件需求復用,為企業(yè)領域工程工作的開展和研究奠定基礎。
關鍵詞: 領域需求; 領域需求庫

    隨著信息技術的飛速發(fā)展,社會分工越來越細,面向信息系統(tǒng)軟件研發(fā)的企業(yè)和部門越來越多地專注于特定領域的產(chǎn)品開發(fā)。在產(chǎn)品開發(fā)過程中,這些企業(yè)和部門積累了大量的基于單個項目的軟件需求,并已經(jīng)進行了條目化管理。目前,這些項目需求通常分散在各個項目的需求庫和需求文檔中,像一個個孤立的“煙囪”,很難用于相同領域后續(xù)項目的開發(fā)。這種現(xiàn)狀,一方面,導致了企業(yè)財富和成果的大量浪費;另一方面,新的項目由于無法充分復用已有的需求進行需求分析,最終,往往無法形成真正滿足用戶需求的信息系統(tǒng)產(chǎn)品。
    解決上述問題的一個有效途徑就是通過對項目需求逐一進行分析、整合,建立領域需求庫,從而達到可以對需求進行系統(tǒng)化復用(Systematic Reuse)的目的。這必將進一步提高產(chǎn)品質(zhì)量和生產(chǎn)效率,緩解日益嚴重的軟件危機,同時生產(chǎn)和提供能夠滿足特定領域用戶需求的信息系統(tǒng)產(chǎn)品。
    基于領域需求庫,新的項目的需求分析將不再是從零開始,而是建立在對企業(yè)資產(chǎn)大量復用的基礎上。
    本文分析了領域需求與項目需求的關系,描述了領域需求庫的構成與建立過程、領域需求庫管理方法,用于指導信息系統(tǒng)軟件的需求分析與需求復用,為企業(yè)領域工程工作的開展和研究奠定基礎。
1 領域需求概述
1.1幾個定義

    領域:在軟件工程環(huán)境中,領域是指一組具有相似或相近軟件需求的應用系統(tǒng)所覆蓋的功能、問題、問題解決方案或知識區(qū)域。領域可分為垂直領域和水平領域,其中,垂直領域是指具有相似業(yè)務需求的一組相似應用系統(tǒng)所覆蓋的業(yè)務區(qū)域,如財務管理系統(tǒng)、ERP系統(tǒng)等;水平領域是指根據(jù)應用系統(tǒng)內(nèi)部模塊的功能性分類而得到的相似問題空間, 如數(shù)據(jù)庫系統(tǒng)、GUI動態(tài)庫等[1]。本文中的領域特指垂直領域。
    領域需求:對領域中若干典型項目的需求進行分析,考慮預期的需求變化、技術演化、限制條件等因素,確定恰當?shù)念I域范圍,識別領域的共性特征和變化特征,獲取一組具有足夠可復用性的需求,稱為領域需求。
    領域需求庫:將獲取的領域需求條目化和文檔化,形成領域需求庫,提供系統(tǒng)化需求復用。
1.2 領域需求特點
    領域需求是指領域內(nèi)所有項目的共有需求,而不是某個系統(tǒng)或項目的個別需求,具有穩(wěn)定、演化、廣泛和可復用等特點[2]:(1)穩(wěn)定。領域的共性需求是在一定時期內(nèi)穩(wěn)定不變的。(2)演化。隨著領域的不斷發(fā)展,會產(chǎn)生許多新的需求,這些需求經(jīng)過在多個項目中不斷地付諸實踐,有可能演化為共性需求。(3)廣泛。領域需求存在于類型廣泛的多個項目或系統(tǒng)中。(4)可復用。領域需求是領域內(nèi)所有項目共性需求的高度概括,具有較高的可復用性。
1.3 領域需求與項目需求
    領域需求與項目需求的關系可以概括為:領域需求來源于領域內(nèi)所有項目的需求,是在項目需求之上高度抽象的共性的需求;領域需求是構建項目需求的可復用構件,并隨著項目需求的發(fā)展而不斷演化;領域需求可為領域中的新項目提供復用,同時,領域中的項目需求也可以演化為領域需求;領域需求涵蓋了所有項目,某一個具體的項目需求無法代表領域需求。領域需求與項目需求的關系如圖1所示。

2 領域需求庫描述模式
2.1 領域需求庫輸入

    為了建立可復用領域需求,使用領域需求庫作為需求容器。通過對哪些“原料”進行加工才能形成裝入這個容器的產(chǎn)品呢?既然領域需求來源于領域內(nèi)所有項目的需求,那么領域需求庫的主要輸入也就是各個項目的需求分析活動產(chǎn)生的需求資源,主要包括項目需求文檔、項目需求庫表等。
2.2 領域需求庫文檔結(jié)構
    本節(jié)對領域需求庫這個容器中的產(chǎn)品進行定義,這些產(chǎn)品幫助定義可復用軟件需求。能夠提供系統(tǒng)化復用的領域需求庫需要囊括用戶需求和產(chǎn)品需求,這些需求通過一系列文檔來描述,而且文檔之間具有縱向的層次關系和橫向的關聯(lián)關系。對每類需求文檔需要橫向分析文檔的構成要素及要素間的相互關系,明確領域需求庫文檔應包含哪些信息和如何組織這些信息。參考項目需求文檔結(jié)構,結(jié)合領域需求庫實際需要,定義如下的領域需求庫文檔結(jié)構,如圖2所示。

    如圖2所示,領域需求庫文檔按縱向?qū)哟畏譃橛脩粜枨笪臋n和產(chǎn)品需求文檔兩類,這兩類文檔互相關聯(lián)以保持其一致性。用戶需求文檔由一張用戶需求庫表和若干個用戶故事組成,前者是用戶需求的條目化列表,類似需求概覽,用戶可以從中得到一些需求的基本信息,而每一條需求的詳細信息在對應的用戶故事中加以描述;產(chǎn)品需求文檔由一張產(chǎn)品需求庫表和若干個用例闡述組成,同樣地,前者包含一些產(chǎn)品需求的基本信息,而每一條需求的詳細信息在對應的用例闡述中加以描述。
2.3 領域需求庫建立過程
 首先建立用戶需求庫表,對相同領域的多個項目的條目化需求庫表進行分析、整合、提煉和抽象,對符合領域需求特點的需求按信息需求、活動需求、未來需求進行分類,建立起領域用戶需求庫表,如表1所示。

    從項目的需求庫表中已經(jīng)能夠得到除需求闡述之外的多數(shù)信息,但沒有需求闡述的領域需求幾乎是沒有多少復用價值的。需求闡述主要從項目的需求文檔中收集素材。為了克服和避免需求描述注意力過于集中在軟件設計和實現(xiàn)的問題上,而忽略了用戶真正關心的主題(即軟件要做什么,實現(xiàn)哪些功能的問題),引入分布式敏捷開發(fā)中所采用的“用戶故事”方法進行用戶需求闡述。
    關于用戶故事的編寫,沒有一定的模板可以遵循,每個用戶故事代表一個獨立的功能。一個好的用戶故事應該具備6種特性[3],這6種特性的單詞首字母縮寫為INVEST,含義分別如下:I—Independent,獨立:可以獨立實現(xiàn)。N—Negotiable,可協(xié)商:有利于與用戶協(xié)商。V—Valuable,有價值:必須對最終用戶有可感知到的價值,即必須實現(xiàn)的是端到端的業(yè)務。E—Estimable,大小可估計:能夠大致估計出一個范圍,足以進行實現(xiàn)的計劃安排。S-Sized Appropriate,大小合適:保證大小可評估。T—Testable,可驗證:可測試性永遠是好的需求所具備的特性之一。
    作為參考,可以學習Connextra公司,通過使用一個簡略模板將角色融入用戶故事,每個故事使用下面的格式編寫:
    我作為(角色),想要(功能),以此(商業(yè)價值)。
 例:作為一個管理員,可以批量創(chuàng)建用戶,以便快捷地導入已經(jīng)有的用戶數(shù)據(jù)。
    類似地,對多個項目的需求庫表進行分析、整合、提煉和抽象,對符合領域需求特點的需求,按功能需求、性能需求、接口需求對需求進行分類,并與領域用戶需求建立關聯(lián),建立起領域產(chǎn)品需求庫表,如表2所示。

    產(chǎn)品需求除了具有與用戶溝通的作用外,還是分析人員與設計和編碼人員之間的橋梁,為此,采用面向?qū)ο笙到y(tǒng)分析中的用例闡述來描述產(chǎn)品需求。用例闡述模板與示例[4]如圖3所示。


3 領域需求庫管理
    類似于項目需求,領域需求也在不斷演化與更新中,為保持領域需求庫的新鮮可用,需要對領域需求庫進行管理。對領域需求庫進行管理的目的就是管理領域需求,以保持領域用戶需求與產(chǎn)品需求、領域需求與項目需求的一致性。需求管理主要工作包括需求變更控制、需求雙向追蹤。
    既然領域需求是依托項目需求建立的,一旦項目需求發(fā)生了變化,需要及時更新領域需求庫,以反映需求的變遷和演化。需要注意的是,項目需求的變更并不一定必然引起領域需求變更,需要對項目需求變更進行仔細分析,判斷是否是領域共性需求,由此決定是否變更領域需求。
    為保持領域用戶需求和產(chǎn)品需求的一致,需在領域需求庫表中對這兩種需求進行雙向追蹤,以保證用戶需求與產(chǎn)品需求的良好對應和關聯(lián)。
    遵循本文的方法和步驟,已經(jīng)建立了領域需求庫,并對其進行了恰如其分的管理,實現(xiàn)了系統(tǒng)化的需求復用。以此為基礎,現(xiàn)在已可以步入領域工程殿堂了,從可復用軟件需求起步,進一步實現(xiàn)可復用軟件體系架構,可復用軟件設計,直到可復用軟件代碼。為了復用目的而設計的軟件將為解決軟件危機提供一條有效途徑,幫助企業(yè)和部門提高生產(chǎn)效率,節(jié)約成本,同時提供高質(zhì)量的滿足用戶需求的信息系統(tǒng)產(chǎn)品。
參考文獻
[1] 林正奎,楊德禮.領域分析方法研究綜述[J].計算機工程與設計,2006,27(4):593-596.
[2] 郭瑩,楊美紅,王筠,等. 面向服務的領域需求分析方法及模型研究[J]. 計算機應用,2009,29(12):131-134.
[3] COHN M. 用戶故事與敏捷方法[M].石永超,張博超,譯.北京:清華大學出版社,2013.
[4] 青潤. 軟件工程之全程建模實現(xiàn)[M]. 北京:電子工業(yè)出版社,2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。