阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈

想像一下,您的客戶要求您建立一個 Web 應用程式,以滿足其客戶的所有需求。這就是你的客戶會告訴你的全部內容,你能建造它嗎?很明顯,您錯過了更多訊息,並且存在要求,但您知道什麼是要求嗎?如果我們沒有明確定義它們,會產生什麼後果?存在哪些類型的需求?本文將嘗試以簡單的方式回答其中一些問題。

概括

- [User requirements](#user-requirements)
- [System requirements](#system-requirements) 
- [Functional requirements](#functional-requirements) 
- [Non-functional requirements](#non-functional-requirements)

什麼是要求?

首先,我們需要了解軟體開發環境中的需求是什麼。

Shari Pleeger 給我們下了一個很好的定義:

系統特徵或系統為實現其目標而能夠完成的事情的描述

換句話說,要求是辨識產品或流程操作、功能或設計約束或特徵的聲明,該聲明是明確的測試的、可測量的,並且是接受產品或流程所必需的(由消費者或內部品質保證指南) 。

每個需求都是基於現實中存在的問題而建立的,而軟體只是解決它的一種方法。

為什麼它們很重要以及需求定義不明確的後果

現在我們知道什麼是要求,我們必須問:

“為什麼對於從事 IT 工作的人來說了解它如此重要?”

我會給你一些原因。根據要求,我們能夠:

  • 為專案規劃提供依據

  • 對於研究變更請求至關重要

  • 允許從開發的最早階段進行風險管理

  • 它們是驗收測試的基礎

  • 合約管理

圖片1

如果我們的需求定義不明確會發生什麼事?

第一個也是合乎邏輯的後果是專案交付的延遲。當我們開始一個專案或衝刺時,沒有對要開發的內容有所有明確的要求,存在錯誤的可能性是巨大的!因此,開發人員和 QA 團隊需要承擔更多工作,從而降低了他們的生活品質。

如果出現在Production中,就會有許多不滿意的用戶,讓產品的信心降低,甚至導致系統報廢。另一個後果是維護系統的成本。

我們怎樣才能有一個好的需求

需求的編寫方式因團隊而異,但它們都應該具有以下三個特徵:

  • 明確

  • 可測試

  • 可測量的

要求等級

用戶要求

使用者需求定義了我們的軟體需要做什麼。它可以透過使用者的需求、期望、限制和介面來描述使用者面臨的問題。

此類需求是為客戶編寫的,我們使用自然語言加圖表。我們可以使用待辦事項清單應用程式的使用者需求範例:

使用者應該能夠在清單中插入新任務

系統需求

系統需求是定義系統有效運作所需的硬體、軟體和網路元件的功能和約束的規格。

這些要求對於設計、實施和維護系統至關重要。他們負責描述必須做什麼,而不是如何做。

使用我們已經使用過的相同要求,我們可以詳細了解它:

|用戶需求|系統需求 |

| -------------------------------------------------- ------ | -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------------ |

|使用者應該能夠在清單中插入新任務 | - 使用者應該能夠點擊插入按鈕以新增任務
- 當使用者點擊按鈕時,任務新增應出現在清單中
插入
- 只有登入使用者才能存取任務清單|

要求類型

功能要求

功能需求描述了一個系統應該執行的操作。它們描述了系統應該提供什麼、系統應該如何對特定輸入做出反應以及系統在特定情況下應該如何表現。他們還可以描述系統不應該做什麼。

功能需求可以描述使用者或系統需求。

非功能性需求

非功能性需求描述系統或環境應提供的服務或功能。他們負責定義系統的架構。我們對非功能性需求有不同的類別,它們是:

  1. 表現:
- _Response Time:_ Specifies the maximum acceptable time for the system to respond to user input.
- _Throughput:_ Defines the number of transactions or operations the system can handle in a given time.
  1. 可用性:
- _User Interface (UI) and User Experience (UX):_ Specifies criteria related to the design, ease of use, and overall user experience.
- _Accessibility:_ Ensures that the system is usable by individuals with disabilities.
  1. 可靠性:
- _Availability:_ Specifies the percentage of time the system should be operational.
- _Fault Tolerance:_ Defines the system's ability to continue functioning in the presence of faults or errors.
  1. 安全:
- _Authentication:_ Describes how users are identified and verified.
- _Authorization:_ Specifies the level of access granted to different users or roles.
- _Data Encryption:_ Requires the use of encryption to protect sensitive data.
  1. 可擴充性:
- _Horizontal Scalability:_ Describes how well the system can handle an increase in load by adding more hardware.
- _Vertical Scalability:_ Describes how well the system can handle an increase in load by increasing the capacity of existing hardware.
  1. 相容性:
- _Hardware Compatibility:_ Ensures the system can run on specified hardware configurations.
- _Software Compatibility:_ Ensures the system can work with specified software components.
  1. 可維護性:
- _Modifiability:_ Describes the ease with which the system can be modified or updated.
- _Testability:_ Specifies the ease with which the system can be tested to ensure its correctness.
  1. 可移植性:
- _Platform Independence:_ Describes the ability of the system to run on different operating systems.
- _Data Portability:_ Ensures that data can be easily transferred between different systems.
  1. 文件:
- _User Documentation:_ Specifies the requirements for user manuals and guides.
- _Technical Documentation:_ Describes the requirements for system architecture, API documentation, etc.
  1. 監理與合規:
- _Legal Requirements:_ Ensures that the system complies with relevant laws and regulations.
- _Industry Standards:_ Specifies adherence to industry-specific standards.

結論

正如我們所看到的,軟體需求對我們來說非常重要,並且有很多不同類型的需求,但最重要的是確保在開始開發之前,我們已經很好地定義了它們。

我希望這些內容對您有用。

如果您有任何疑問,請隨時與我聯繫!

親吻💅🏼


原文出處:https://dev.to/m4rri4nne/what-you-need-to-know-about-software-requirements-2hc0


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈