天天看點

學習軟體設計的非功能性需求

    非功能需求是産品必須具備的品質或者它将事情做到了多好,它們可以讓産品有吸引力、易于使用、快速、可靠或者安全。通常并不改變産品的功能,功能性需求是讓産品工作的需求,非功能需求是為工作賦予特征的需求。是以說,功能性需求和非功能性需求是相輔相成密不可分的。非功能性需求經常被忽略,因為它們不易被發現,發現後不易表達、實作以及測試。其實我們很多時候都将非功能需求不自覺的融入到了功能需求中。軟體産品的非功能性需求包括系統的性能、可靠性、相容性、可維護性、配置、界面、安全性、可擴充性和對技術和對業務的适應性等。

1、觀感需求(界面需求):主要描述了對産品外觀的期望、情緒和風格。這些需求規定了外觀想要達到的目标,它和詳細的界面設計還是有差別的,展現的是客戶的感覺。作為web服務的一種的網銀服務,應該相當重視觀感需求,比如網站應該看起來很專業很有權威性、顯的很高貴、很精美等。界面需求還包括對控件進行規範和對控件的使用範圍進行一個規定等方面的内容。可以考慮借用一個原型來描述。

2、易用性需求:易用性會使産品提高符合使用者習慣的能力以及其對使用的期望。它會對使用者使用産品的生産效率、錯誤率以及使用者對新産品的接收程度産生很大的影響。

3、執行需求:執行需求是指産品可以在給定的時間或者特定的精确度來執行某些任務,或者在一段時間内的極端狀态值。在考慮執行需求時,可以從完成任務的速度、結果的精确度、容量、允許值的範圍、機關時間内完成的任務數、資源的使用效率、兩次故障間的平均屋故障時間、連續不停機時間等方面入手。它還應該包括對風險的控制内容。

4、操作和環境需求:主要描述産品使用的環境。分為軟體環境和硬體環境方面内容。還應包括使用産品時必須要提供的合作軟體的内容。

5、可維護性需求:便于後續軟體維護、更新等。

6、安全性需求:安全性指産品消除潛在風險的能力和對風險的承受能力。包含、保密性、可靠性和完整性三個子特性。保密性指的是資料不能被授權使用者以外的任何人通路的能力。可靠性指的是授權使用者可以不受阻止的通路資料、與其它軟體的相容的能力和産品的強壯度。完整性指的是安預期目标完成任務的能力。

7、文化和政策需求:這是一類特殊的需求,由于人的習慣、宗教、語言、禁忌或偏見,可能會導緻産品不被接收。

8、滿足法律需求:不做違反法規的事。

    《系統分析師之路》有如下介紹:

    軟體産品的非功能性需求包括系統的性能、可靠性、可維護性、可擴充性和對技術和對業務的适應性等。下面對其中的某些名額加以說明。

1、系統的完整性

  指為完成業務需求和系統正常運作本身要求而必須具有的功能,這些功能往往是使用者不能提出的。典型的功能有:聯機幫助、資料管理、使用者管理、軟體釋出管理、線上更新,等等。

2、系統的可擴充性與可維護性

  指系統對技術和業務需求變化的支援能力。當技術變化或業務變化時,不可避免将帶來系統的改變―不僅要進行設計實作的修改,甚至要進行産品定義的修改。好的軟體設計應在系統構架上考慮能以盡量少的代價适應這種變化。常用的技術方法有面向對象的分析與設計以及設計模式。

3、技術适應性與應用适應性

  系統的适應性與系統的可擴充性和可維護性的概念相似,也表現産品的一種應變能力,但适應性強調的是在不進行系統設計的修改的前提下對技術與應用需求的适應能力。軟體産品的适應性通常表現為産品的可配置能力。好的産品設計可能要考慮到運作條件的變化,包括技術條件(網絡條件、硬體條件、軟體系統平台條件等)的變化和應用方式的變化,如在具體應用中界面的變化、功能的剪裁、不同使用者的職責配置設定群組合等。

  對以上重要的非功能性需求進行逐一分析後,就可以開始進行産品功能設計了。實際上,非功能性需求定義将反映到系統的功能設計中,表現為系統的架構。下一節中将會描述怎樣實作系統的适應性。

繼續閱讀