|
REQUIREMENTS SPECIFICATION TEMPLATE As prerequisite to developing a software requirements specification, we need to understand the:
- Information domain including the objects of the system.
- Functions which represents the services that our application will perform and any
- Constraints such as: time, cost and technical limitations, and performance expectation (response time).
Software Requirements Specification is developed by continually interviewing the system's stakeholders. Unlike Design Specification Document which focuses on the how's of the system, software requirements specification focuses on what the system shall do. System implementation details are left for the design. To successfully produce high quality requirement specification document the analyst must focus on the three items noted above: information domain, the functions of the software including behavior, performance and interface requirements of the system.
Here is a sample template that is often used is system engineering disciplines. It is a modified version of the Pressman's Adaptable Process Model template for a software requirements document.
1.0 Introduction
1.1 Goals and objectives
1.2 Statement of scope
1.3 Software context
1.4 Major constraints
2.0 Usage scenario
2.1 User profiles
2.2 Use-cases
2.2.1 Use-Case Diagram
2.2.2 Use-Case Descriptions
2.3 Special usage considerations
2.4 Activity Diagrams
3.0 Data Model and Description
3.1 Data objects
3.2 Relationships
3.3 Complete data model
UML class diagram could be used or/and an Entity Relationship Diagram. Either will model the data objects and relationships or associations.
4.0 Functional Model and Description
static structure of the software.
4.1 Class diagrams
4.2 Software Interface Description
4.2.1 External machine interfaces
4.2.2 External system interfaces
4.2.3 Human interface
5.0 Behavioral Model and Description
5.1 Description for software behavior
5.1.1 Events
5.1.2 States
5.2 Statechart Diagram
6.0 Restrictions, Limitations, and Constraints
7.0 Validation Criteria
7.1 Classes of tests
7.2 Expected software response
7.3 Performance bounds |