- Software Project Lifecycle
- Best Project Development Method
- Software Project Documentation Requirements
- Software Project Documentation Standards
- Project Planning Phase
- Functional Requirements Specification
- Project Charter
- Project Plan
- Project Analysis Phase
- Project Design Phase
- Project Development Phase
- Programming Standards
- Project Testing Phase
- Software Test Plan
- Project Implementation Phase
- Software Installation Manual
- Software Maintenance Plan
- Configuration Management Plan
- Users Guide
- Project Maintenance Phase
Functional Requirements Specification
The functional requirements specification is begun during the project planning phase and finished during the project analysis phase of the systems development life cycle (SDLC).
The Functional Requirements Specification is based on the project purpose, expected benefits, project goals, and requirements. It describes what the software or system(s) created by the project is expected to functionally do. It should describe how the customer will use the system and the inputs to the system expected and the expected outputs. Use cases for describing this would be a very helpful tool.
The Functional Requirements Specification should detail what the program is expected to do covering:
Security and privacy requirements
Internal and external interface requirements to other systems and between code modules.
Software quality requirements
Computer communications requirements
Computer resource requirements
What each business function is and how it is used.
User interface requirements including information being entered or received by the user.
Typical Functional Requirements Specification Outline
Purpose - Describes why the project is being done and provides a brief overview of what the end product is expected to do. Describe the business problem that is being solved and the function that is being added or improved to solve the problem
Setting - Describe the current operation, the systems supporting the current operation, and expected changes or improvements. Describe and document current and proposed interfaces to other systems. Describes interfaces to all other systems.
Impacts of the Change - Describe how the changes will impact the organization. Describe how productivity will increase or some other desired change will occur such as an increase in sales. Describe any negative impacts such as cost of system maintenance.
Personnel - Describes the people involved with the system and those affected by it.
Software and system developers
Technical staff involved with associated systems and support.
Managers at high levels.
Operations - Describes how the current operations and systems are supported, and how the systems and operations will be supported after the changes.
Describe interfaces to other systems including communication interfaces such as network interfaces.
Describe required hardware and interfaces to it such as keyboards, mouse, joysticks, speakers, monitors.
Describe user interfaces to the systems including input and output screens and the function they provide to the user.
System requirements regarding:
Functions - Provide a summary of the main application functions. During system design, the functions should be listed in detail and the test plan should be written so those functions and security requirements can be tested during the testing phase of the project.
Security requirements including:
Account Management - creation, modification, and removal of accounts. Secure password reset method. Secure storage of account information.
Required user roles
Password requirements - Complexity rules, account lockout requirements
Security awareness and training
System and security logging and access control to logs
Continuity Planning and disaster recovery
Data confidentiality needs during transmission and storage
System backup requirements
Security and reliability of backups
Data retention requirements
Caching of sensitive information in client computers or web browsers.