RMP Resource - Program Specification
A program specification describes the result that a program is expected to product - its primary purpose is to be understood not executed. Specifications provide the foundation for programming
methodology. A specification is a technical contract between a programmer and client and is intended to provide them with a mutual understanding of a program.
There are three fundamentally aspects to any project development: defining the program's specifications, designing and writing the program itself, and testing it. A program specification is the definition of what a computer program is expected to do.
Program Specification can be informal or formal. Informal specification where it can be considered as a blueprint or user manual from a developer point of view. And formal specification where it has a definite meaning defined in mathematical or programmatic terms. Specifications are most important for external interfaces that must remain stable.
Each program specification must include following:
- Input Descriptions:
All input should include Name, alternate ID, program label, description, defined layout and examples, input transaction
specifications, including default values and editing rules for data to be collected, messages, relationship of input to output.
- Output Description:
- Data structure descriptions
- program description
Why Program specification? The answer is- reduce the development effort, provide a baseline for validation and verification, it makes
easier to transfer the project to new users or new machines.
The basic issues in Program specifications are functionality (what is the project supposed to do?), External
interfaces, performance (Speed, availability, response time, recovery time), attributes (portability, correctness, maintainability and security) and design constraints imposed on an implementation.
Program Specification should be correct, unambiguous, complete, consistent, verifiable, modifiable and traceable.