Typical Specifications Outline
- Overview. What do these specifications cover?
- Related documents. ANSI/IEEE specs, other product documents.
- Description. Brief description of software and what it does. For example:
- Operator interface
- Interfaces to other software modules and other systems
- Any proprietary protocols should be spelled out in detail
- Hardware that is controlled
- Algorithms for controlling hardware
- Any assumptions about how the hardware works
- A list of interrupts and tasks
- Priority level
- Usage
- Level vs edge-sensitive, etc.
- Memory organization and usage
- Software tools used for development
- Special requirements. e.g. compute-intensive calculations such as floating-point on integer processor
- Appendix. Any calculations that go into the software design, such as:
- Flow charts of complicated algorithms
- Maximum interrupt latency for critical interrupts
- Worst-case processing time (is the CPU fst enough?)