Next: 9 References
Up: Appnotes Index
Previous:7 The Software Development Process
  Layer Generation Tool Lines (approx) User Interface (UI) Heritage 200 Execute Finite State Machine (EFSM) Beacon 100 Application Specific Interface (ASI) AIB 500 Command Program Interface (CPI) hand ?
Following the success of the BM 2 proof of concept AIB was rewritten to generate C compatible with the GEDAE CPI. This version was used on both BM3 and BM4.  
Although the BM3 application CP is ultimately intended to be embedded in a large UYS-2 CCS, for the acceptance test the CP needed to be a simple stand-alone program. This provided the opportunity to extend the scope of code generation in AIB to the UI and EFSM layers. AIB was extended to generate a "generic" CP where the User Interface was textual and was composed of a collection of menus that allowed the selection of submode and setting of all parameters visible to the CP. This generic CP proved to be sufficient, with minor tailoring, for the BM3 acceptance test. As can be seen from Table 8 - 2, BM3 Source Code, the combination of AIB generated ASI software and the AIB generated generic CP reduced the amount of handwritten software for the CP to less than 10%.
 
Layer Generation Tool Lines (approx) User Interface (UI) AIB 1200 Execute Finite State Machine (EFSM) hand AIB 200 200 Application Specific Interface (ASI) AIB 3500 Command Program Interface (CPI) GEDAE COTS 750
Additionally, a second simplified BM3 command program was constructed using ObjectGEODE.
The purpose of this experiment was to validate the ability to easily integrate AIB generated
source code, ObjectGEODE generated source code and the GEDAE CPI into a single command
program to control a GEDAE graph. The results showed that this process was straight forward.
 
Layer Generation Tool Lines (approx) User Interface (UI) Heritage Hand 400 100 Execute Finite State Machine (EFSM) Application Specific Interface (ASI) AIB 500 Command Program Interface (CPI) GEDAE COTS 750
Since highClass already possessed all of the UI and EFSM level code to interact with the rest of the test bench, it was natural to transform highClass into the command program. This transformation process proved straight forward and largely consisted of removing software that had interfaced with Candidate, moving some Candidate software into highClass, restructuring the main program loop and adding calls to ASI level software. The code sizes shown in Table 8 - 3, Benchmark 4 Source Code, indicate that approximately 50% of the command program was constructed from AIB generated software. Note that AIB generated additional functions, totally another 1000 lines, were not needed for this particular application. Also note that a significant amount of Interprocessor Communication Software employed to communicate between the CP and the rest of the software test bench is not included in Table 8 - 3. (It was reused without
modification.)
A number of conclusion can be reached from the RASSP benchmark projects:
8.0 Application Experience
The Application Specific Interface Builder (AIB) was used on both Benchmark (BM) 3 (Sonar application) and Benchmark 4 (Image Processing application). A very preliminary version was used on a simplified Benchmark 2 (Radar application). In all cases AIB was used to generate more than 50% of the CP source code. The mode / submode abstractions proved appropriate for each benchmark domain and Application Specific Interface (ASI) level software did not need to be tailored for any of the examples. None of the Benchmark CPs were distributed applications nor did they involve complex mode/submode level state transition logic. Consequently, ObjectGEODE was not employed to generate the Enhanced Finite State Machine (EFSM) layer of any of the CPs.
8.1 BenchMark 2
As an initial proof of concept, a simple version of AIB together with ADI's Beacon tool was used to generate a simplified version of the BM 2 CP. The Signal Processing Program (SPP) was generated by MCCI's signal processing autocoding tool. At the time of the experiment, the MCCI Command Program Interface (CPI) was not completed so a simple CPI allowing the CP to run / stop / load a parameter was created by modifying a similar existing interface. Since the CPI and UI level software were in Ada, the proof of concept AIB was programmed to generate Ada. The Beacon tool, which also had an Ada generation capability, was used to generate the EFSM level. The combined autocode CP and SPP application was successfully demonstrated at the November 1996 RASSP conference.
8.2 BenchMark 3
The Benchmark 3 (BM3) program provided the opportunity to demonstrate AIB on a Mode with multiple submodes and to extend the code generated by AIB into the UI and EFSM layers. As can be seen from Figure 8 - 1: Schematic BM3 Top Level
Graph, the BM3 SPP appears to naturally split into two submodes depending on the Switch Box control parameter. During graph testing however it became clear that BM3 should in fact be viewed as having four submodes. This is
due to four distinct parameter sets being developed and the graph pipeline needing to be completely cleared of processing before changing each parameter set. In essence the CP path had two sub-configurations and the CW path also had two sub-configurations. AIB generated ASI layer software easily accommodated this change in
perspective.
8.3 BenchMark 4
Benchmark 4 (BM4) provided the opportunity to verify that AIB generated software could cross application domains and be easily integrated into a command program largely composed of heritage software. The BM4 program sponsor, MIT Lincoln Laboratory, provided an executable specification and test bench for the application. The test bench included a process known as "highClass" that controlled a process known as "Candidate". Most of the processing in Candidate was to be moved to 72 SHARC processors with the SPP generated by GEDAE.
Additional work is required on the Application Specific Interface Builder to prepare it for
inclusion with the GEDAE commercial product line. The ASI layer abstractions require further refinement and the generic command program concepts need to be extended. Some of this work will be performed in 1998 and 1999 under the Navy/Lockheed Martin ATL DUAP program.
Next: 9 References
Up: Appnotes Index
Previous:7 The Software Development Process