Our toolchain automatically validates models requirements before generate
   code. It was made to help system designer in the verification of its
   architecture.
Our validation process is based on Ocarina and the REAL language, which is a
   constraint language for the AADL. Its quite similar than OCL language
   (designed for UML), except that is specific to AADL and thus, makes easier
   the validation of AADL model. You can have additional information about
   Ocarina and REAL on http://www.aadl.telecom-paristech.fr. With
   REAL, the user defines one or several theorems that express what we
   want to check.
There is a list of the theorems used in the POK toolchain and what we
   verify:
   
- MILS requirements enforcements: we check that each partition
         has one security level and connected partitions share the same security
         levels. For that, the underlying runtime and the connections should
         support appropriate security levels.
- Bell-Lapadula and Biba security policies: for connected
         partitions, we check the Bell-Lapadula and Biba security policies (no
         read-up/write-down, ...). With that, we ensure that the architecture
         is compliant with strict security guidelines.
- Memory requirements: we check that required size by a
         partition is less important than the size of its bounded memory
         component. In other words, we check that the memory segment can store
         the content of the partition. We also check that the requirements
         described on partitions are correct regarding their content (threads,
         subprograms size, ...).
- Scheduling requirements (Major Time Frame): for each
         processor component, we check that the major time frame is
         equal to the sum of partitions slots. We also check that each partition
         has at least one time frame to execute their threads.
- Architecture correctness: we check that models contain memory
         components with the appropriate properties. We also check that
         process components are bound to virtual processor
         components.
   
Copyright 2009 POK Team