Skip to content

Commit 03844c2

Browse files
authored
Merge pull request #1295 from gusthoff/content/adacore-technologies-for-airborne-software/editorial/review/20251226
Editorial change: replace by `footbibliography`
2 parents 0f1e73a + e37d10a commit 03844c2

File tree

14 files changed

+114
-71
lines changed

14 files changed

+114
-71
lines changed

content/booklets/adacore-technologies-for-airborne-software/chapters/analysis.rst

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ embedded systems; and Ada's low-level facilities, which allow the
524524
programmer to specify target-specific representations for data types
525525
(including the bit layout of fields in a record, and the values for
526526
enumeration elements). Further information on features that contribute
527-
to safe software may be found in :cite:p:`Barnes_Brosgol_2015`.
527+
to safe software may be found in :footcite:p:`Barnes_Brosgol_2015`.
528528

529529
In summary, Ada's benefits stem from its expressive power, allowing
530530
the developer to specify the needed functionality or to constrain the
@@ -1076,7 +1076,7 @@ AdaCore tools and the Ada language.
10761076
* A project using a C codebase can incrementally introduce Ada or
10771077
SPARK. Ada has standard support for interfacing with C, SPARK can be
10781078
combined with C (with checks at the interfaces)
1079-
:cite:p:`Kanig_Ochem_Comar_2016`, and AdaCore's :index:`GNAT Pro Common
1079+
:footcite:p:`Kanig_Ochem_Comar_2016`, and AdaCore's :index:`GNAT Pro Common
10801080
Code Generator` compiles a SPARK-like subset of Ada into C (for use
10811081
on processors lacking an Ada compiler). C projects can thus
10821082
progressively adopt higher-tier languages without losing the
@@ -1470,7 +1470,7 @@ VxWorks 6 Cert, Lynx178, PikeOS) as well as bare metal configurations,
14701470
for a wide range of processors (such as PowerPC and ARM).
14711471

14721472
The Ada language helps reduce the risk of introducing errors during
1473-
software development (see :cite:p:`Black_et_al_2011`). This is
1473+
software development (see :footcite:p:`Black_et_al_2011`). This is
14741474
achieved through a combination of specific programming constructs
14751475
together with static and dynamic checks. As a result, Ada code
14761476
standards tend to be shorter and simpler than C code standards, since
@@ -1976,7 +1976,7 @@ the outcome of the two tests is different.
19761976

19771977
In the general case, the MC/DC criterion for a decision with n
19781978
conditions requires n+1 tests, instead of 2\ :sup:`n`. For more
1979-
information about MC/DC, see :cite:p:`Hayhurst_et_al_2001`.
1979+
information about MC/DC, see :footcite:p:`Hayhurst_et_al_2001`.
19801980

19811981
.. index:: GNATcoverage
19821982
.. index:: single: Structural code coverage; GNATcoverage
@@ -3326,7 +3326,7 @@ requirements, and this may be appropriate for some critical kernel
33263326
modules. (A description of how SPARK may be introduced into a project
33273327
at various levels, depending on the system's assurance requirements,
33283328
may be found in a booklet co-authored by AdaCore and Thales
3329-
:cite:p:`AdaCore_Thales_2020`.) Since subprogram pre- and postcondition
3329+
:footcite:p:`AdaCore_Thales_2020`.) Since subprogram pre- and postcondition
33303330
contracts often express low-level requirements, some low-level
33313331
requirements-based testing may be replaced by formal proofs as
33323332
described in the |do-333| Formal Methods supplement to |do-178c|.
@@ -4162,3 +4162,10 @@ in this manner, completeness of verification is ensured.
41624162

41634163
The only remaining activity is to check that the PDI instance value
41644164
complies with the system configuration.
4165+
4166+
4167+
.. only:: builder_html
4168+
4169+
.. rubric:: Bibliography
4170+
4171+
.. footbibliography::

content/booklets/adacore-technologies-for-airborne-software/chapters/bibliography.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.

content/booklets/adacore-technologies-for-airborne-software/chapters/introduction.rst

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ satisfy various objectives of the standards. Many of the advantages
1313
of AdaCore's products stem from the software engineering support found
1414
in the Ada programming language, including features (such as
1515
contract-based programming) introduced in Ada\ |nbsp|\ 2012
16-
:cite:p:`ISO_IEC_2012`. Other advantages draw directly from the
17-
formally analyzable SPARK subset of Ada :cite:p:`AdaCore_Altran_2020`,
18-
:cite:p:`Dross_2022`, :cite:p:`Chapman_et_al_2024`. As a result, this
16+
:footcite:p:`ISO_IEC_2012`. Other advantages draw directly from the
17+
formally analyzable SPARK subset of Ada :footcite:p:`AdaCore_Altran_2020`,
18+
:footcite:p:`Dross_2022`, :footcite:p:`Chapman_et_al_2024`. As a result, this
1919
document identifies how Ada and SPARK contribute toward the
2020
development of reliable software. AdaCore personnel have played key
2121
roles in the design and implementation of both of these languages.
@@ -105,3 +105,10 @@ or technique is introduced, it's important to open a discussion with
105105
AdaCore and the designated authority to confirm its acceptability. The
106106
level of detail in the process description provided in the project
107107
plans and standard is a key factor in gaining acceptance.
108+
109+
110+
.. only:: builder_html
111+
112+
.. rubric:: Bibliography
113+
114+
.. footbibliography::

content/booklets/adacore-technologies-for-airborne-software/chapters/standards.rst

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Overview
1111
"Every State has complete and exclusive sovereignty over the airspace
1212
above its territory." This general principle was codified in Article 1
1313
of the Convention on International Civil Aviation (the "Chicago
14-
Convention") in 1944 :cite:p:`ICAO_1944`. To control the airspace,
14+
Convention") in 1944 :footcite:p:`ICAO_1944`. To control the airspace,
1515
harmonized regulations have been formulated to ensure that the
1616
aircraft are airworthy.
1717

@@ -28,7 +28,7 @@ Operating Performance Standards" (MOPS) and a set of recognized
2828
|do-254| for Complex Electronic Hardware.
2929

3030
*DO-178C/ED-12C - Software Considerations in Airborne Systems and
31-
Equipment Certification* :cite:p:`RTCA_EUROCAE_2011` |mdash| was issued in
31+
Equipment Certification* :footcite:p:`RTCA_EUROCAE_2011` |mdash| was issued in
3232
December 2011, developed jointly by RTCA, Inc., and EUROCAE. It is the
3333
primary document by which certification authorities such as the FAA,
3434
EASA, and Transport Canada approve all commercial software-based
@@ -79,7 +79,7 @@ The |do-178c| document suite comprises:
7979
in other application domains.
8080

8181
Details on how to use these standards in practice may be found in
82-
:cite:p:`Rierson_2013`.
82+
:footcite:p:`Rierson_2013`.
8383

8484
.. index:: Design Assurance Level (DAL), Software level
8585

@@ -237,8 +237,8 @@ target computer, the other objectives of EOC verification may be
237237
satisfied by formal analysis. This is a significant added
238238
value. However, employing formal analysis to replace tests is a new
239239
concept in the avionics domain, with somewhat limited experience in
240-
practice thus far (see :cite:p:`Moy_et_al_2013` for further
241-
information). As noted in :cite:p:`Moy_2017`, a significant issue is
240+
practice thus far (see :footcite:p:`Moy_et_al_2013` for further
241+
information). As noted in :footcite:p:`Moy_2017`, a significant issue is
242242
how to demonstrate that the compiler generates code that properly
243243
preserves the properties that have been formally demonstrated for the
244244
source code. Running the integration tests both with and without the
@@ -270,3 +270,10 @@ Certification credit for using formal proofs is summarized in
270270
:align: center
271271

272272
SPARK contributions to verification objectives
273+
274+
275+
.. only:: builder_html
276+
277+
.. rubric:: Bibliography
278+
279+
.. footbibliography::

content/booklets/adacore-technologies-for-airborne-software/chapters/tools.rst

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ for contract-based programming in the form of subprogram pre- and
3030
postconditions and type invariants) were added in the Ada 2012 version
3131
of the language standard, and a number of features to increase the
3232
language's expressiveness were introduced in Ada 2022 (see
33-
:cite:p:`ISO_IEC_2012`, :cite:p:`Barnes_Brosgol_2015`,
34-
:cite:p:`Barnes_2014`, :cite:p:`ISO_IEC_2022` for information about
33+
:footcite:p:`ISO_IEC_2012`, :footcite:p:`Barnes_Brosgol_2015`,
34+
:footcite:p:`Barnes_2014`, :footcite:p:`ISO_IEC_2022` for information about
3535
Ada).
3636

3737
The name *Ada* is not an acronym; it was chosen in honor of Augusta
@@ -199,7 +199,7 @@ additional OOP features including Java-like interfaces and traditional
199199
Ada is methodologically neutral and does not impose a distributed
200200
overhead for OOP. If an application does not need OOP, then the OOP
201201
features do not have to be used, and there is no run-time penalty.
202-
See :cite:p:`Barnes_2014` or :cite:p:`AdaCore_2016` for more details.
202+
See :footcite:p:`Barnes_2014` or :footcite:p:`AdaCore_2016` for more details.
203203

204204
.. index:: single: Ada language; Concurrent programming
205205

@@ -264,7 +264,7 @@ With its emphasis on sound software engineering principles, Ada
264264
supports the development of high-integrity applications, including
265265
those that need to be certified against safety standards such
266266
|do-178c| for avionics, CENELEC EN 50716:2023 for rail systems, and
267-
security standards such as the Common Criteria :cite:p:`CCDB_2022`.
267+
security standards such as the Common Criteria :footcite:p:`CCDB_2022`.
268268
Key to Ada's support for high-assurance software is the language's
269269
memory safety; this is illustrated by a number of features, including:
270270

@@ -358,7 +358,7 @@ cross-domain solutions.
358358

359359
The SPARK language has been stable over the years, with periodic
360360
enhancements. The 2014 version of SPARK represented a major revision
361-
(see :cite:p:`McCormick_Chapin_2015`), incorporating contract-based
361+
(see :footcite:p:`McCormick_Chapin_2015`), incorporating contract-based
362362
programming syntax from Ada 2012, and subsequent upgrades included
363363
support for pointers (access types) based on the Rust ownership model.
364364

@@ -399,7 +399,7 @@ Ease of Adoption
399399

400400
User experience has shown that the language and the SPARK Pro toolset
401401
do not require a steep learning curve. Training material such as
402-
AdaCore's online AdaLearn course for SPARK :cite:p:`Learn` can
402+
AdaCore's online AdaLearn course for SPARK :footcite:p:`Learn` can
403403
quickly bring developers up to speed; users are assumed to be experts
404404
in their own application domain such as avionics software and do not
405405
need to be familiar with formal methods or the proof technology
@@ -1122,3 +1122,10 @@ eliminating the need for manual input.
11221122
GNATdashboard fits naturally into a continuous integration
11231123
environment, providing users with metrics on code complexity, code
11241124
coverage, conformance to coding standards, and more.
1125+
1126+
1127+
.. only:: builder_html
1128+
1129+
.. rubric:: Bibliography
1130+
1131+
.. footbibliography::

content/booklets/adacore-technologies-for-airborne-software/conf.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
title=AdaCore Technologies for Airborne Software
33
author=Frédéric Pothon \\and Quentin Ochem
44
version=2.1
5-
bibtex_file=references.bib
5+
bibtex_file=references.bib

content/booklets/adacore-technologies-for-airborne-software/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,3 @@ booklet.
158158
AdaCore Tools and Technologies Overview <chapters/tools>
159159
Compliance with DO-178C / ED-12C Guidance: Analysis <chapters/analysis>
160160
Summary of contributions to DO-178C/ED-12C objectives <chapters/summary>
161-
Bibliography <chapters/bibliography>

content/booklets/adacore-technologies-for-railway-software/chapters/annex.rst

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -235,10 +235,3 @@ Annex D References
235235
~~~~~~~~~~~~~~~~~~
236236

237237
* D.50 Structure Based Testing
238-
239-
240-
.. only:: builder_html
241-
242-
.. rubric:: Bibliography
243-
244-
.. footbibliography::

content/booklets/adacore-technologies-for-railway-software/chapters/cenelec.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ and technologies:
149149
* Support tools and languages (sub-clause 6.7) |mdash| see
150150
:ref:`Railway_SW_tool-qualification` below.
151151

152-
As shown in :cite:`Railway_SW_Boulanger_Schön_2007`, for software applications the
152+
As shown in :footcite:p:`Railway_SW_Boulanger_Schön_2007`, for software applications the
153153
assessment process involves demonstrating that the software application
154154
achieves its associated safety objectives.
155155

@@ -340,7 +340,8 @@ referred to here as "tool qualification", and provides details on what
340340
needs to be performed and/or supplied.
341341
(The standard does not use a specific term for this process, but the
342342
"tool qualification" terminology from the airborne software standards
343-
|do-178c| :cite:`Railway_SW_RTCA_EUROCAE_2011a` and |do-330| :cite:`Railway_SW_RTCA_EUROCAE_2011b`
343+
|do-178c| :footcite:p:`Railway_SW_RTCA_EUROCAE_2011a` and |do-330|
344+
:footcite:p:`Railway_SW_RTCA_EUROCAE_2011b`
344345
is appropriate.)
345346

346347
.. index:: Tool classes
@@ -388,7 +389,7 @@ standard by also specifying the lifecycle phase that is relevant for each
388389
sub-clause.
389390
The steps shown indicate the requirements to be met and reflect the additional
390391
effort needed as the tool level increases; for further information, please see
391-
:cite:`Railway_SW_Boulanger_2015`, Chapter 9.
392+
:footcite:p:`Railway_SW_Boulanger_2015`, Chapter 9.
392393

393394

394395
.. .. figure:: ../images/table1.png

content/booklets/adacore-technologies-for-railway-software/chapters/introduction.rst

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ and also a normative process based on certification standards.
1313
In Europe, these standards are issued and maintained by CENELEC
1414
(European Committee for Electrotechnical Standardization).
1515
This document explains the usage of AdaCore's technologies in conjunction
16-
with |en-50128|:2011 :cite:`Railway_SW_CENELEC_2011` |mdash|
16+
with |en-50128|:2011 :footcite:p:`Railway_SW_CENELEC_2011` |mdash|
1717
*Railway applications - Communication, signalling and processing systems
1818
- Software for railway control and protection systems* |mdash|
1919
as modified by amendments
20-
|en-50128|/A1 :cite:`Railway_SW_CENELEC_2020a` and |en-50128|/A2 :cite:`Railway_SW_CENELEC_2020b`.
20+
|en-50128|/A1 :footcite:p:`Railway_SW_CENELEC_2020a` and |en-50128|/A2
21+
:footcite:p:`Railway_SW_CENELEC_2020b`.
2122
(For ease of exposition, the 2011 edition of the standard, as modified
2223
by the A1 and A2 amendments, will simply be referred to as |en-50128|.)
2324

@@ -31,19 +32,20 @@ standards:
3132

3233
.. index:: EN 50126
3334

34-
* |en-50126|-1 :cite:`Railway_SW_CENELEC_2017b` |mdash|
35+
* |en-50126|-1 :footcite:p:`Railway_SW_CENELEC_2017b` |mdash|
3536
*Railway applications - The specification and demonstration of reliability,
3637
availability, maintainability and safety (RAMS) - Part 1: Generic RAMS
37-
process* (subsequently modified by |en-50126|-1/A1 :cite:`Railway_SW_CENELEC_2024`)
38+
process* (subsequently modified by |en-50126|-1/A1
39+
:footcite:p:`Railway_SW_CENELEC_2024`)
3840

39-
* |en-50126|-2 :cite:`Railway_SW_CENELEC_2017c` |mdash|
41+
* |en-50126|-2 :footcite:p:`Railway_SW_CENELEC_2017c` |mdash|
4042
*Railway applications - The specification and demonstration of reliability,
4143
availability, maintainability and safety (RAMS): Part 2: systems approach
4244
to safety*
4345

4446
.. index:: EN 50129
4547

46-
* |en-50129| :cite:`Railway_SW_CENELEC_2018` |mdash|
48+
* |en-50129| :footcite:p:`Railway_SW_CENELEC_2018` |mdash|
4749
*Railway applications - Communication, signalling and processing systems -
4850
Safety related electronic systems for signalling*
4951

@@ -61,8 +63,8 @@ relate to software's role in the safety of a railway system:
6163

6264
.. index:: EN 50657
6365

64-
* |en-50657|:2017 :cite:`Railway_SW_CENELEC_2017a` as modified by amendment
65-
|en-50657|/A1 :cite:`Railway_SW_CENELEC_2023a` |mdash|
66+
* |en-50657|:2017 :footcite:p:`Railway_SW_CENELEC_2017a` as modified by amendment
67+
|en-50657|/A1 :footcite:p:`Railway_SW_CENELEC_2023a` |mdash|
6668
*Railways applications - Rolling stock applications - Software on Board
6769
Rolling Stock*
6870

@@ -75,7 +77,7 @@ relate to software's role in the safety of a railway system:
7577

7678
.. index:: EN 50716
7779

78-
* |en-50716|:2023 :cite:`Railway_SW_CENELEC_2023b` |mdash|
80+
* |en-50716|:2023 :footcite:p:`Railway_SW_CENELEC_2023b` |mdash|
7981
*Railway Applications - Requirements for software development*
8082

8183
This standard is a successor to |en-50128| and |en-50657|,
@@ -149,12 +151,14 @@ processes defined by the CENELEC railway standards.
149151
AdaCore's technologies can be used at all Safety Integrity Levels, from
150152
Basic Integrity to |sil4|. At lower levels, the full Ada language is suitable,
151153
independent of platform. At higher levels, specific subsets will be needed,
152-
for example the :index:`Ravenscar Profile` (:cite:`Railway_SW_Burns_et_al_2004`,
153-
:cite:`Railway_SW_McCormick_Chapin_2015`) for concurrency support with analyzable
154-
semantics and a reduced footprint, or the :index:`Light Profile`
155-
:cite:`Railway_SW_AdaCore_Web_UG_Cross` for a subset with no run-time library
154+
for example the :index:`Ravenscar Profile`
155+
(:footcite:p:`Railway_SW_Burns_et_al_2004`,
156+
:footcite:p:`Railway_SW_McCormick_Chapin_2015`) for concurrency support with
157+
analyzable semantics and a reduced footprint, or the :index:`Light Profile`
158+
:footcite:p:`Railway_SW_AdaCore_Web_UG_Cross` for a subset with no run-time library
156159
requirements. At the highest level (|sil4|) the SPARK language
157-
(:cite:`Railway_SW_McCormick_Chapin_2015`, :cite:`Railway_SW_AdaCore_Altran_2020`) and its
160+
(:footcite:p:`Railway_SW_McCormick_Chapin_2015`,
161+
:footcite:p:`Railway_SW_AdaCore_Altran_2020`) and its
158162
verification toolsuite enable mathematical proof of properties including
159163
correct information flow, absence of run-time exceptions, and, for the most
160164
critical code, correctness of the implementation against a formally

0 commit comments

Comments
 (0)