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:
- Is the quality of the software that has been generated or reused up to
the high standards required of production embedded software? This
includes the issue of interfacing with embedded implementations
such as runtime or I/O systems.
- What are the airplane qualification and certification issues
dealing with software safety, verification
and validation of any generated software
especially when a tool has been used for the generation?
Do we qualify the actual process; qualify the tools themselves, which
then qualifies the software they generate; or generate and reuse
code but still perform the normal qualification procedures?
- What is the best approach for integration of these new technologies
into existing development processes and environments? Can a new
approach be phased in while existing development is still being done?
- Can new processes and tools utilize the
heterogeneous and embedded
computing environments available within BCAG?
- What are the business issues involved with the cost and adoption of new
processes?
- Who is responsible for the development and
maintenance of reusable software, especially when dealing
with many different suppliers?
- Will the new tools and methods be accepted by BCAG, the airline
customers, or most importantly the FAA?
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.