Search NASASearch

Engineering topics

Seidewitz, ED

Publications and source records attributed to Seidewitz, ED.

Object-oriented programming with mixins in Ada

Recently, I wrote a paper discussing the lack of 'true' object-oriented programming language features in Ada 83, why one might desire them in Ada, and how they might be added in Ada 9X. The approach I took in this paper was to build the new object-oriented features of Ada 9X as much as possible on the basic constructs and philosophy of Ada 83. The object-oriented features proposed for Ada 9X, while different in detail, are based on the same kind of approach. Further consideration of this approach led me on a long reflection on the nature of object-oriented programming and its application to Ada. The results of this reflection, presented in this paper, show how a fairly natural object-oriented style can indeed be developed even in Ada 83. The exercise of developing this style is useful for at least three reasons: (1) it provides a useful style for programming object-oriented applications in Ada 83 until new features become available with Ada 9X; (2) it demystifies many of the mechanisms that seem to be 'magic' in most object-oriented programming languages by making them explicit; and (3) it points out areas that are and are not in need of change in Ada 83 to make object-oriented programming more natural in Ada 9X. In the next four sections I will address in turn the issues of object-oriented classes, mixins, self-reference and supertyping. The presentation is through a sequence of examples. This results in some overlap with that paper, but all the examples in the present paper are written entirely in Ada 83. I will return to considerations for Ada 9X in the last section of the paper.

Seidewitz, ED

Flight Dynamics Analysis System

Flight Dynamics Analysis System (FDAS) collection of computer programs provides environment for configuration and study of Ada software. Designed to support flight-dynamics research and analysis activities concerning software models, algorithms, and techniques used within flight Dynamics Division at Goddard Space Flight Center. Assists analysts and programmers in building, testing, and evaluating applications software by providing integrated support system for modification and reconfiguration of software. Includes capability of assembling reusable software components into applications programs, and reconfiguring assembled program after partially or fully completed. Developed in Ada for use on DEC VAX computer operating under VMS 4.3 or higher and version 1.3 or higher of VAX Ada Compilation System (ACS).

Tasaki, Keiji

Attitude determination error analysis - General model and specific application

This paper presents a comprehensive approach to filter and dynamics modeling for attitude determination error analysis. The discussion includes models for both batch least-squares and sequential estimators, a specific dynamic model for attitude determination error analysis of a three-axis stabilized spacecraft equipped with strapdown gyros, and the incorporation of general attitude sensor observations. An analyst using this approach to perform an error analysis chooses a subset of the spacecraft parameters to be 'solve-for' parameters, which are to be estimated, and another subset to be 'consider' parameters, which are assumed to have errors but not to be estimated. The result of the error analysis is an indication of overall uncertainties in the 'solve-for' parameters, as well as the contributions of the various error sources to these uncertainties, including those of errors in the a priori 'solve-for' estimates, of measurement noise, of dynamic noise (also known as process noise or plant noise), and of 'consider' parameter uncertainties. The analysis of attitude, star tracker alignment, and gyro bias uncertainties for the Gamma Ray Observatory spacecraft provide a specific example of the use of a general-purpose software package incorporating these models.

Markley, F. Landis

A general model for attitude determination error analysis

An overview is given of a comprehensive approach to filter and dynamics modeling for attitude determination error analysis. The models presented include both batch least-squares and sequential attitude estimation processes for both spin-stabilized and three-axis stabilized spacecraft. The discussion includes a brief description of a dynamics model of strapdown gyros, but it does not cover other sensor models. Model parameters can be chosen to be solve-for parameters, which are assumed to be estimated as part of the determination process, or consider parameters, which are assumed to have errors but not to be estimated. The only restriction on this choice is that the time evolution of the consider parameters must not depend on any of the solve-for parameters. The result of an error analysis is an indication of the contributions of the various error sources to the uncertainties in the determination of the spacecraft solve-for parameters. The model presented gives the uncertainty due to errors in the a priori estimates of the solve-for parameters, the uncertainty due to measurement noise, the uncertainty due to dynamic noise (also known as process noise or measurement noise), the uncertainty due to the consider parameters, and the overall uncertainty due to all these sources of error.

Markley, F. Landis

GOES dynamic propagation of attitude

The spacecraft in the next series of Geostationary Operational Environmental Satellites (GOES-Next) are Earth pointing and have 5-year mission lifetimes. Because gyros can be depended on only for a few years of continuous use, they will be turned off during routine operations. This means attitude must, at times, be determined without benefit of gyros and, often, using only Earth sensor data. To minimize the interruption caused by dumping angular momentum, these spacecraft have been designed to reduce the environmental torque acting on them and incorporate an adjustable solar trim tab for fine adjustment. A new support requirement for GOES-Next is that of setting the solar trim tab. Optimizing its setting requires an estimate of the unbalanced torque on the spacecraft. These two requirements, determining attitude without gyros and estimating the external torque, are addressed by replacing or supplementing the gyro propagation with a dynamic one, that is, one that integrates the rigid body equations of motion. By processing quarter-orbit or longer batches, this approach takes advantage of roll-yaw coupling to observe attitude completely without Sun sensor data. Telemetered momentum wheel speeds are used as observations of the unbalanced external torques. GOES-Next provides a unique opportunity to study dynamic attitude propagation. The geosynchronous altitude and adjustable trim tab minimize the external torque and its uncertainty, making long-term dynamic propagation feasible. This paper presents the equations for dynamic propagation, an analysis of the environmental torques, and an estimate of the accuracies obtainable with the proposed method.

Markley, F. Landis

Towards a general object-oriented software development methodology

Object diagrams were used to design a 5000 statement team training exercise and to design the entire dynamics simulator. The object diagrams are also being used to design another 50,000 statement Ada system and a personal computer based system that will be written in Modula II. The design methodology evolves out of these experiences as well as the limitations of other methods that were studied. Object diagrams, abstraction analysis, and associated principles provide a unified framework which encompasses concepts from Yourdin, Booch, and Cherry. This general object-oriented approach handles high level system design, possibly with concurrency, through object-oriented decomposition down to a completely functional level. How object-oriented concepts can be used in other phases of the software life-cycle, such as specification and testing is being studied concurrently.

Seidewitz, ED

Towards a general object-oriented software development methodology

An object is an abstract software model of a problem domain entity. Objects are packages of both data and operations of that data (Goldberg 83, Booch 83). The Ada (tm) package construct is representative of this general notion of an object. Object-oriented design is the technique of using objects as the basic unit of modularity in systems design. The Software Engineering Laboratory at the Goddard Space Flight Center is currently involved in a pilot program to develop a flight dynamics simulator in Ada (approximately 40,000 statements) using object-oriented methods. Several authors have applied object-oriented concepts to Ada (e.g., Booch 83, Cherry 85). It was found that these methodologies are limited. As a result a more general approach was synthesized with allows a designer to apply powerful object-oriented principles to a wide range of applications and at all stages of design. An overview is provided of this approach. Further, how object-oriented design fits into the overall software life-cycle is considered.

Seidewitz, ED