UMDQualityCriteria Generic
Documentation
Services in UMD must include a comprehensive documentation written in a uniform and clear style. All Quality Criteria described below may be met by a single document that contains all the requested sections.
Functional description
Description
Document with a functional description of the component
Verification
Existence and quality of the document
User documentation
Description
User guide describing the functionality of the software and how to use it
Verification
Check availability of user guide. Check completeness of user guide.
Man pages
Description
Commands must include documentation on its usage and options. It may not be applicable to services without user interface commands
Verification
Availability of man pages.
API Documentation
Description
If service has an API, include documentation of all its functions.
Verification
Availability of API documentation.
Administrator Documentation
Descrpiton
Administrator guide describing installation, configuration and operation of the system
Verification
Availability and completeness of the guide.
Service Reference Card
Description
For each of the services that the component runs, include the following documentation:
Service | ServiceName |
---|---|
Description | Description of the service |
Init scripts | List of init scripts for the service, expected run levels |
Daemons | List of daemons needed for the service |
Configuration | List of configuration files used by the service |
Logs | List of log files used by the service |
Open ports | List of ports the service uses |
Cron | List of crons used by the service |
Any other relevant information | Include here any other relevant information about the service |
Source Code Quality
The source code of each component of the UMD middleware should follow a coherent and clear programming style that helps in the readability of the code and eases maintenance, testing, debugging, fixing, modification and portability of the software. Open source components must publicly offer their source code and the license with the binaries.
License
Description
All UMD components must have a compatible license for using it in the EGI infrastructure
Verification
Check the component license
Source Code Availability
Description
Open source code must provide pointers to the source
Verification
Existence of source code
Build Procedures
Description
Open Source components should provide a documented and reproducible build procedure
Verification
Existence of build documentation. Existence of automatic build procedures.
Management, Monitoring, Traceability
UMD components should have mechanisms for managing them, monitoring their status and tracing actions they perform on the system. Ideally, these should be also available remotely, allowing operators to react timely to problems in the infrastructure. TBD: Is there any standard interface for this?
Service control
Description
Services run by the component must provide a mechanism for starting and stopping the services.
Verification
Test for the mechanism that starts/stops the services. Test all possible combinations:
- start with already started services
- start with services stopped
- stop with stopped services
- stop with started services
Service status
Description
Services must provide a mechanism to query their status.
Verification
Test the mechanism that queries the service status with both running and stopped service.
Service responsiveness
Descripition
Services must react to requests timely. They should provide a mechanism to check their responsiveness to the requests
Verification
Provide a test that checks the service responds to requests (e.g. expected ports are open, expected answer to requests is received)
Service correctness
Description
Services should react to requests and perform the expexted actions after that request. A test for checking the correctness of the request should be provided
Verification
Provide a test that checks the correctness of typical requests that may be integrated in a monitoring framework
Traceability
Description
All actions taken by the service should be traceable by the service administrator. Log files or similar mechanisms should be provided by the service.
Verification
Provide a test that checks that the tracing mechanism of the service (e.g. log files) is working properly.