Software Requirements

We should try to understand what sort of requirements may arise in the requirement elicitation phase and what kinds of requirements are expected from the software system.

Broadly software requirements should be categorized in two categories:

Functional Requirements

Requirements, which are related to functional aspect of software fall into this category.

They define functions and functionality within and from the software system.

EXAMPLES -

      Search option given to user to search from various invoices.

      User should be able to mail any report to management.

      Users can be divided into groups and groups can be given separate rights.

      Should comply business rules and administrative functions.

      Software is developed keeping downward compatibility intact.

Non-Functional Requirements

Requirements, which are not related to functional aspect of software, fall into this category. They are implicit or expected characteristics of software, which users make assumption of.

Non-functional requirements include -

      Security

      Logging

      Storage

      Configuration

      Performance

      Cost

      Interoperability

      Flexibility

      Disaster recovery

      Accessibility

Requirements are categorized logically as

      Must Have : Software cannot be said operational without them.

      Should have : Enhancing the functionality of software.

      Could have : Software can still properly function with these requirements.

      Wish list : These requirements do not map to any objectives of software.

While developing software, ‘Must have’ must be implemented, ‘Should have’ is a matter of debate with stakeholders and negation, whereas ‘could have’ and ‘wish list’ can be kept for software updates.