Space Systems
Abstract
A space system is created to operate in the environment of outerspace as opposed to a system which operates near the earth in the presence of the atmosphere. Compared to most places on earth, the space environment is extremely hostile to humans and to the systems humans build and use. Normal means of system support, such as ambient air-cooling, are no longer viable and so more difficult, costly methods must be used. To ensure that a system remains in space for a reasonable time, it must either attain orbit or escape velocity. Very expensive launch systems must be developed to achieve the speeds necessary to attain orbit or escape velocity. Thus, a fundamental problem is encountered: the cost of launching each pound of a system into space is very high; therefore, components of space systems have always remained small and lightweight. Power on-board is either supplied by heavy solar panels or electricity generators. The size and weight of these elements can be reduced by minimizing the power consumption of the space systems they support. Because space systems must operate in a remote environment where modifications are not easily made, space systems must be extremely reliable, to reduce the need for repair, and modular to make unavoidable repairs manageable. Safe operation is also required of these systems to protect humans and expensive hardware. These requirements and constraints combine to offer a daunting challenge to the space systems developer who must skillfully balance them against the needs of the user.
Other articles have thoroughly addressed the general problems facing software engineers and the practices established to solve those problems. The purpose of this article is to survey these unique problems applying to data-processing systems designed to operate in the space environment. This discussion will also include current engineering solutions to those problems and will provide actual examples. An introductory overview of the history of space data-processing systems will be followed by a discussion of space-system design considerations including: hardware constraints, compilers and languages, communications and interfaces, software complexity and functionality, environmental factors, and remote maintenance. A discussion of quality assurance processes to “space qualify” data processing systems will then be followed by sections addressing unique aspects of: testing and simulation, autonomy, and problem diagnosis. The article will be completed with a perspective on future challenges facing the engineers of software systems for space applications.