Domain-Specific Software Architectures for GN&C
Engineers often draw annotated diagrams of components and the relationships
between them to describe the high-level design or architecture of a system.
We seek to make this intuitive notion of an architecture more rigorous by
defining precise meanings and notations for such specifications. This
means using machine-processable languages to capture architecture
specifications; tools to analyze architectures and estimate system
properties; and tools to automate the production and testing of software
from an architecture specification. We have applied these principles to
develop architecture specification languages for real-time systems, with
special attention paid to those that include guidance, navigation and
control functions; and to specify example architectures that can be easily
adapted to meet the requirements of families of related products.
Reuse of source modules alone cannot achieve dramatic reductions in cost and
schedule, since coding and unit testing typically account for only 10-20% of
the overall software life cycle effort. An architecture-based approach allows
reuse and automation to be applied in multiple phases of the life cycle, from
design to maintenance and upgrade. In addition, our approach provides
capabilities to estimate and manage product characteristics starting very
early in the development cycle. This can significantly reduce the amount of
rework that occurs with current practices. Where architecture-based
techniques can be applied, we estimate overall life cycle costs can be reduced
by a factor of 3 to 10. Architecture-based analysis coupled with
rigorously defined module interface conventions can also lead to significant
reductions in defects and reductions in development process variability and risk.
Any sufficiently complex system is an integration of the work of many
engineers trained in a variety of disciplines. We address this by providing
multiple discipline-specific views. Each view is captured in an architecture
specification language appropriate to a class of requirements, design issues,
and engineering disciplines. ControlH is a block diagram language suitable
for capturing models and specifications used by guidance, navigation and
feed-back control engineers. MetaH is a language used by computer system
engineers to specify real-time software and hardware architectures. Both
languages have analysis tools appropriate for the properties of concern
in each view. The languages and tools provide a mapping between the views
that helps insure consistency and supports concurrent multi-disciplinary
development.
Examples and Demonstrations
To apply our DSSA technology to a specific business or development effort, an
architecture specification for a particular product is captured in the ControlH and
MetaH languages. Ideally, this is a reusable architecture that can be applied
to multiple products. Some reusable architectures are listed on the
"What is a DSSA?"
page, we have some metrics from
demonstrations conducted using our ControlH and MetaH tools,
and we have some detailed examples of software architecture specifications,
analyses, generated code, and test results:
Acquiring the Technology
Our DSSA program offers a variety of tools, technologies and experience. Your
organization and your processes, products, objectives and problems will have
their own unique aspects. If our technologies seem to address some of your
objectives and problems, you will need to do a more thorough evaluation and
develop a technology adoption plan. One way to start is a software
architecture workshop for one of your product teams. We have provided tools
to industrial and educational organizations for research and evaluation
purposes under a zero-fee license agreement. We can participate in the
application of our tools and technologies on a consulting or contracting
basis. We are actively exploring opportunities to productize our tools and/or
the technologies embodied in them with commercial tool vendors, and we are
open to discussing a broad range of technology licensing arrangements.
For further information send email to dssa-info@htc.honeywell.com or call
Steve Vestal at (612) 951-7049.
|