The checklist for capture of requirements is as follows:
- Each entity can expose a well-defined interface whose syntax and semantics are described for people and other systems to understand.
- Each entity exposes an interoperable interface and does so using common, open, well-documented standards and best practices.
- Each entity that exposes an interoperability interface does so in a way that allows other elements to discover and bind to it. This discovery is facilitated by the use of common, well-documented standards and formats.
- The system includes elements whose sole role is to find, document, manage, bind and orchestrate other systems, and assist with the complexity associated with distributed, service-based, and interoperating elemenst.
- The different types of data produced and consumed are documented in a canonical model and include the relationships between information types.
- The system secures the content of messages passed between systems as they interoperate.
- Exporting information is available in approved formats and standards and includes CSV and XML.
The checklist for architecture definition:
- Are standards, best practice and frameworks leveraged for programming, database approach, nomenclature, user interfaces?
- Is open, consistent and up-to-date technical documentation available?
- Are I/O operations classified in separate modules in order to separate the retrieval of data from the processing of data?
- Is the critical functionality stored in separate modules?
- Are the programs parameterized?
- Are logical values leveraged instead of hard coded values?
- Is it possible to modify input, control, processing and output functions in order to change the way the system works?
- Are the input, output, and processing, implemented separately?
- Are the programs well structured and easy to understand?
- Is the critical functionality contained in distinct modules?