Space Technology Special Report - Version B. July 2023 - 18

Flight Software
unit tests, and requirements. From
these models, rich and precise
documentation is generated alongside
the components' structural code,
guaranteeing an implementation that
always adheres faithfully to the design.
Left to the developers is the task of
defining the software's behavior by
filling in designated subprograms with
hand-written code. This paradigm
has proven highly effective, with a
remarkable 85 percent of the code
for CLARREO generated from these
models, leaving only 15 percent
to be implemented by hand.
While the design of Adamant
provides a well-defined pattern
for direct code reuse, to achieve
the goals of high performance and
reliability, LASP engineers recognized
the need to pair the framework
with a programming language
that aligned with these objectives.
Although the majority of in-house
flight software at LASP was coded
in C or C++, the team began a trade
study to explore alternatives. In
particular, Ada was suggested by one
senior engineer, even though it was
unfamiliar to the rest of the team.
To facilitate thorough evaluation,
prototypes of Adamant were
implemented in both C++ and Ada.
With a C++ background, the team was
able to get up to speed and begin
writing effective Ada within a few
weeks. After a six month trial period,
testing both systems in parallel, the
team unanimously decided to embrace
Ada for two compelling reasons.
First, Ada offers error prevention
features not available in C++, which
the developers enjoyed leveraging.
Second, Ada includes a bare metal
multi-tasking runtime, empowering
the software to handle concurrent
tasks without the need to manage,
configure, and interface with a realtime
operating system (RTOS).
What is Ada
The Ada programming language
emerged in the 1970s as a response
to the growing demand for a modular
and hardware-independent language.
18 JULY 2023
The Climate Absolute Radiance and Refractivity Observatory Pathfinder (CLARREO-PF) is an
instrument payload that will measure reflected solar radiation at an unprecedented level of
accuracy. (Image: NASA)
SPACE TECHNOLOGY SPECIAL REPORT
Ada was designed to prioritize
software correctness, which led to
its widespread adoption for safetycritical
systems during the 1980s and
early 1990s. The language's emphasis
on readability, maintainability, and
rigorous type checking made it
an attractive choice, especially for
industries where software failures
could have disastrous consequences.
However, as time went on, the
allure of new languages like C++
began to rise. These languages
offered greater freedom and
flexibility, compared to the strictness
of Ada, and were more suitable for
general-purpose programming,
leading to their widespread
adoption in various domains.
As a result, Ada gradually fell out of
favor for most mainstream software
development, which, surprisingly,
includes the majority of flight software
developed for NASA projects today.
Languages like C++ try to stay out of
the way of the programmer, trusting
them to create correct code. This
paradigm might work except that
software developers, like all humans,
make mistakes. So instead of using
a language like Ada, NASA projects
often augment their use of error-prone
languages with cumbersome process,
external static analyzers, and stringent
coding standards. The advantage of an
Ada-centric process lies in its ability
to expose software defects at an early
stage, without a host of external tools,
because error detection features are
implemented in the language itself.
Bugs are either prevented or spotted
before the code is integrated into a
larger system, where troubleshooting
becomes much more costly.

Space Technology Special Report - Version B. July 2023

Table of Contents for the Digital Edition of Space Technology Special Report - Version B. July 2023

Space Technology Special Report - Version B. July 2023 - Cov1
Space Technology Special Report - Version B. July 2023 - Cov2
Space Technology Special Report - Version B. July 2023 - 1
Space Technology Special Report - Version B. July 2023 - 2
Space Technology Special Report - Version B. July 2023 - 3
Space Technology Special Report - Version B. July 2023 - 4
Space Technology Special Report - Version B. July 2023 - 5
Space Technology Special Report - Version B. July 2023 - 6
Space Technology Special Report - Version B. July 2023 - 7
Space Technology Special Report - Version B. July 2023 - 8
Space Technology Special Report - Version B. July 2023 - 9
Space Technology Special Report - Version B. July 2023 - 10
Space Technology Special Report - Version B. July 2023 - 11
Space Technology Special Report - Version B. July 2023 - 12
Space Technology Special Report - Version B. July 2023 - 13
Space Technology Special Report - Version B. July 2023 - 14
Space Technology Special Report - Version B. July 2023 - 15
Space Technology Special Report - Version B. July 2023 - 16
Space Technology Special Report - Version B. July 2023 - 17
Space Technology Special Report - Version B. July 2023 - 18
Space Technology Special Report - Version B. July 2023 - 19
Space Technology Special Report - Version B. July 2023 - 20
Space Technology Special Report - Version B. July 2023 - 21
Space Technology Special Report - Version B. July 2023 - 22
Space Technology Special Report - Version B. July 2023 - 23
Space Technology Special Report - Version B. July 2023 - 24
Space Technology Special Report - Version B. July 2023 - 25
Space Technology Special Report - Version B. July 2023 - 26
Space Technology Special Report - Version B. July 2023 - 27
Space Technology Special Report - Version B. July 2023 - 28
Space Technology Special Report - Version B. July 2023 - 29
Space Technology Special Report - Version B. July 2023 - 30
Space Technology Special Report - Version B. July 2023 - 31
Space Technology Special Report - Version B. July 2023 - 32
https://www.nxtbookmedia.com