The goal is automated composition of software systems in such a way as to guarantee various properties such as correctness, reliability, and resource utilization. The composition may take place statically, when the system is first configured, or dynamically, as new components are added or old components are replaced. Models may be built from scratch for new components or they may be derived by analyzing existing components.
Models are abstract and therefore easier to maintain than software built by hand.
Models enable automatic generation of software with guaranteed properties. Additionally, the same model may be used to construct the system and to gauge its performance when it runs. The two Principle Investigators have extensive experience using formal models to solve practical software development problems. In addition, it also developed tools to perform both static and dynamic program analysis to determine properties of those systems. We intend to apply our technology directly to military requirements.