The Boeing Company Purdue University

Phantom Works Division CS 406/407

Bold Stroke Program 1999/2000 Class Project

Boeing Sponsored Class Project with

Computer Science Department of

Purdue University


1999/2000 Class Project


Robert A. Byrne, Jr.

Department Manager, Avionics Software Engineering

The Boeing Company

PO Box 516, Mailcode S270-4235

St. Louis, MO 63166-0516


Project Overview

The Phantom Works division of The Boeing Company is the research and development arm of the corporation and is tasked with strengthening the Boeing core competencies through the development and transition of innovative technologies, tools, processes, and products. The Bold Stroke Program within Phantom Works is tasked with developing faster/better/cheaper avionic systems and, especially, the software that is embedded in those systems (known as Operational Flight Programs or OFPs). In order to support the new Object-Oriented/C++/multi-processor architecture being developed by the Bold Stroke Team, additional tools will be required to improve the productivity of the avionics software develop process.

Boeing needs a graphical tool for laying out the placement of components on multiple processor boards and then auto-generating build and configuration files (autocode and configuration tables). The commercial name for this type of software is an application builder. Application builders, which are gaining popularity, present software components, that are usually part of an application library, to the user which he/she then wires together to create an application. The best example of this commercially is the family of application builders that work with Java components. Visual Basic probably also qualifies.

The key to building application builders is basing them on a common underlying component definition, e.g., JavaBeans or equivalent. The need, in this case, arises for a custom application because there is currently no commercial standard for real-time avionics components equivalent to JavaBeans or Visual Basic. Boeing has begun defining its own component definition on the Bold Stroke program, which could serve as a builder foundation.

Functionality Overview

The function of the builder would be to allow avionic software developers/builders to select OFP components from the library of components and wire them together as appropriate for a particular hardware/test configuration. An appropriate abstraction would be a design studio type application that gives users the ability to perform the following functions:

·  Select OFP components from an OFP Component library and inspect certain attributes of the component e.g., required rate of execution, event dependency, amount and rate of persistence data, etc. For each selected component, the application will draw a visual representation, including “pins” representing required configuration inputs

·  Define physical architecture build abstractions, i.e., number of required separate builds (currently one per CPU) and thread abstractions

·  Place components within specific build abstractions

·  Allow the user to “wire” certain component attributes together to satisfy component input requirements, perhaps event dependencies.

·  Prompt the user for other required configuration information, perhaps rate/thread/concurrency/persistence information using component supplied configuration parameters (e.g. persistence could be turned on or off, concurrency locks could be changed from "null" to "instrumented", to "mutex", etc.).

·  Allow the user to “build” the application, at which point the application would automatically generate build files, configuration tables, and configuration software according to templates based on our component model, application architecture, and development environment.

Expected Environment

·  The current Boeing Software Development Environment is WindowsNT based, so the tool must operate in this environment.

·  All OFP components are in C++, but the tool can be developed in the most appropriate manner (Java, C++, HTML, etc.).

·  A performance spec for this tool will be provided.

·  The Boeing Component Definitions will be provided.

Benefit to Boeing

Boeing is attempting to build a component architecture that allows rapid reconfiguration and reuse of application components. Currently, the configuration and build process is very slow and is an excellent candidate for automation. As this is an emerging technology, having an outside organization involved will undoubtedly discover improvements to our component model that will need to be propagated over time.

21 July 1999 1