User Requirements Specification
for
<Project>
Version x.x
Prepared by < Name and job title>
Contents
1. Introduction..........................................................................................................................3
1.1 Overview........................................................................................................................3
1.2 Project Objective............................................................................................................3
2. Product Description..............................................................................................................3
2.1 Operating Environment..................................................................................................3
2.2 Software Features: Overview.........................................................................................3
2.3 User Classes and Characteristics....................................................................................3
2.4 Software Platform..........................................................................................................3
2.5 Project Constraints.........................................................................................................4
2.6 User Documentation and Guides...................................................................................4
3. Software Features: Detail.....................................................................................................4
3.1.1 Software Feature 1: <Specific Name Here>.............................................................4
3.1.2 Description and Priority..........................................................................................4
3.1.3 User actions/ Systems Responses...........................................................................4
3.1.4 Functional Requirements........................................................................................4
3.2.1 Software Feature 2: <Specific Name Here>.............................................................5
3.2.2 Description and Priority..........................................................................................5
3.2.3 User actions/ Systems Responses...........................................................................5
3.2.4 Functional Requirements........................................................................................5
4. External Interface Requirements..........................................................................................5
4.1 User................................................................................................................................5
4.2 Hardware........................................................................................................................5
4.3 Software.........................................................................................................................5
4.4 Communication..............................................................................................................6
5 Non-functional Requirements...............................................................................................6
5.1 Performance Requirements...........................................................................................6
5.2 Safety Requirements......................................................................................................6
5.3 Security Requirements..............................................................................................6
5.4 Software Quality Attributes......................................................................................6
5.5 Further Requirements...............................................................................................7
6. Appendices...........................................................................................................................7
6.1 Glossary....................................................................................................................7
6.2 Appendix B: Workflows.............................................................................................7
6.3 Appendix C: Outstanding Issues................................................................................. 7
1. Introduction
<
1.1 Overview
<A short summary of your organisation and the top line about why you are
commissioning this project.>
1.2 Project Objective
<Briefly describe the project in non-technical terms. Answer these questions:
• What is this project trying to achieve?
• What problem is it trying to solve?
• How will it streamline or improve existing processes?>
2. Product Description
2.1 Operating Environment
<Describe how the product relates to other software or functions within the
organisation. A chart showing this operating environment can be useful: for instance,
the servers, databases, platforms, and admin and user portals that will interact with
the software.>
2.2 Software Features: Overview
<Briefly reveal the software’s features and the main function they will perform.
(Each point will be looked at in more detail further below.) You may decide to
include a chart showing the main requirements and how they relate to one
another.>
2.3 User Classes and Characteristics
<Detail who will be using the software and what they will require from it.
Depending on your project, you could use the following to help classify your users:
Team member/ consumer
Technical expertise
Security or privilege levels
Experience>
>
2.4 Software Platform
<Describe how the system will be accessed. For instance, web browser, mobile app
etc. Also, detail any other software or applications it will work with, or need to
communicate with.>
2.5 Project Constraints
<What factors may constrain developers. For instance, are there any mandatory
regulations or best practice they must follow during development? Areas to consider
include considerations around:
Security and privacy
Languages
Limitations of the hardware
Existing databases or systems to interface with
Business regulations>
2.6 User Documentation and Guides
<What manuals or online guides will be available alongside the software?>
3. Software Features: Detail
<We have ordered the following section according to features and the corresponding
function. Depending on your project, you could organise this section according to:
user class, object class, use case, functional hierarchy – or any combination of these.
Use whichever approach promotes clarity.>
3.1.1 Software Feature 1: <Specific Name Here>
3.1.2 Description and Priority
<Describe the feature and assign High, Medium, or Low priority. For example: A
critical feature of a supplier assessment tool is checking that the entity legally exists >
3.1.3 User actions/ Systems Responses
<List the user action and system responses that stimulate the behaviour defined for
this feature. For example, a user is asked to enter the name, address and company
number for the business in question before the assessment can begin.>
3.1.4 Functional Requirements
<List the functional requirements related to this feature. In other words, the
mandatory capabilities required for the user to execute the use case. For example,
the company name, number and address fields are validated for
completeness/correct formatting before sending an API request to the credit
checking service to establish if it is a valid legal entity.>
3.2.1 Software Feature 2: <Specific Name Here>
3.2.2 Description and Priority
3.2.3 User actions/ Systems Responses
3.2.4 Functional Requirements
<ETC>
4. External Interface Requirements
4.1 User
<Explain the essential features of interactions between the system and its users. This
may include:
illustrations of screen shots
graphical user interface (GUI) guidelines which already exist for the brand or
application
target screen sizes or layout constraints
common buttons and functions (such as ‘Help’) appearing on every screen
keyboard shortcuts, guidelines for displaying error messages
and so on>
Identify the software components requiring a user interface. (The design
specifications of the user interface could also be documented in detail in a separate
document referred to as the user interface specification.)>
4.2 Hardware
< Outline the logical and physical features of each interaction between the software
and the hardware components of the system. This may include the:
type of devices supported
manner in which data and control are exchanged between the software and
hardware
communication protocols>
4.3 Software
<Explain the relationships between the product and other software components,
including operating systems, databases, libraries, tools, and commercial products.
Include the name and version of each component.
Outline the data items or messages entering and leaving the system and clarify their
purpose.
Specify the services required and the manner of communication.
Describe the documents that provide a detailed explanation of the application
programming interface (API) protocols. Highlight the data that will be shared among
the software components.>
4.4 Communication
<Outline the communication-related requirements of the product, including
functions such as web browsing, e-mail, electronic forms, etc. Explain any relevant
message formatting details.
Mention any communication standards that will be used, such as HTTPS.
Provide information about communication security measures, data transfer speeds,
and synchronisation processes.>
5 Non-functional Requirements
5.1 Performance Requirements
<Are there any performance requirements that should inform developers’ decision-
making? For instance, issues around data output, reliability, and response times? List
them here.>
5.2 Safety Requirements
<Describe safeguards and actions that must/ mustn’t be undertaken with regards to
possible loss, damage or harm that could occur when using the software. Include or
refer to any external or internal policies and regulations.>
5.3 Security Requirements
<Detail security or privacy requirements, referring to internal or external policies as
relevant. For instance, what are the authentication requirements? Is 2FA or
CAPTCHA technology mandatory?>
5.4 Software Quality Attributes
<List any other quality characteristics. You might consider:
Availability
Interoperability (working with other systems easily)
Maintainability
Reliability
Usability
Try to be as specific as possible, using measurable and verifiable criteria.>
5.5 Further Requirements
<Detail any other requirements not covered so far. This could include requirements
around:
Legal requirements, disclaimers
Internationalisation (iterations for different languages or culture)
Accessibility for people with disabilities>
6. Appendices
6.1 Glossary
<Define any obscure technical terms, acronyms and abbreviations.>
6.2 Appendix B: Workflows
<Include flowcharts outlining what should happen when.>
6.3 Appendix C: Outstanding Issues
<List all technical problems that are yet to be fixed such as inconclusive decisions,
information still to come, difficulties around source control etc.>