Scenario 1 assessed whether each ACE+TAO feature combination compiled
without error. We selected 10 binary-valued compile-time options that
control build time inclusion of features, such as asynchronous
messaging, use of software interceptors, and user-specified messaging
policies
. We also
identified 7 inter-option constraints, e.g., (A = 1
B = 0), which means that if option A is enabled
then option B has to be disabled. The configuration space chosen has a
total of 89 valid configurations.
By executing the process we determined that 60 of the 89 valid configurations did not even build -- which was a quite surprise to the ACE+TAO developers! Using CTA analysis on the results we, for example, automatically characterized a previously undiscovered bug. This bug centered on a particular line within the TAO source code and occurred in exactly 8 configurations each of which shared a particular pair of options settings. Using our model-driven DCQA environment and process, we therefore successfully assessed the error-free compilation attribute of ACE+TAO, which is a necessary (though not a sufficient) condition to validate the functional correctness PSA.