6.5. Specifications#

Once you’ve defined the requirements, you should have a sense of what the software must achieve and how it must behave. Determining Specifications is where you refine those requirements into detailed, technically measurable statements. These specifications guide design decisions, inform development tasks.

Specifications build on your requirements and make them concrete technical instructions.

6.5.1. Functional Requirements#

Example 1#

Requirement

“The system must allow users to register an account”

Specification

“A user registration form will capture username, email, and password. Passwords must be hashed using SHA256. The system will reject usernames longer than 20 characters or containing special characters.”

Example 2#

Requirement

“Users can search movie reviews by title.”

Specification

“A search input field will accept up to 100 characters. The system will filter reviews by partial title match, returning results sorted by most recent date first.”

6.5.2. Non-Functional Requirements#

Example 1#

Requirement

“Passwords must be stored securely and users’ personal data must be protected.”

Specification

“All passwords will be hashed with PBKDF2 or bcrypt, and salted uniquely for each user.”

Example 2#

Requirement

“The interface must be easy to navigate for non-technical users.”

Specification

“Menu items for key actions (Login, Register, Post) must be visible in a top navigation bar and accessible within two clicks.”