非功能性需求

2022-03-04 10:38:07 字數 990 閱讀 2394

所謂非功能性需求,是指軟體產品為滿足使用者業務需求而必須具有且除功能需求以外的特性。軟體產品的非功能性需求包括系統的效能、可靠性、可維護性、可擴充性和對技術和對業務的適應性等。下面對其中的某些指標加以說明。在這裡可以看到非功能性需求涉及的範圍很廣,軟體產品本身不是孤立存在的,還涉及到諸多外在環境的影響。非功能性需求必須考慮軟體既要可用,又要易用。

對於非功能性需求描述的困難在於很難像功能性需求那樣,可以通過結構化和量化的詞語來描述清楚,在描述這類需求時候我們經常採用軟體效能要好,查詢要在多少時間內出結果,軟體健壯性要好等較模糊的描述詞語。這類描述詞語都是脫離了軟體的執行環境,人和相關的場景的描述,因此資訊很難體現到軟體架構設計和具體的實現中。我們在架構設計中關注的安全,系統開發框架,併發和效能,異常日誌等不是憑空產生出來的,而是**於我們對非功能性需求的分析。

系統的可靠性,可維護性和適應性是密不可分的。當系統出現故障和使用者出現錯誤的操作後是否支援恢復,當使用者在使用過程中遇到錯誤的時候是否可以立即定位問題,但業務場景和邏輯發生變化的時候系統是否支援,當網路不穩定或使用中異常中斷的情況下系統是否都有相應的容錯措施,這些都是需要在非功能性需求中考慮到的問題。

對於非功能性需求的描述,在描述過程中必須要強調到人,業務場景,環境等各方面的內容。強調的目的就是要說明非功能性需求不是無限度的,任何一項非功能性需求的實現往往會付出更大的研發人力成本和硬體網路成本。比如我們在描述乙個表單的模糊查詢功能的時候,如果簡單的描述為所有查詢都要在多少秒內完成,那麼這種需求將很難得到滿足,以下是一些可選的描述方式。

1.估計使用者數為1萬人,每天登入使用者數為3000左右,網路的頻寬為100m頻寬。

2.在非高峰時間根據編號和名稱特定條件進行搜尋,可以在3秒內得到搜尋結果。

3.當通過網際網路接入系統的時候,期望在編號和名稱搜尋時最長查詢時間<15秒。

有了這些場景和資料後,我們在進行架構設計的時候就可以有針對性的選擇我們的開發框架和模式,資料庫,軟硬體環境配置已經複雜功能的具體實現方式等。同時這些需求還可以更好的指導我們對通過效能測試等工具對這些非功能性需求進行驗證。

功能性需求和非功能性需求

需求定義 需求 requirement 就是系統 更廣義的說法是專案 必須提供的能力和必須遵從的條件。需求分類 1 在一般使用中,需求按照功能性 行為的 和非功能性 其它所有的行為 來分類。功能性需求是說有具體的完成內容的需求。非功能性需求是指軟體產品為滿足使用者業務需求而必須具有且除功能需求以外的...

軟體 非功能性需求

軟體需求分為功能需求和非功能性需求,常常會因為注重功能需求而忽略了非功能性需求,以下是對常見幾類非功能性需求的總結。非功能性需求 1 定義 軟體產品為滿足使用者業務需求而必須具有且除功能需求以外的特性。2 影響 影響著產品是否能夠持續穩定並高效的提供服務。3 常見類別 效能需求 響應時間 吞吐量 資...

軟體設計 質量屬性 非功能性需求

當你在收集需求的時候 人們會很樂意給你乙個願望清單,寫滿了他們想要軟體系統所完成的事,也有完善的方法以使用者故事 用例 傳統的需求規格書 驗收標準等形式來捕捉這些功能需求 但是那些討厭的非功能性需求呢?非功能性需求通常被看做是能力,主要跟服務質量有關,也就是乙個軟體的質量屬性,下面大致介紹下 常見的...