Aircraft Software. Operation Flight Programs

Landau (1) defines software as the programs, routines, and so on for a computer. The advent of software has provided great flexibility and adaptability to almost every aspect of life, which is especially true in all areas of aerospace sciences, where flight control, flight safety, in-flight entertainment, navigation, and communications are continuously being improved by software upgrades.

Operation Flight Programs. An operational flight program (OFP) is the software of an aircraft embedded computer system. An OFP is associated with an aircraft’s primary flight processors, including the central computer, vertical and multiple display processors, data processors, signal processors, and warning receivers. Many OFPs in use today require dedicated software integrated support environments to upgrade and maintain them as the mission requirements of their parent aircraft are modified.

The software integrated support environment [also called avionics integrated support environment (AISE), centralized software support activity (CSSA), and software integration laboratory (SIL)] not only allows an OFP to be updated and maintained, but also provides capabilities to perform unit testing, subsystem testing, and some of the integrated system testing.

Assembly Language. Assembly language is a machine (processor) language that represents inputs and outputs as digital data and that enables the machine to perform operations with those data. For a good understanding of the Motorola 6800 Assembler Language, refer to Bishop (13). According to Seidman and Flores (14), the lowest-level (closest to machine) language available to most computers is assembly language. When one writes a program in assembly code, alphanumeric characters are used instead of binary code.

A special program called an assembler (provided with the machine) is designed to take the assembly statements and convert them to machine code. Assembly language is unique among programming languages in its one-to-one correspondence between the machine code statements produced by the assembler and the original assembly statements. In general, each line of assembly code assembles into one machine statement.

Higher-Order Languages. Higher-order languages (HOLs) are computer languages that facilitate human language structures to perform machine-level functions. Seidman and Flores (14) discuss the level of discourse of a programming language as its distance from the underlying properties of the machine on which it is implemented. A low-level language is close to the machine, and hence provides access to its facilities almost directly; a high-level language is far from the machine, and hence insulated from the machine’s peculiarities.

A language may provide both high-level and low-level constructs. Weakly typed languages are usually high-level, but often provide some way of calling low-level subroutines. Strongly typed languages are always high-level, and they provide means for defining entities that more closely match the real-world objects being modeled. Fortran is a low-level language that can be made to function as a high-level language by use of subroutines designed for the application. APL, Sobol, and SETL (a set-theoretic language) are high-level languages with fundamental data types that pervade their language.

Pascal, Cobol, C, and PL/I are all relatively low-level languages, in which the correspondence between a program and the computations it causes to be executed is fairly obvious. Ada is an interesting example of a language with both low-level properties and high-level properties. Ada provides quite explicit mechanisms for specifying the layout of data structures in storage, for accessing particular machine locations, and even for communicating with machine interrupt routines, thus facilitating low-level requirements. Ada’s strong typing qualities, however, also qualify it as a high-level language.

High-level languages have far more expressive power than low-level languages, and the modes of expression are well integrated into the language. One can write quite short programs that accomplish very complex operations. Gonzalez (15) developed an Ada Programmer’s Handbook that presents the terminology of the HOL Ada and examples of its use.

He also highlights some of the common programmer errors and examples of those errors. Sodhi (16) discusses the advantages of using Ada. Important discussions of software lifecycle engineering and maintenance are presented, and the concept of configuration management is presented.

The package concept is one of the most important developments to be found in modern programming languages, such as Ada, Modula-2, Turbo Pascal, C++, and Eiffel. The designers ofthe different languages have not agreed on what terms to use for this concept: Package, module, unit, and class are commonly used. It is generally agreed, however, that the package (as in Ada) is the essential programming tool to be used for going beyond the programming of very simple class exercises to what is generally called software engineering or building production systems. Packages and package-like mechanisms are important tools used in software engineering to produce production systems. Feldman (17) illustrates the use of Ada packages to solve problems.

Databases. Database are essential adjuncts to computer programming. Databases allow aircraft computer applications the ability to carry pertinent information (such as flight plans or navigation waypoints) into their missions, rather than generating them enroute. Databases also allow the aircrew to collect performance information about the aircraft’s various subsystems, providing a capability to adjust the aircraft in flight and avoid system failures.

Elmasri and Navathe (18) define a database as a collection of related data. Data are described as known facts that can be recorded and have implicit meaning. A simple example consists of the names, telephone numbers, and addresses of an indexed address book. A database management system (DBMS) is a collection ofprograms that enable users to create and maintain a database. The DBMS is hence a general-purpose software system that facilitates the processes of defining, constructing, and manipulating databases for various applications.

Verification and Validation. A significant portion of the aircraft computer’s lifecycle cost is system and software testing, performed in various combinations of unit-level, subsystem-level, integrated-system-level, developmental, and operational testing. These types of tests occur frequently throughout the life of an aircraft system because there are frequent upgrades and modifications to the aircraft and its various subsystems.

It is possible to isolate acceptance testing to particular subsystems when minor changes are made, but this is the exception. Usually, any change made to a subsystem affects other multiple parts of the system. As aircraft become increasingly dependent on computers (which add complexity by the nature of their interdependences), and as their subsystems become increasingly integrated, the impact of change also increases drastically.

Cook (19) shows that a promising technology to help understand the impact of aircraft computer change is the Advanced Avionics Verification and Validation (AAV&V) program developed by the Air Force Research Laboratory.

Sommerville (20) develops the concepts of program verification and validation. Verification involves checking that the program conforms to its specification. Validation involves checking that the program as implemented meets the expectations of the user.

Figure 2 shows an aircraft avionics support bench, which includes real components from the aircraft such as the FCC line replaceable unit (LRU) sitting on top of the pictured equipment. Additional equipment includes the buses, cooling, and power connection interfaces, along with monitoring and displays. On these types of benches, it is common to emulate system and subsystem responses with testing computers such as the single-board computers illustrated.

Figure 2. An aircraft avionics support bench

Figure 3 shows another verification and validation asset called the workstation-based support environment. This environment allows an integrated view of the aircraft’s performance by providing simulations of the aircraft’s controls and displays on computer workstations. The simulation is interfaced with stick and throttle controls, vertical situation displays, and touch-screen avionics switch panels.

Figure 3. A workstation-based aircraft avionics support environment

Object-Oriented Technology. Object-oriented (OO) technology is one of the most popular computer topics of the 1990s. OO languages such as C++ and Ada 95 offer tremendous opportunities to capture complex representations of data and then save these representations in reusable objects. Instead of using several variables and interactions to describe some item or event, this same item or event is described as an object.

The object contains its variables, control-flow representations, and data-flow representations. The object is a separable program unit, which can be reused, reengineered, and archived as a program unit. The power of this type of programming is that when large libraries of OO programming units are created, they can be called on to greatly reduce the workload of computer software programming.

Gabel (21) says that OO technology lets an object (a software entity consisting of the data for an action and the associated action) be reused in different parts of the application, much as an engineered hardware product can use a standard type of resistor or microprocessor. Elmasri and Navathe (18) describe an OO database as an approach with the flexibility to handle complex requirements without being limited by the data types and query languages available in traditional database systems.

 






Date added: 2024-02-20; views: 159;


Studedu.org - Studedu - 2022-2024 year. The material is provided for informational and educational purposes. | Privacy Policy
Page generation: 0.02 sec.