General Software Guidelines
General Software Guideline #1Installation Instructions Documented
The product installation and setup/configuration procedures are clearly outlined in the product documentation.
General Software Guideline #2System Resource Requirements Documented
The product documentation clearly indicates required system resources, including:
- Minimum and maximum requirements on resources that might be with ulimit/setrlimit.
- Static and "wellknown" IP port numbers.
- (CPU) Architectures supported.
- Recommended (minimum) CPU speed.
- RAM usage estimate(s).
- Setup constraints (filesystems, libraries, etc.).
General Software Guideline #3Backup Method Documented
The product documentation outlines a method of product data backup, including configuration files and data files. Also, methods of backing up files that may be held open by the product are outlined.
General Software Guideline #4Unique Security Issues Documented
The product documents any unique security issues (e.g., firewall requirements, etc.).
General Software Guideline #5Error Messages Documented
Error messages generated by the product are descriptive and informative. Common error messages are detailed in the product documentation and include why the error occurred and possible actions to resolve the error.
General Software Guideline #6IANA Compliance
Default port assignments comply with IANA standards.
General Software Guideline #7Dynamic Resource Configuration and Management
Static and "wellknown" IP ports referenced by the product's components are configurable and manageable (by the user for userspace components, and by the root user for kernel module components). IANA port number assignments
General Software Guideline #8Data Synchronization
The product implements appropriate sharing semaphores as required to prevent data corruption in a multi processor, and multiuser, environment.
General Software Guideline #9Dead Code and Unused Data Structures
Product component binaries do not contain any dead code, or data structures (ie: variables).
NOTE: If dead code or data structures exist in the source code, and is needed for future code/data expansion, it should be properly marked (using #ifdef for example) to eliminate those code/data segments from the resulting binary.