Design Requirements

Table of Contents

Introduction

Motivation

Functional Design Requirements

Non-Functional Design Requirements

Extracting Action Items

References

Additional Resources

Introduction

Design requirements are expressions which outline “what” the desired product should achieve and “how” it should achieve them, corresponding to the usefulness and usability of designs.

The usefulness of a product is addressed by the question “Are we designing the right thing?” [1], which considers whether this product is needed by users.

The usability of a product is addressed by the question “Are we designing the thing right?” [1], which considers whether users are able to use the product.

To achieve this goal, design requirements include specifications related to user interfaces, navigation, visual design, and additional elements which contribute to the satisfaction of end users and overall usability. This makes design requirements an integral part of the user experience.

Motivation

When working with partner clients, scoping the problem that clients want to address and understanding the requirements that their ideal solution entails is very important. Establishing design requirements is highly valuable for CSC301 students, who need to create minimum-viable-products (MVPs) from scratch.

1. Client Needs

After synthesizing user stories, extracting the functional and non-functional design requirements for any design (whether it is a web-application or mobile application) will allow students to gauge the specific features that they will be working on in order to create an MVP that accurately addresses client needs.

Clients taking part in the process of extracting design requirements with developers can be beneficial for both parties, due to several reasons:

2. Action Items

The design requirements make sure that regardless of the platform the solution is being presented in, the main problem the clients present is solved and the user needs are met. They can also be dissected to identify how the requirements match to various front-end, back-end, or database tasks, allowing for students to scope actionable task items.

3. Communication

Accurately defining and documenting requirements makes sure that the communication between team members and clients are not lost and can be referred to later in the project to see if they have been met, especially after usability studies. Benefits include;

Functional Design Requirements

Functional design requirements specify the goals of the desired product. They focus on the “usefulness” of the product.

Examples include;

Relation to User Stories

Functional requirements are not the same as user stories. In fact, user stories can be used to derive design requirements while centering user needs. An example of this is as follows:

“User story: As an existing user, I want to be able to log into my account.

Functional requirements:

Non-Functional Design Requirements

Non-functional design requirements specify the methods used to achieve the goals of the desired product. They focus on the “usability” of the product and provide constraints on the system and its development.

Examples include;

As seen in the examples, non-functional design requirements impose constraints on how the functional requirements are implemented in terms of performance, security, reliability, scalability, and portability.

Extracting Action Items

Design requirements make it efficient for developers to extract specific front-end, database, and back-end tasks, which is useful for CSC301 students who might have sub-teams dedicated to these components. For example, from the functional requirement “The system must enable users to verify their accounts using their phone number” and the related non-functional requirement “The system should ensure security and privacy in the account verification process, adhering to industry standards for data protection and encryption”, developers infer that they need to complete the following tasks:

1. Front-End Tasks

2. Back-End Tasks

3. Database Tasks

Conclusion

Design requirements are helpful not only at the beginning of the design process, but also throughout the entire development cycle. When determining which features to implement or prioritize at each reiteration, assessing these decisions against the design requirements ensures centering client needs and main functionalities the desired system is trying to achieve. During low-fidelity prototyping, high-fidelity prototyping (such as MVPs), development, and following usability studies, the team can assess whether the design requirements were met and what changes can be made at each subsequent step to better address them.

References

[1] Fanny Chevalier. 2023. Lecture 05.4: Synthesizing Actionable Insights - Design Requirements. CSC318. (November 2023).

[2] Nuclino. A Guide to Functional Requirements (with Examples). Retrieved November 27, 2023 from https://www.nuclino.com/articles/functional-requirements

Additional Resources

Functional Requirements Examples and Templates

Functional vs. Nonfunctional Requirements

What are Non-Functional Requirements?