DO-178

Les normes ED-12C et DO-178C (Software considerations in airborne systems and equipment certification) développées en commun et éditées respectivement par EUROCAE et RTCA Inc., fixent les conditions de sécurité applicables aux logiciels critiques de l'avionique dans l'aviation commerciale et l'aviation générale.
Elles précisent notamment les contraintes de développement liées à l'obtention de la certification d'un logiciel d'avionique.

Définition des niveaux de criticité 

Elles présentent 5 niveaux de criticité (de A à E) définis comme suit :

 Niveau A : Un défaut du système ou sous-système étudié peut provoquer un problème catastrophique - Sécurité du vol ou atterrissage compromis - Crash de l'avion
 Niveau B : Un défaut du système ou sous-système étudié peut provoquer un problème dangereux entraînant des dégâts sérieux voire la mort de quelques occupants
 Niveau C : Un défaut du système ou sous-système étudié peut provoquer un problème majeur entraînant un dysfonctionnement des équipements vitaux de l'appareil
 Niveau D : Un défaut du système ou sous-système étudié peut provoquer un problème mineur sans effet sur la sécurité du vol
 Niveau E : Un défaut du système ou sous-système étudié peut provoquer un problème sans effet sur la sécurité du vol

Ces 5 niveaux sont aussi appelés niveaux DAL (Design Assurance Level).

Les Niveaux sont établis par les études de sûreté de fonctionnement. Ces études fixent alors le niveau DAL pour le matériel et le logiciel conformément aux normes de sécurité (Eurocae ED-79 et SAE ARP4754 "Certification considerations for Highly-Integrated and Complex Aicraft Systems") ou directives de l'avionneur (ABD100, ABD200,...). Le niveau DAL d'un sous-système peut être différent du niveau système à la condition que le niveau DAL du système soit atteint par une architecture matérielle/logicielle adéquate.

Objectifs à atteindre 

Plus le niveau de criticité est proche du niveau A, plus le nombre d'objectifs à tenir est élevé. Ainsi :

 Niveau E :
Le développement logiciel n'est soumis à aucune contrainte particulière.
 Niveau D :
Le logiciel doit être documenté ; la liste de documents à fournir est fixée par la norme (voir plus bas).
Préalablement au développement, des plans doivent être établis pour fixer les méthodes de développement, de vérification, de gestion de configuration, d'assurance qualité.
Il faut assurer et vérifier la traçabilité entre les spécifications du système, les spécifications de haut niveau du logiciel, et les vérifications.
Tout ce qui est spécifié doit être formellement vérifié : la couverture fonctionnelle doit être assurée. Les documents doivent aussi être formellement vérifiés.
Le logiciel doit être géré en configuration, par exemple toutes les évolutions du code source doivent être justifiées
Un service Qualité indépendant doit assurer le respect de la norme en inspectant les sorties du cycle de vie du logiciel. 
 Niveau C : en plus des contraintes du niveau D :
Des règles de développement doivent être fixées au préalable (sur les phases de spécification, conception et codage)
Les contraintes de traçabilité et de vérification s'appliquent également aux phases de conception et de codage du logiciel.
Les exigences de bas niveau (ou exigences de conception) doivent être formellement vérifiées.
La couverture structurelle, ou couverture de code, doit être vérifiée et analysée : toutes les instructions du code doivent avoir été exécutées et testées, tous les écarts doivent être justifiés. Ces contraintes amènent souvent à devoir passer des tests unitaires.
 Niveau B : en plus des contraintes du niveau C :
 La couverture de code au niveau "décision" est requise. 
 Les activités de développement et de vérification doivent être confiées à des équipes indépendantes.
 Niveau A : en plus des contraintes du niveau B :
 La couverture de code au niveau "condition"/"décision" est requise.

Documents à fournir 

Les processus liés au développement de logiciels embarqués aéronautiques soumis aux normes ED-12C / DO-178C s'accompagnent de l'édition de plusieurs documents (les titres sont donnés à titre indicatif) :

Avant le développement, phase de planification :
 Plan des aspects logiciels relatifs à la certification : en particulier ce document précise le niveau de criticité retenu, et par quels moyens on prévoit de remplir les objectifs des normes ED-12C / DO-178C
 Plan de développement logiciel
 Plan de vérification du logiciel
 Plan de gestion de configuration du logiciel
 Plan d'assurance qualité du logiciel
 Règles de spécifications du logiciel 
 Règles de conception du logiciel
 Règles de codage du logiciel

Concernant le processus de développement proprement dit :
 Spécifications des exigences du logiciel
 Description de la conception du logiciel 

Concernant le processus de vérification :
 Cas et procédures de vérification du logiciel
 Résultats de la vérification du logiciel :
 Résultats de tests unitaires
 Résultats de tests d'intégration
 Résultats de tests 
 Analyse de la couverture de code
 Revue de chaque document du logiciel

Concernant le processus de gestion de configuration :
 Index de la configuration du logiciel
 Index de l'environnement du cycle de vie du logiciel

Concernant le processus d'assurance qualité :
 Enregistrements relatifs à la qualité
 Compte-rendu de revue de conformité
 Résumé des travaux réalisés

Évolutions entre la DO-178B et la DO-178C 

La norme DO-178B a été publiée en 1992 et est utilisée depuis. En 2004, les groupes de travail EUROCAE WG71 et RTCA Special Committee 205 (SC-205) ont travaillé à sa mise à jour pour clarifier certains points du DO-178B et permettre l'intégration de nouvelles techniques de génie logiciel jugées suffisamment matures pour être utilisées dans les systèmes aéronautiques et leur certification. La section 3 de l'annexe A résume les points principaux qui ont notamment été modifiés ou ajoutés :
 Les aspects relatifs à la qualification des outils ont été retirés du DO-178C et placés dans un document dédié, le DO-330 « Software Tool Qualification Considerations ». Il y a désormais trois catégories d'outils qualifiés (au lieu de 2 dans la DO-178B) et les niveaux de qualification, désormais appelés TQL-1 à TQL-5, ne correspondent plus exactement aux DAL-A à DAL-E.
 De même, les aspects relatifs aux développement basés sur les modèles ont été placés dans un document dédié, le DO-331 « Model-Based Development and Verification Supplement to DO-178C and DO-278A ».
 De même, les considérations spécifiques aux développements orientés objets ont été placés dans un document dédié, le DO-332 « Object-Oriented Technology and Related Techniques Supplement to DO-178C and DO-278A ».
 La place des méthodes formelles dans la certification passe de 2 paragraphes dans le DO-178B à une annexe entière, le DO-333 « Formal Methods Supplement to DO-178C and DO-278A »
 Deux objectifs de certification sont apparus dans les tables aux DAL-A, DAL-B et DAL-C
 La taxonomie utilisée dans le DO-178C a été clarifiée par rapport à celle du DO-178B (nouvelle définition des « exigences dérivées » et du « MC/DC »...)
 Les errata du DO-178B ont été intégrées au DO-178C.
 Les « Parameter Data Item File » sont une nouveauté du DO-178C.

Révisions du texte 

 DO-178 : 01/1982
 DO-178A : 01/03/1985
 DO-178B : 01/12/1992
 DO-178C : 01/05/2012

Voir aussi 

Cette norme possède son équivalent dans le domaine du développement électronique, connue sous l'identifiant : ED-80 ou DO-254 "Design Assurance Guidance for Airborne Electronic Hardware" développées en commun par EUROCAE et RTCA.

Cette norme est complétée par un document « Foire aux Questions sur le DO178C », lui aussi publié par RTCA sous le nom DO-248C "Additional Information on Software Considerations in Airborne Systems and Equipment Certification".

La norme parente à ces deux normes est une recommandation relative au traitement des analyses de sécurité en aéronautique : ED-79 /  "Certification considerations for Highly-Integrated and Complex Aicraft Systems".

Notes et références

Liens externes 
 DO-178C Réglementation pour le développement de logiciels dans le secteur aéronautique (Verifysoft)
 DO-178B to DO-178C: Changes and Improvements (Frederic Pothon - 2012)

Avionique
Norme RTCA