2004 – 2005 Françoise Simonot-Lion (simonot@loria.fr) Ingénieur Civil des Mines 3ème année Ingénierie des Systèmes d’Information – Module SI153 Qualité et Sûreté des Logiciels et des Systèmes ADL Architecture Description Language 2004 – 2005 Françoise Simonot-Lion (simonot@loria.fr)
Plan Pourquoi des ADL? Généralités sur les ADL Principes des ADL Principaux ADL Exemples AADL AIL_Transport et EAST-ADL Croissance etn embarquée : +10% Coût de l’etn > coût du groupe moto-propulseur Part du logiciel : croissance exponentielle (10MO en 2004) Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Pourquoi des ADL? Contraintes de développement des systèmes embarqués critiques Multi-partenaires Car manufacturers Suppliers Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Pourquoi des ADL? Contraintes de développement des systèmes embarqués critiques Échange d’informations sur le système au cours du développement (cahier des charges vs recettes) Réutilisabilité Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Pourquoi des ADL? Contraintes de développement des systèmes embarqués critiques Obligation de prouver des propriétés (certification / réglementation / normalisation) Temps Sûreté de fonctionnement Qualité Optimisation Code Matériel Consommation de ressources coût Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Pourquoi des ADL? Modèle classique de développement Construction de modèles Passage d’une étape à l’autre Validation tool Test generation Specification Tool Coding - realisation System specification Design Validation Integration Test equipement Validation Tool Allocation Tool Performance Evaluation Tool Calibration Tool Code Code Inspector Code Generator Construction de modèles Cohérence des modèles Traçabilité Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Pourquoi des ADL? Modèle classique de développement Pas de correspondance automatique entre étapes du développement Pas de formalisation systématique des entrées et sorties de chaque étape Pas de description formelle des données échangées Modèles faits au « coup par coup » : incohérences, pertes d’informations entre les étapes ou lors de la modélisation Techniques empiriques – au mieux standards internes à l’entreprise Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Pourquoi des ADL? Modèle proposé de développement Validation tool Test generation Specification Tool Coding - realisation System specification Design Validation Integration Test equipement Calibration Tool Code Code Inspector Code Generator Validation Tool Allocation Tool Performance Evaluation Tool Une approche formelle qui couvre le cycle de développement Architecture Description Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Généralités sur les ADL Architecture Description Language Langages informatiques Langages déclaratifs Décrits à l’aide d’une grammaire (BNF, MOF/UML, …) Syntaxe et sémantique Ils décrivent de manière formelle une architecture de système sous ses aspects : Exigences Fonctionnelle Matérielle Logicielle Opérationnelle Les architectures représentées dans ces langages peuvent être manipulées par des outils informatiques Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Généralités sur les ADL Catégories d’ADL Syntaxe textuelle et / ou graphique Associé ou non à des outils de conception / validation Permet de représenter Soit une architecture logicielle, Soit une architecture système (matériel + logiciel) Génériques ou spécialisés Prototypes de recherche ou intégrés dans des démarches industrielles Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principes généraux des ADL Vision « gros grain » Décrire une application à un niveau d’abstraction tel qu’on puisse faire abstraction des problèmes d’implantation (codage) en extraire des éléments réutilisables disposer d’une notation suffisamment précise pour vérifier des propriétés de cohérence de la structure de l’application La plupart sont utilisés pour des architectures logicielles abstraction faite d’une distribution et d’une implantation du code Certains d’entre eux permettent la spécification d’attributs temporels voire de modélisation de gestionnaires de ressources à l’exécution Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principes généraux des ADL Trois concepts Composant : entité (active ou inactive) du système Un composant est visible et manipulable uniquement par son interface (séparation entre interface et sa réalisation) Connecteur : permet de spécifier les interactions entre les composants Configuration / connexion : interconnexion de composants via des connecteurs pour réaliser une fonctionnalité Styles architecturaux ou modèles de référence (exemple, client / serveur, blackboard, …) [ Machines d’exécution ] Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principaux ADL RAPIDE, Université de Stanford (1995) Styles architecturaux Hiérarchisation des composants Composant : spécification de leur comportement interne par une abstraction du code (comportement décrits par le formalisme des POSETS) Connexion par l’intermédiaire de relation entre services définis à l’interface (~connecteurs) Reconfiguration dynamique Machines d’exécution (simulation – observation de traces) – aspects fonctionnels Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principaux ADL WRIGHT, Université Carnegie – Mellon de Pittsburgh (1997) Styles architecturaux Hiérarchisation des composants Composant : spécification de leur comportement interne par une abstraction du code - CSP Sémantique des interfaces (CSP – Hoare 1985) Connexion par l’intermédiaire de connecteurs (composants particuliers - protocoles) Configuration statique Analyse d’architectures par exploration du graphe de classes – aspects fonctionnels Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principaux ADL DARWIN (1995), Imperial College de Londres Pas de styles architecturaux Reconfiguration dynamique Hiérarchisation des composants Composant : boîte noire dont on ne spécifie que les interfaces Connexion par l’intermédiaire de relation entre services définis à l’interface (~connecteurs) pas d’exploitation du modèle Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principaux ADL UNICON Pas de styles architecturaux Hiérarchisation des composants Composant : boîte noire dont on ne spécifie que les interfaces Connexion par l’intermédiaire de connecteurs prédéfinis (composants particuliers - protocoles) Configuration statique Modélisation du support exécutif Vérification de cohérence d’une architecture (propriétés des interfaces) Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principaux ADL MetaH Systèmes de contrôle – commande (développé par Honeywell – DARPA – 1991) Syntaxe textuelle et graphique Pas de styles architecturaux Hiérarchisation des composants (macro-composants) Composants : spécification du comportement interne par le code source à exécuter Connexion directe entre ports Configuration statique / Modélisation des modes de fonctionnement Modélisation du support exécutif (centralisé) Analyse d’ordonnançabilité des tâches – Analyse de sûreté de fonctionnement Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Principaux ADL BASEMENT Systèmes embarqués dans l’automobile Pas de styles architecturaux Pas de hiérarchisation des composants Composant : Spécification de leur comportement interne par une abstraction du code Connexion par l’intermédiaire de connecteurs (composants particuliers - protocoles) Configuration statique Modélisation du support exécutif Analyse d’ordonnançabilité des tâches et des messages Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Systèmes embarqués dans l’avionique, l’automobile, l’aérospatiale, les systèmes autonomes Repose sur MetaH Couvre les architectures opérationnelles architectures logicielles (tâches) et les architectures de communication architectures matérielles multi-processeurs et distribuées architectures fermées (pas de création dynamique d’acteurs) Standardisation en cours (2001 - …) SAE (Society of Automotive Engineers - www.sae.org/) Voir http: //www.laas.fr/FERIA/SVF/WADL04/presentations.php Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Description de composants et de leur organisation Hiérarchisation de composants (composition récursive) Composants – sémantique précise system, data, process, thread, memory, processor, bus, device Interfaces et interactions complétement définies Flux de données et d’événements, appel / retour synchrone, accès partagé Plusieurs protocoles d’ordonnancement supportés Modélisation possible des transitions de modes de marches (commutation entre architectures statiquement définies) Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Tout composant est décrit sur deux niveaux : Description de l’interface fonctionnelle du composant (ce qui est vu par les couches de haut niveau) Description de l’implémentation du composant (structure interne, propriétés, comportement du composant) Un composant décrit par son interface « externe » peut correspondre à plusieurs « implémentations » Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Catégories de composants – composants applicatifs System : organisation hiérarchique de composants Process : espace d’adresses virtuelles protégées Thread : unité ordonnançable Périodique, apériodique, sporadique, « background » Subprogram : code séquentiel qui peut être « appelé » Point d’entrée d’un thread ou méthode classique Data : données pouvant être partagées Propriétés d’accès Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Catégories de composants – composants « plate-forme » Memory : fournit un moyen de stocker des données ou un code Device : interface avec l’environnement externe Processor : fournit le service d’exécution et d’ordonnancement des « threads » Bus : fournit le support d’échange entre des composants « plate-forme » Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Interactions et flux entre composants Port :transfert directionnel de données ou de contrôle Data port : port de données (pas de file) Event port : port d’événements Event data port : file de messages Immediate connection Delayed connection Port d’entrée Port de sortie Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Flux flux F1 Flow Exemple : spécification des flux F1 et F2 (vue externe) System S1 I O1 O2 Flow path F2 Flow path F1 spécification d’implémentation (vue interne) Flow path F3 Flow path F4 flux F1 System implementation S1.impl1 I O1 O2 Process P1 Process P2 I1 I2 OP1 OP2 C1 C2 C3 Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Propriétés Permet de caractériser un composant période d’un thread, … pire temps d’exécution d’un sous-programme, … échéance sur un flux de bout en bout, … Pour chaque catégorie, un ensemble de type de propriétés est prédéfinie On peut ajouter des types de propriétés à chaque catégorie de composant Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Gestion des fautes et modes de marche Spécification de manière non ambiguë : La redondance passive ou active de composants Un partage continu de variable d’état Un mécanisme de vote majoritaire … Spécification formelle des changements de configuration Chaque configuration est définie statiquement Le coût d’un changement est spécifié L’événement de changement est spécifié Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AADL Outils et extensions Un outil : OSATE Eclipse Release 3 Réalise la vérification syntaxique et sémantique des modèles Text < -- > XML Éditeur (textuel et graphique) Les outils d’analyse peuvent se « connecter » via XML ou Java (AADL Object API) – compatibilité à AADL Une extension : COTRE (http://www.laas.fr/FERIA/SVF/WADL04/presentations.php) Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL AIL_Transport / EAST - ADL ADL dédiés aux systèmes embarqués dans l’automobile AIL_Transport : ministère de l’industrie, France (1999 – 2001) – industriels et laboratoires EAST – ADL : Projet européen ITEA EAST-EEA (2001 – 2004) – industriels et laboratoires (www.east-eea.net/docs) Représentation d’un système embarqué dans l’automobile à toute étape de son développement Traçabilité Consistence entre modèles et artefacts produits à diverses étapes Possibilité de génération automatique de modèles pour les activités de Validation & Vérification Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Niveaux d’abstraction Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Vues sur le système Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Vehicle Feature Model Description des caractéristiques visibles par l’utilisateur cahier des charges du système variantes Une instance rassemble toutes les autres vues sur un système donné Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Functional Analysis Architecture Description des fonctions du système Supporte une description par niveaux de raffinement Objets Objets « Analysis Function » Interaction par des objets « Function Port » Modèle de comportement associé aux fonctions Pas de modèles de comportement associé aux liens entre fonctions Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Functional Design Architecture Description de l’application du point de vue logiciel Supporte une description par niveaux de raffinement Objets Objets « Composite Software Function » Objets feuilles « Elementary Software Function » Interaction par des objets « Signal Function Port » un objet « Connector Signal » (lien Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Functional Design Architecture « Elementary Software Function » Modèle d’exécution De la fonction Entre fonction (contrainte « Precedes ») Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Functional Design Architecture « Elementary Software Function » Modèle d’exécution De la fonction Entre fonction (contrainte « Precedes ») Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Function Instance Model Décrit les composants logiciels du système de manière à pouvoir les déployer dans des trames gérées par des protocoles et des tâches gérées par un OS Instancie les objets contenus dans une « Functional Design Architecture » Représentation non structurée Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Function Instance Model Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Hardware Architecture Décrit les composants matériels (architecture informatique support) du système Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Platform Model Décrit les composants de gestion des ressources de la plate-forme matérielle Ordonnanceurs Protocoles Mécanismes des composants middleware (frame packing, filttrage, …) … Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Allocation Model Décrit l’architecture opérationnelle en termes de tâches, trames, buffers pour les communications internes Se spécifie à l’aide d’objets « Deployment » Cf AADL Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Allocation Model Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Allocation Model Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Modélisation des exigences Objets « EFeature » : fonctionalités du système Objets « Interaction » : coopération entre les fonctionalités du système (disjonction, enchaînement, protocoles, …) Objets « Design Constraint » : tout ce qui contraint la recherche d’une solution Coût Standards d’entreprise (micro-contrôleurs, réseaux, …) Contraintes d’allocation des composants réalisant une fonctionnalité Objets « Quality Requirement » : propriétés non fonctionnelles attendues du système Performances, SdF : sécurité, fiabilité, … Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Validation et Vérification (V&V) Vérification / validation de propriétés fonctionnelles de propriétés non fonctionnelles (cf. Quality Requirement) Méthodes Analytiques Simulations Tests Résultats Déterministes Statistiques Probabilistes Génération automatique des modèles nécessaires grâce à la sémantique du langage Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Exemples d’ADL EAST - ADL Validation et Vérification (V&V) – modélisation (cf profile Testing Profile UML 2.0) Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement
Architecture Description Languages Conclusions Architectures logicielles architectures de systèmes Monde des systèmes embarqués complexes et contraints Intérêt économique fort (réutilisabilité, traçabilité, approches par composants) Intérêt en termes de réglementation Favorise les activités de V&V Favorise la documentation Favorise des échanges formalisés entre partenaires Ecole des Mines de Nancy ISI – SI153 Sûreté de fonctionnement