Ada 95 Transition Support
1.1 Executive Summary
The Portable Recording System (PRS) Ada 95 rehost effort associated with the Marine Corps Tactical Systems Support Activity (MCTSSA) Air Defense Systems Division (ADSD) Tactical Air Operations Module (TAOM) at Camp Pendleton, California is the first completed Ada 95 project of the United States Marine Corps.
The project consisted of re-engineering an existing multi-language tactical communications support program to an Ada 95 implementation and rehosting the system to new hardware. The entire project, including training, analysis, design, implementation and testing, was successfully completed in 5 1/2 months.
The following statements summarize the major lessons learned while supporting this project:
- Ada 95 can now be successfully used to deploy a tactical communications support software system.
- Tool requirements should be identified as early as possible in the project. Alternatives and possible workarounds must be identified for all essential tools not acquired before development begins.
- Mentoring support was essential through all phases of the project.
- In a re-engineering effort, timely access to users of the existing system and domain experts should be available throughout the project. This access should be planned and guaranteed at project inception.
All major project goals were achieved.
1.2 Project Introduction and Overview
The Portable Recording System (PRS) Ada 95 rehost effort was conducted at the Marine Corps Tactical Systems Support Activity (MCTSSA) Air Defense Systems Division (ADSD) Tactical Air Operations Module (TAOM) at Camp Pendleton, California.
The PRS is used to extract and record air track data messages from the Digital Data Bus within the TAOM. The old system (Figure 1) resided on a 286 PC connected to its own TAOM Bus Interface Controller (BIC) and wrote to a 9-track tape drive. The BIC is a modified proprietary card that is expensive and not easily acquired. The 9-track tape drives are fragile and unreliable. The software was written in two different languages (C, assembly), posing reliability and maintainability problems. In the PRS project this system has been rehosted to a Sun SPARC 20 workstation (Figure 2). Messages are received from a gateway via fiber optic cable (rather than a direct link through the BIC) and recorded on either disk files or on 8mm tape.
The old system needed to be physically transported to the TAOM site and connected directly to the TAOM. Now, the system may be used anywhere a fiber optic link to a gateway is available. Since the SPARC 20 configuration is already used for many message tracking functions, specialized hardware is no longer required for the PRS.
The software system was developed by ADSD personnel with no previous Ada programming experience. The project was initiated in December 1995. Requirements analysis began in early January 1996, followed by two weeks of Ada 95 training in late January. Primary development occurred from February through May. The system was successfully tested during Marine Corps exercises in mid-June 1996.
1.3 Project Goals
This project was conducted by the ADSD of MCTSSA with the support of The Ada Joint Program Office (AJPO). Additional technical support was provided, through the AJPO, by the Naval Computer and Telecommunications Station (NCTS) San Diego, California.
This section lists major goals of the project sponsors and an analysis of the accomplishments in that area.
1.3.1 MCTSSA Goals
- Allow the PRS to operate on the new hardware configuration and eliminate the need to transport the old system to exercise and operational sites.
The PRS now operates on a Sun SPARC 20 workstation. This is the common hardware used for most tactical support functions. Now, the PRS system software may be transported on a removable disk drive and used remotely from a TAOM. This eliminates the need for transporting the entire PRS shelter to the TAOM site whenever recording is to be performed.
- Eliminate reliance on unreliable, proprietary communications media.
The BIC and a direct connection to the Digital Data Bus (DDB) are no longer required. Communication with the TAOM via the gateway is achieved through a standard TCP/IP network connection.
- Improve the reliability and maintainability of the PRS code.
The old system was written primarily in C and 8086 assembly language. The new system is entirely in Ada 95. This eliminates the need for multiple language maintenance and the reliability problems which result. Additionally, effort was made during development to exploit the Ada 95 features which enhance reliability (e.g., strong typing) and supplement the inherent readability of Ada code with thorough comments and documentation.
- Enhance the software development capacity of MCTSSA. Develop Ada 95 competence.
Four ADSD employees received a two-week Ada 95 training course. Two of these then performed actual Ada 95 development for from one to five months. Experience was also gained in software project management and software testing by additional ADSD personnel.
1.3.2 AJPO Goals
- Quicken the maturity of Ada 95 tools.
This project helped to highlight the current deficiencies in tool support for X-based GUI development. Actions are currently underway to solicit additional support in this area. Also, the project contributed to the maturity of the GNAT compiler by exercising several real-time and I/O features that have not been commonly used (dynamic allocation of protected objects and Stream_IO).
- Demonstrate the applicability of Ada 95 to tactical support software.
The PRS project software was written entirely in Ada 95. The language was able to provide the desired functionality for the system in all cases with no workarounds.
1.4 Ada Technology
A significant number of new Ada 95 features were used in the project. These included:
- Pragma Import - This pragma allows access to existing code not written in Ada. External routines for connecting and communicating with the gateway were imported using this pragma. Additionally, UNIX system calls were accessed in this manner.
- Interfaces.C - The external routines accessed by the program were written in C. This package and its child packages provide appropriate types and operations to facilitate inclusion of C functions in an Ada 95 program. In the past, more difficult, non-portable, compiler-specific solutions were often required to achieve this.
- Stream-IO - This package was used to write the received messages in binary format directly to tape or disk files. This provided a substantially more elegant and maintainable solution than previous I/O features would have supported.
- Protected Types - It was necessary to buffer received messages and prepend a header to the collected messages before storing them on disk or tape. This was achieved through the use of dynamically allocated protected objects. Protected objects allow multiple threads to access data objects without the overhead of a heavyweight task. This feature allows the new system to provide greater flexibility to the user by expanding data buffering and storage options.
- New String Packages - Several new string manipulation features of Ada 95 were used in the system.
- Protected objects are a valuable new feature for real-time applications.
Protected objects, a feature not readily available in other languages, were very well suited to this project. They were used to implement the message buffering functionality of the system. Achieving this functionality in Ada 83 would have required the use of many extra tasks and the overhead associated with them. Achieving this functionality in other common languages would have required the development of much more complex and difficult to maintain code and/or substantial use of non-portable operating system calls.
The project had one full-time developer through its duration. An additional developer assisted with requirements analysis and the early phases of the project. A third developer, who was also a system user and domain expert, conducted testing.
The primary developer had previous education and experience with Pascal and assembly language programming. He had not programmed professionally for several years. The second developer had experience as a COBOL and database programmer. The third developer/tester is an experienced C programmer and UNIX system administrator.
Due to the short training period, the primary developer naturally needed considerable guidance in establishing the basic structure of a module and choosing data structures. Detail coding aspects, however, were mastered very quickly and little mentoring was required at this level. The developer's Pascal programming background clearly contributed to this success.
The other ADSD team members did not actually develop significant code. However, during requirements analysis and testing they appeared to quickly develop the capacity to read and understand considerable segments of Ada 95 code.
- An appropriate skill mix should be determined as early in the project as possible.
The inclusion of the domain expert earlier in the project, even with a small time commitment, would have expedited the project schedule and resulted in an enhanced final product. The PRS rehost was not simply a technology demonstration project but was also providing an essential enhancement to operational software. It is unclear that this was taken fully into account in project staff and resource allocations. It seemed to be viewed as solely a technology demonstration project which did not require operational expertise.
1.6 Project Scheduling
The project successfully met a schedule shortened due to external circumstances. The project entered field testing two months earlier than the original planned delivery date. A set of desired enhancements, including a GUI, have been deferred pending tool and staff availability.
- Success criteria should be re-evaluated when schedule and staffing changes are made.
All essential project goals defined in the Ada 95 transition plan were achieved despite a 25% reduction in the project schedule and a substantial reduction in TAOM personnel assigned to the project. This was achieved through a substantial increase in the level of AJPO support over that originally planned. The project team was also fortunate to avoid schedule delaying pitfalls which generally plague technology insertion projects. Should either of these two factors not have been present, the schedule and staff reductions would have made the achievement of the success criteria impossible.
1.7 Project Management
The prime functions of project management were to agree on schedules and goals and provide required resources. The small size of the development staff made extensive day-to-day management unnecessary.
- Staffing and resource allocations must be proportionate to the project requirements and significance.
A project developing a system that will be fielded must be supported in a manner appropriate to the operational importance of that system. The fact that new technology is being introduced makes appropriate staff and resources more, not less, essential.
Full-time on-site mentoring was provided for the duration of the project. The mentoring effort began in mid December 1995 with a visit to MCTSSA to gather information needed to develop the Ada 95 transition plan and project schedule. During late December and early January 1996 the transition plan was developed and arrangements were made to provide Ada 95 training to the project. On-site mentoring support at MCTSSA began in mid-January and continued for the duration of the project. Additional on-site technical support was provided by the AJPO through NCTS in San Diego beginning in mid-March. This support was necessitated by a reduction in TAOM project staffing.
- Ada 95 mentors were essential in mitigating the risk of Ada 95 introduction.
No MCTSSA-based Ada (83 or 95) experience was available for the project. In such an environment, project-wide mentoring is essential. Clearly, an organization with a different software development process and some in-house Ada expertise would have different mentoring requirements.
- Mentoring support must match the needs of the project.
While Ada 95 issues are the mentor's primary concern, additional types of support should be provided, as requested, within the applicable time and budget constraints.
Ada 95 training was provided in late January at Camp Pendleton by Dr. Richard Riehle of Adaworks. The training lasted two weeks. In attendance were the two original developers assigned to the project and the project manager. The instructor and students were both pleased with the training experience and the resulting competence gained.
- Ada 95 training must match the technical requirements of the project.
The focus in Ada 95 training courses varies greatly. It is essential to choose an appropriate one. In this case, the choice of class material was appropriate for the needs of the PRS project.
- Ada 95 training must meet the educational needs of the students.
Instructors vary widely in their teaching approach and educational skills. In this case, the strong interpersonal skills of the instructor were essential in assisting the project members to make progress in developing their Ada 95 skills.
- Additional training must be provided when required.
This project would have benefited greatly from instruction in the SUN Solaris operating system. The developers had not used this environment before and training would have shortened the learning time required to begin full-scale development.
1.10 The Development Environment
The hardware environment for both the development and fielded system was a Sun SPARC 20 with 196 Mbytes of memory and a 4 Gbyte removable hard disk. The operating system was Sun OS 5.3. The compiler was GNAT 3.03. Ada-ASSURED was used as a syntax-driven editor as well as to format source code and enforce style standards. Ada-ASSURED was successfully integrated with GNAT to allow compilation from within the editor.
- Identify and acquire tools and resources as early as possible.
When introducing new technology, appropriate tool support will generally not be present in the developing organization. Procurement of new tools may be suprisingly time consuming when the development organization has not dealt with the appropriate vendors previously. Announced tools for new languages or processes are often 'vaporware' which cannot be immediately supplied when ordered. All of these factors call for early tool analysis and acquisition.
- Support for X-based GUI development using Ada 95 is not adequate as of mid- 1996.
A GUI was a proposed enhancement to the PRS that was to be developed if time remained after the rehost was complete. Time was available, but a suitable X- based GUI development tool could not be acquired. The lack of X-based GUI development support for Ada 95 is a significant obstacle to effective Ada 95 development in the UNIX environment.
1.11 Software Requirements Analysis
The PRS rehost project consisted of the re-engineering of an existing system. The stated requirements, which were successfully met, were:
- Rehost the software to the new environment providing the same functionality as the current system.
- Improve the maintainability and reliability of the system through re-implementation in Ada 95.
The resources allocated to the developers to determine specific requirements were the existing source code, a users manual, and a few documents describing data formats. Domain experts and system users were present at the TAOM site throughout the project, but they were not allowed to assist the developers until late in the development process. Access was provided to the system itself, but this was of limited use without access to system users.
- Access to users and domain experts is essential during requirements analysis of a re-engineering project.
Extracting requirements from source is a difficult and error-prone process. Any support from users and domain experts during this phase would have been very helpful. When support was provided late in the project, it was clear that the project schedule could have been further condensed and several useful enhancements could have easily been inserted during development if user or domain expert input had been allowed earlier.
1.12 Software Design
Due to the short development schedule and the nature of the requirements specification (source code of the old system), an iterative development process was used. For this reason, a formal system design was not created prior to beginning implementation. Instead, requirements were immediately captured in Ada code as they were identified. Then that code was redesigned to make appropriate use of Ada 95 features (as opposed to the "C-Ada" created during requirements extraction). Fortunately, after many weeks the overall structure of the legacy code and the system requirements became clear. At this point, it became possible to develop a fairly compact and elegant design for the system.
- Assistance from domain experts and system users is essential in early phases of a re-engineering project.
Input from domain experts and users at the design stage would have allowed useful enhancements to be designed into the system. If this system had been more complex, or a larger development team had been involved, proceeding without an initial system design would have been much more difficult and not recommended.
1.13 Software Integration and Test
Integration of code was simple and immediate. Interfacing with the message gateway was achieved easily using the new Interfaces.C and pragma Import features of Ada 95. Testing was slowed by limited access to gateway facilities required to allow testing with live data messages.
- Plan for required test facilities from project inception.
Testing must be incorporated into the project schedule from inception. Special hardware and personnel requirements should be addressed as soon as possible, not left ignored until they are actually required.
The PRS rehost project successfully introduced Ada 95 development to MCTSSA. No difficult problems were encountered in interfacing the new Ada 95 system with existing hardware and software. The GNAT compiler and other tools performed as expected. Support for X-based GUI development is scarce but should improve soon. The TAOM development team performed well and had little difficulty adjusting to Ada 95 development.