關鍵字: uml 讀書筆記
定義:需求
需求(Requirement)就是系統(更廣義的說法是項目)必須提供的能力和必須遵從的條件[JBR99]
UP(Unified Process)提出了一系列的最佳實踐,其中之一就是需求管理 (requirement management)。需求管理不主張採用瀑布的觀點,即在編程之前項目的第一個階段就試圖完全定義和固化需求。在變更不可避免,涉衆醫院不明朗的情況下,UP更推崇用"一種系統的方法來尋找、記錄、組織和跟蹤系統不斷變更 的需求"[RUP](Rational Unified Process)
簡單言之,就是通過迭代巧妙的進行需求分析,而非草率和隨意爲之。
需求分析的最大挑戰是尋找、溝通和記住(通常是指記錄)什麼是真正需要的,並能夠清楚地講解給客戶和開發團隊的成員。
尋求需求可以採用的方法
- 與客戶一同編寫用例
- 開發者和客戶共同參加需求研討會
- 請客戶代理參加焦點小組
- 向客戶演示每次迭代的成果以求得反饋
需求的類型和種類
在UP中,需求按照"FURPS+"模型進行分類[Grady92]
- 功能性(Functional):特性、功能、安全性。
- 可用性(Usability): 人性化因素、幫助、文檔。
- 可靠性(Reliability):故障頻率、可恢復性、可預測性。
- 性能(Performance):響應時間、吞吐量、準確性、有效性、資源利用率。
- 可支持性(Supportability):適應性、可維護性、國際化、可配置性。
FURPS+中的”+“是指一些輔助性的和次要的因素,比如:
- 實現(Implementation):資源限制、語言和工具、硬件等。
- 接口(Interface):強加於外部系統接口之上的約束。
- 操作(Operation):對其操作設置的系統管理。
- 包裝(Packaging):例如物理的包裝盒。
- 授權(Legal):許可證或者其他方式。
The FURPS+ System for Classifying Requirements
One such classification system was devised by Robert Grady at Hewlett-Packard. 2 It goes by the acronym FURPS+ which represents:
* Functionality
* Usability
* Reliability
* Performance
* Supportability
The "+" in FURPS+ also helps us to remember concerns such as:
* Design requirements
* Implementation requirements
* Interface requirements
* Physical requirements
UP製品如何組織需求
UP提供了一些需求製品。同所有的UP製品一樣,它們都是可選的。其中關鍵的製品包括:
- 用例模型 :一組使用系統的典型場景。主要用於功能(行爲的)需求。
- 補充性規格說明 :基本上是用例之外的所有內容。主要用於所有非功能需求,例如性能或許可發佈。該製品也用來記錄沒有(或者不能表示)爲用例的功能特性,例如報表生成。
- 詞彙表 :詞彙表以最簡單的形式定義重要的術語。同時也包含了數據字典 (data directionary)的概念,其中記錄了關於數據的需求,流入有效性規則,容許值等。詞彙表可以詳述任何元素:對象屬性、操作調用的參數、報表佈局等。
- 設想 :概括了高階需求,這些需求在用例模型和補充性規格說明中進行細化。設想也概括了項目的業務案例。設想是簡短的執行概要文檔,用以快速瞭解項目的主要思想。
- 業務規則 :業務規則(也稱爲領域規則)通常描述了凌駕於某以軟件項目的需求或政策,這些規則是領域或業務所要求的,並且許多應用應該遵從這些規則。領域規則的細節 可以記錄在補充性規格說明中,但是因爲這些規則通常更爲持久,並且不止對一個軟件項目適用,所以應將其放入集中的業務規則製品(供公司的所有分析員共 享),以便在這方面做出的分析工作能夠被更好的重用。
總結:UP的推崇迭代和進化式需求,強調了需求的"不斷變更 "的重要特性。使用一種系統的方法來尋找、記錄、組織和跟蹤系統不斷變更的需求[RUP]--需求管理(manage requirement)。