Ada 95 Transition Support


2.1 Executive Summary

The Funds Management Modernization System (FMMS) consists of the modernization of Secretary of the Air Force, Funds Management SAF/FM Headquarters (HQ), Major Command (MAJCOM), and installation-level funds management systems. FMMS is first of several phases planned to modernize the entire Air Force budget systems environment. The overall set of modernization phases is referred to as the Future Budget System (FBS).

FMMS will build upon the business process re-engineering of the Planning, Programming and Budget System (PPBS). FMMS will track the chronology and funds management of all Air Force money from initial Presidential budgets through final disbursement to the work centers. FMMS will be deployed in parallel with the existing system for concurrent use.

FMMS will re-engineer a series of legacy Management Information Systems (MIS) into a single, comprehensive system. The re-engineering effort will include migration from character-based interfaces executing on RS6000s and Unisys 2200s to Graphical User Interfaces (GUI) executing in a client/server environment consisting of microcomputers running MS-Windows and workstations running UNIX.

The planned implementation strategy will utilize an iterative software development model for FMMS. The current plan requires three major releases during the life of the project. These incremental releases are composed of the following phases: training, analysis, design, implementation and testing. Formal training will be supplemented with Ada 95 mentoring activities during all phases of each release on an as-needed basis. The project is currently in the implementation phase of the first incremental release.

The Single Agency Management for Pentagon Information Technology Services, Air Staff Systems Directorate, PPSB Support Division (SAM-GAP) team is responsible for the project. They are supported by mentors supplied by the Ada Joint Program Office (AJPO). The mentors provided Ada 95 expertise and transition support.

FMMS is an AJPO Ada 95 early adopter project. The FMMS project will stress the Ada 95 tools and environment to find strengths and weaknesses. This report provides enumeration of those findings, which were ascertained during the first incremental release.

A majority of the issues identified during the development effort did not result from the choice of programming language. Rather, they were the typical issues seen on any project that implements new technologies. Many lessons have been learned. Some were new to the team and the mentors, while others confirmed long-held software engineering maxims. The following summarize the major lessons learned while supporting this project:

2.2 Project Introduction and Overview

The "current system" is actually an aggregation of several automated systems and manual processes. The headquarters (HQ) Chronology, Funds Baseline, Funds Release, and Reprogramming systems will be modernized, along with the Command Budget Automated System, Increments II and IV (CBAS II and CBAS IV) at the Major Command (MAJCOM) and installation levels.

Over the years, the legacy systems that support the current system evolved into "stove-piped" systems. Often, communication between these systems, as well as any consideration of common data elements, were added as an afterthought. Over the years, these systems have been transitioned between databases, programming languages, operating systems, and hardware platforms. As requirements continue to evolve, the resulting morass of code is inflexible, brittle, hard to understand, and difficult to modify. To some extent, the business processes held captive by these inflexible systems have been driven 'cart before the horse' into inefficiency.

The legacy systems that will be made obsolete by the modernized system exist to meet mandatory requirements given by the Office of the Secretary of Defense (OSD) and Congressional reporting requirements, as well as to comply with the law. Therefore, requirements for these systems are derived from OSD and Congress. These requirements are subject to change with very short timelines for compliance.

FMMS will replace the following four HQ legacy systems: Chronology, Funds Baseline, Funds Release, and Reprogramming; and the MAJCOM legacy systems: CBAS Funds Control components. These systems may be regarded as the major system components of the HQ and MAJCOM legacy Funds Management system.

The software system is under development by SAM-GAP personnel. Many of the staff members have had previous Ada 83 programming experience or training. The software development began in early January 1996, followed by two weeks of Ada 95 training in late January. Primary development of the first release occurred from February 1996 and is still ongoing.

2.3 Project Goals

This section lists major goals of the project sponsors and an analysis of the accomplishments in that area.

2.3.1 FMMS Goals

2.3.2 AJPO Goals

2.4 Ada Technology


An object-oriented development methodology is being used, and Ada 95’s features are being exploited wherever they provide benefits. The object-oriented approaches are enforced with a variety of products. The principal products are from Rational Inc.

A significant number of new Ada 95 features are being used in the project. These include:

Lessons Learned

2.5 Staffing


Eight full-time Ada 95 developers are currently assigned to the FMMS project. Five of the eight developers are SAM-GAP personnel and the remaining three Ada 95 developers are provided by a contractor. All of the developers had some experience with Ada 83 and object-oriented development. Additional development staff are currently assigned to database, security, and other support issues.

Lessons Learned

2.6 Training


The first Ada 95 training was provided in late January 1996 at the CACI Pender site by Mr. Pat Rogers of Software Arts and Sciences. The training lasted one week and was attended by members of the development staff with prior Ada experience.

A second class was provided by C.J. Kemp and Associates and was targeted toward those members of the development staff with no Ada experience. This class was two weeks in duration and covered the entire Ada 95 language. In addition to the development staff, the two-week class was also attended by management and support staff.

The instructors and students were both pleased with the training experience and the resulting competence gained from the training periods.

Once the Ada 95 training was complete, a one-day overview of Object Oriented Development with Ada 95 was presented by Mr. Brad Balfour of CACI. This was intended to assist the developers in bridging the gap between understanding Ada 95 syntax and semantics and being able to implement an Object-Oriented solution in the Ada 95 language.

Lessons Learned

2.7 Mentoring


Full-time on-site mentoring was provided for the duration of the project. The mentoring effort began in December 1995 with a visit to SAM-GAP 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 for the project. On-site mentoring support at SAM-GAP began in mid-January and will continue for the duration of the project.

Mentoring activities included the following: assisting with object-oriented analysis and design; providing a mapping from, and object-oriented design to, Ada 95 language constructs; assisting with design and code reviews; evaluating tools; providing formal lectures on Ada 95 and object-oriented topics; leading informal discussions; researching topics; reviewing presentations; and identifying potential areas of reuse.

Lessons Learned

2.8 The Development Environment


The hardware development environment consists of a PC with Windows NT version 3.51 and a Sun SPARC workstation for each developer. The Sun SPARC workstations are either a Sun SPARC 5 or Sun SPARC 10, and are the platforms for the UNIX development. The data server is a Sun SPARC 1000. The Sun Solaris Common Desktop Environment version 1.0.1 provides the developers an interface to the UNIX operating system.

The UNIX software development environment includes the following:

The PC software development environment includes the following:

Lessons Learned

2.9 Software Analysis and Design


The FMMS project consisted of the re-engineering of an existing system. The stated requirements, which were successfully met, were:

  1. Rehost the software to the new environment providing the same functionality as the current system.

  2. Improve the system maintainability and reliability through reimplementation in Ada 95.

The resources allocated to the developers to determine specific requirements were existing source code, a users manual, and a few documents describing data formats. Domain experts and system users were present for the SAM-GAP team throughout the initial development effort, and continue to provide assistance to the developers.

Due to the short development schedule and 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 use cases. After many weeks, the overall structure of the legacy code and system requirements became clear. At this point, it became possible to develop a fairly compact and elegant design for the system.

The initial Ada design originated from the use cases. This initial code was redesigned to make appropriate use of Ada 95 features, as opposed to the "C-Ada" created during requirements extraction.

Lessons Learned

2.10 Conclusions

The FMMS project has successfully constructed an Ada 95 development environment. The system architecture required use of numerous tools which were easily incorporated into the development environment. No difficult problems were encountered in interfacing the new Ada 95 system with existing hardware and software.

The FMMS project has successfully created a demonstration that shows end-to-end connectivity of all the tools in the environment. This demonstration was used as the basis for current development in this iteration phase. Other lessons will be gathered after completion of the iteration, when a design and implementation review is completed.

Support for MS Windows-based GUI development is scarce but should improve soon. The Thomson product is available, but not fully mature. The maturity issue is also true of other products in the environment, but progress is being made!