470 likes | 719 Views
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
E N D
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èmesADLArchitecture 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 ISI – SI153 Sûreté de fonctionnement
Pourquoi des ADL?Contraintes de développement des systèmes embarqués critiques • Multi-partenaires Car manufacturers Suppliers 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é 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 ISI – SI153 Sûreté de fonctionnement
Validation tool Test equipement System specification System Validation Test generation Specification Tool Validation Tool System Design System Integration Calibration Tool Allocation Tool Performance Evaluation Tool Coding - realisation Code Code Inspector Code Generator Cohérence des modèles Construction de modèles Pourquoi des ADL?Modèle classique de développement Construction de modèles Passage d’une étape à l’autre Traçabilité 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 ISI – SI153 Sûreté de fonctionnement
Validation tool Test equipement System specification System Validation Test generation Specification Tool Validation Tool System Design System Integration Calibration Tool Allocation Tool Performance Evaluation Tool Coding - realisation Code Code Inspector Code Generator Pourquoi des ADL?Modèle proposé de développement Une approche formelle qui couvre le cycle de développement Architecture Description 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 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 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 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 ] 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 internepar 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 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 internepar 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 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 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) 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 internepar 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 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 internepar 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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) ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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 » ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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 » ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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 ISI – SI153 Sûreté de fonctionnement
Flow path F1 I O1 Flow path F2 O2 System S1 flux F1 Process P1 I1 OP1 Flow path F3 C1 O1 I C2 C3 Process P2 O2 I2 Flow path F4 OP2 System implementation S1.impl1 Exemples d’ADLAADL • Flux • Flow Exemple : spécification des flux F1 et F2 (vue externe) spécification d’implémentation (vue interne) ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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é ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAADL • 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) ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLAIL_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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Niveaux d’abstraction ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Vues sur le système ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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é ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Functional Design Architecture • « Elementary Software Function » • Modèle d’exécution • De la fonction • Entre fonction (contrainte « Precedes ») ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Functional Design Architecture • « Elementary Software Function » • Modèle d’exécution • De la fonction • Entre fonction (contrainte « Precedes ») ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Function Instance Model ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Hardware Architecture • Décrit les composants matériels (architecture informatique support) du système ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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, …) • … ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Allocation Model ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Allocation Model ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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é, … ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - 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 ISI – SI153 Sûreté de fonctionnement
Exemples d’ADLEAST - ADL • Validation et Vérification (V&V) – modélisation (cf profile Testing Profile UML 2.0) ISI – SI153 Sûreté de fonctionnement
Architecture Description LanguagesConclusions • 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 ISI – SI153 Sûreté de fonctionnement