Today's aerospace companies must reduce development time and improve quality, while accommodating demands for greater system complexity from customers and the government. To meet these challenges, industry-leading companies have adopted Model-Based Design.
In a traditional line-replaceable unit (LRU) design process, engineers gather requirements from several sources, which are combined to create a paper specification. A distributed design team works with the specification to produce a detailed design by iterating through a series of potential design concepts that are prototyped in simulation and/or hardware, checked against the requirements and then modified. Once an acceptable design is achieved, it is handed off for implementation to another team that performs verification and validation testing and, if the product needs to conform to DO-178B or other standards, compliance demonstration. Because testing occurs at the end of this multi-team, multi-stage process, errors that are introduced throughout the design process are often found late, making them expensive to fix and forcing management to make difficult budget decisions.
Model-Based Design begins with the creation of an executable specification that can be linked to the original requirements, providing two-way traceability between the design and the requirements. At the heart of the executable specification is an executable model, used and elaborated on throughout the process. The executable specification can also include inputs and expected outputs, the application environment and clear communication of the design goals to enable feasibility analysis of the requirements. By using the links in the executable specification to the original requirements, engineers can monitor whether the design conforms to the requirements throughout the process and quickly assess the impact of a proposed change on original requirements.
With automatic code-generation technology and hardware-in-the-loop testing, engineers can eliminate errors introduced during manual implementation and shorten the path to product delivery by generating code for testing, verification and final production use. For example, a large American helicopter manufacturer used Model-Based Design to develop the flight controls for a tiltrotor aircraft and realized a 40 percent savings in software development time compared to previous programs. These savings came from being able to detect and correct design and requirement flaws early in the design process.
Additional design efficiency can be realized through the reuse of models across various phases of the design process. Engineers at a multi-national aerospace manufacturer working on the Joint Strike Fighter (JSF) program developed three variants of the JSF using a common set of system models to simulate avionics, propulsion and other systems, and to automatically generate final flight code. This resulted in fewer engineering tasks when compared with traditional methods that rely on hand coding.
Using a model, engineers can test and verify their design much earlier in the process than with traditional development, where some physical instantiation of the design is required to begin testing. The model can then be elaborated on throughout the design process, allowing engineers to continuously test and verify design. Before committing resources and money to a physical implementation, design or test, engineers can analyze the design via model coverage analysis using criteria such as MC/DC to ensure design defects are uncovered early. At this stage, if the tests do not exercise the design completely, the team can determine if additional tests are needed or if parts of the design are not necessary to satisfy the requirements. The use of models in testing is not constrained to a digital environment; the same models can be used in tests incorporating components of the physical system. Two such examples are the pilot-in-the-loop simulators developed by a large jet aircraft manufacturer to test the real-time interaction of actual pilots with updated control algorithms and the hardware-in-the-loop tests used by a large aircraft company to investigate intermittent braking failures on a production LRU.
Having determined their algorithm design is correct, engineers can consider the effects of running this same algorithm in an embedded environment. Implementation details can be added to the model, such as signal conditioning or fixed-point arithmetic. Then, the model can be used to automatically create the implementation. For example, C code and HDL code can be generated for either a software application or digital hardware implementation, respectively. Generating the implementation automatically from the model removes errors introduced by the manual process. As the target for the implementation is not specified until later in the process, much of the design work can be reused when a new target is selected. Also, because the implementation process is automated, it is repeatable and not dependent on the availability of specific individuals.
Finally, the test cases developed earlier in the design process can be reused to test the final implementation. Hence, testing and verification of the design against requirements happens throughout the process instead of at the end. For example, engineers at a British defense and aerospace company working on a software-defined radio (SDR) system were able to reduce their rework and overall development time by a factor of 10 using Model-Based Design. It typically took 645 hours for an engineer with years of VHDL coding experience to hand code a fully functional SDR waveform using the traditional design flow, whereas a second engineer, with limited experience, completed the same project using Model-Based Design in fewer than 46 hours. This dramatic improvement was achieved because the model, in which the developer could include all satellite communications waveform details, was directly connected to the resulting code. With a complete executable model, engineers were able to discover and remove bugs early in the design flow instead of at the VHDL behavioral test stage.
With Model-Based Design, engineers no longer test and verify requirements are met only at the end of the design process. Rather, they test and verify throughout the process, which saves time and money. This approach means engineers can cycle through design iterations in a safe and less expensive modeling environment, resulting in an implementation that works the first time under a shortened development cycle and with improved quality.