Functional Requirements Document
<San# & Short Description>
for
<Project/Client>
Version <#>, <draft#/approved>
Created by <author>
<date created>
Cayenta Municipal & Utility Solutions
Table Of Contents
1.2. Design and Implementation Constraints 3
1.4. Assumptions and Dependencies 3
2. External Interface Requirements 3
2.4. Communications Interfaces 4
3.2. <System Feature 2 (and so on)> 5
4.1. Limitations and Exclusions 5
4.2. Scope of Subsequent Releases 5
5. Other Non-Functional Requirements 6
5.1. Performance Requirements 6
5.3. Software Quality Attributes 6
Appendix C: To Be Determined List 7
1. Development Requirements
<The development requirements provide the detailed information from which Developers will design and code software, from which QA will develop test cases, and from which Documentation will identify their deliverables. Specifically, Development Requirements include system requirements, functional requirements, quality attributes, other non-functional requirements, and constraints>
1.1. Product Perspective
<Relate the functionality of this modification to the functionality of the larger software system (product). and identify interfaces between the two. A simple diagram that shows the major components of the overall system, subsystem interconnections, and external interfaces can be helpful>
1.2. Design and Implementation Constraints
<Describe any items or issues that will limit the options available to the developers. These might include: corporate or regulatory policies; hardware limitations (timing requirements, memory requirements); interfaces to other applications; specific technologies, tools, and databases to be used; parallel operations; language requirements; communications protocols; security considerations; design conventions or programming standards (for example, if the customer’s organization will be responsible for maintaining the delivered software). >
1.3. User Documentation
* None
* On-line Help
* User Guides
* System Administration Guides
* Application Consultant Materials
* Training Materials
* Other (list):
<Check the required user documentation types by clicking “Shift + R”. Check all that apply>
1.4. Assumptions and Dependencies
2. External Interface Requirements
2.1. User Interfaces
<Define the software components for which a user interface is needed: describe the areas of the current interface that are likely to be impacted by adding new functionality for the modification or new User Interfaces forms that will likely be required. Details of the user interface design should be documented in a separate user interface specification as part of the design phase, if required. Sample screens can be provided here if appropriate or useful for requirements definition purposes.>
2.2. Hardware Interfaces
<Describe the logical and physical characteristics of each interface between the software product and the hardware components of the system. This may include the supported device types, the nature of the data and control interactions between the software and the hardware, and communication protocols to be used.>
2.3. Software Interfaces
<Describe the connections between this product and other specific software components (name and version), including databases, operating systems, tools, libraries, and integrated commercial components. Identify the data items or messages coming into the system and going out and describe the purpose of each. Describe the services needed and the nature of communications. Refer to documents that describe detailed application programming interface protocols. Identify data that will be shared across software components. If the data sharing mechanism must be implemented in a specific way (for example, use of a global data area in a multitasking operating system), specify this as an implementation constraint.>
2.4. Communications Interfaces
< Describe the requirements associated with any communications functions required by this product, including e-mail, web browser, network server communications protocols, electronic forms, and so on. Define any pertinent message formatting. Identify any communication standards that will be used, such as FTP or HTTP. Specify any communication security or encryption issues, data transfer rates, and synchronization mechanisms.>
3. System Features
<This template illustrates organizing the functional requirements for the modification. You may prefer to organize this section by use case, mode of operation, user class, object class, functional hierarchy, or combinations of these, whatever makes the most logical sense for your product.>
3.1. <System Feature 1>
<Don’t really say “System Feature 1.” State the feature name in just a few words.>
3.1.1 Description and Priority
<Provide a short description of the feature and indicate whether it is of High, Medium, or Low priority. You could also include specific priority component ratings, such as benefit, penalty, cost, and risk (each rated on a relative scale from a low of 1 to a high of 9).>
3.1.2 Stimulus/Response Sequences
<List the sequences of user actions and system responses that stimulate the behavior defined for this feature. These will correspond to the dialog elements associated with use cases.>
3.1.3 Functional Requirements
<Itemize the detailed functional requirements associated with this feature. These are the software capabilities that must be present in order for the user to carry out the services provided by the feature, or to execute the use case. Include how the product should respond to anticipated error conditions or invalid inputs. Requirements should be concise, complete, unambiguous, verifiable, and necessary. Use “TBD” as a placeholder to indicate when necessary information is not yet available.>
<Each requirement should be uniquely identified with a sequence number or a meaningful tag of some kind.>
<REQ-1:>
<REQ-2:>
3.2. <System Feature 2 (and so on)>
4. Scope and Limitations
4.1. Limitations and Exclusions
<Identify any product features or characteristics that the client might anticipate based upon the Business or User Requirements, but which are not planned to be included in the new modification. Provide a brief explanation of why the anticipated functionality will not be delivered (out of scope).>
4.2. Scope of Subsequent Releases
<If related or associated functionality is required in a subsequent release (e.g. post go-live modifications required to build on functionality delivered for a project go-live indicate which major features are required for later release(s). >
5. Other Non-Functional Requirements
5.1. Performance Requirements
<If there are performance requirements for the product under various circumstances, state them here and explain their rationale, to help the developers understand the intent and make suitable design choices. Specify the timing relationships for real time systems. Make such requirements as specific as possible. You may need to state performance requirements for individual functional requirements or features. >
5.2. Security Requirements
<Specify any requirements regarding security or privacy issues surrounding use of the product or protection of the data used or created by the product. Define any user identity authentication requirements. Refer to any external policies or regulations containing security issues that affect the product. Define any security or privacy certifications that must be satisfied. >
5.3. Software Quality Attributes
<Specify any additional quality characteristics for the product that will be important to either the customers or the developers. Some to consider are: adaptability, availability, correctness, flexibility, interoperability, maintainability, portability, reliability, reusability, robustness, testability, and usability. Write these to be specific, quantitative, and verifiable when possible. At the least, clarify the relative preferences for various attributes, such as ease of use over ease of learning. >
5.4. Business Rules
<List any operating principles about the product, such as which individuals or roles can perform which functions under specific circumstances. These are not functional requirements in themselves, but they may imply certain functional requirements to enforce the rules. >
6. Other Requirements
<Define any other requirements not covered elsewhere in the FRD. This might include database requirements, internationalization requirements, legal requirements, reuse objectives for the project, and so on. Add any new sections that are pertinent to the project. >
Appendix A: Glossary
<Define all the terms necessary to properly interpret the FRD, including acronyms and abbreviations. >
Appendix B: Analysis Models
<Optionally, include any pertinent analysis models, such as data flow diagrams, class diagrams, state-transition diagrams, or entity-relationship diagrams. >
Appendix C: To Be Determined List
<Collect a numbered list of the TBD (to be determined) references that remain in the FRD so they can be tracked to closure. >
Revision History
Name | Date | Reason for Changes | Ver./Rev. |
Document Approval
Accepted on behalf of:
<Client> | Cayenta Canada Inc. |
Name:__________________________ | Name:__________________________ |
Title:___________________________ | Title:___________________________ |
Date:___________________________ | Date:___________________________ |