Introduction

This position paper is being used to discuss some of the research areas and concerns our group in Boeing is working on. We are called the Autocode Research Group, a program within the Avionics Software Engineering organization of BCAG (Boeing Commercial Airplane Group). Our charter is to explore the application of the latest technology in automatic code generation and software reuse to the problems faced in the existing BCAG avionics software development processes. Over the next few years, we plan to change our emphasis from research to actual process and product deliverables to be used in embedded software development.

Our goal will be to incorporate graphical application specification and generation tools into a development framework that utilizes domain specific software reuse and code generation techniques. The end goal is the generation of 'production quality' embedded avionics software. This presents many complex problems that are also faced by the entire reuse community:

BCAG is a large company with numerous and diverse software development environments. In the commercial sector, production of a complex airplane must follow established procedures. The current process requires the designers of the avionics on-board control and display systems to generate detailed requirements documents which are typically sent to outside companies that specialize in embedded avionics software development. These large documents are used as the basis for the software development process. This includes other in-house tasks that range from analyzing contract bids to generating verification tests, and are even used as the basis for future product descriptions.

Because software is such a critical technology, our research charter has been to explore how automatic code generation techniques could be utilized to increase the productivity of the software development process. These are best directed at those areas within BCAG that contain detailed domain expertise.

We have been looking at methods that would augment the current development process with tools that would allow the system engineers the ability to specify their requirements utilizing graphic CAD/CAE like tools. The information specified in some of these requirements documents is of fine enough detail that automatic generation of software is achievable with current technology.