The average ratio of ControlH specification-to-code lines in the demonstrations is about 1 to 5. However, this is significantly affected by a large demonstration (flight control) consisting mostly of procedural ControlH derived from an existing FORTRAN program. We believe that excluding this demonstration, which results in a specification-to-code ratio of about 1 to 9, is more representative of modular specifications that make full use of ControlH language features.
There are two specification-to-code metrics one can derive for MetaH, one based on the number of lines of application code that were integrated and one based on the number of lines of executive code generated to do the integration. For all these examples, 1 line of MetaH generated about 3 lines of executive code to integrate about 8 lines of application code. However, this is skewed because many of the demonstrations used stubs in place of functional application code. We believe the IFMU demonstration, which was reengineered from an actual product and exhibits a specification-to-application ratio of about 1 to 18, is more representative of what can be expected in practice.
The code generators for ControlH and EdgH also generate the MetaH descriptions of the Ada source code they produce. Thus, a significant portion of the MetaH in our demonstrations is itself automatically generated.
In the reengineering demonstrations, about 5% of existing application code had to be modified or added in order to be able to use that code in a MetaH-specified software architecture.
732 lines Ada generated from 253 lines ControlH
118 lines Ada generated from 2 lines EdgH
1172 lines Ada generated from 345 lines MetaH
2452 lines Ada executive code reused
4474 lines Ada reused or generated from 600 lines of specification
5185 lines Ada generated from 332 lines ControlH
328 lines Ada generated from 4 lines EdgH
1844 lines Ada generated from 428 lines MetaH
2452 lines Ada executive code reused
9809 lines Ada reused or generated from 674 lines of specification
716 lines Ada generated from 140 lines ControlH
472 lines Ada generated from 8 lines EdgH
3251 lines Ada generated from 846 lines MetaH
1843 lines Ada hand-coded
2452 lines Ada executive code reused
8734 lines Ada, 6891 reused or generated from 964 lines of specification
9884 lines Ada generated from 2663 lines ControlH
3674 lines Ada generated from 7 lines EdgH
1852 lines Ada generated from 1312 lines MetaH
2452 lines Ada executive code reused
17862 lines Ada reused or generated from 3982 lines of specification
1861 lines Ada generated from 461 lines MetaH
2452 lines Ada executive code reused
8246 lines Ada reengineered
12559 lines Ada
1657 lines Ada generated from 596 lines MetaH
2452 lines Ada executive code reused
1682 lines Ada unmodified
138 lines Ada modified or added
5929 lines Ada
1138 lines Ada generated from 426 lines MetaH
2452 lines Ada executive code reused
3742 lines Ada unmodified
117 lines Ada modified or added
7449 lines Ada