1.2. Structure of this document

This document is intended to provide documentation at the following levels:

  1. Requirements describing what this system is intended to do

  2. Use cases describing examples showing why the requirements are needed

  3. Documentation for the implementation

  4. Validation and testing to ensure the system does what it is intended to do

In addition this document also attempts to give a drill-down view of the IRIS architecture, splitting the architecture into sub-systems. The intent is to document sub-systems and then to also document how sub-systems interact.

This document starts with instructions for building and running IRIS, but this document is not intended as a user guide. The sections following building and running are a collection of sub-system documentation, and then this document evolves to define how sub-systems interact. The most relevant and "core" sub-systems are addresses first.

Note that requirements are loosely defined within this document, meaning they have no formal representation that can be machine processed. The requirements are a baseline for functionality to document what the system is required to do. Requirements are given identifiers in each section which are used later on to trace back functionality. At the end is an appendix of all requirements.

Also note that through this document are references to "desktop". "Desktop" is the CALO Desktop system which is built on top of IRIS. The CALO Desktop system is not fully documented here, but references are made in places that special consideration should be taken for CALO developers working with CALO Desktop.