Cours d architecture logicielle. Philippe Lalanda



Documents pareils
Patrons de Conception (Design Patterns)

Projet Sécurité des SI

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

CLOUD CP3S SOLUTION D INFRASTRUCTURE SOUMIS À LA LÉGISLATION FRANÇAISE. La virtualisation au service de l entreprise. Évolutivité. Puissance.

Windows Internet Name Service (WINS)

Les modules SI5 et PPE2

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Alexis Lechervy Université de Caen. M1 Informatique. Réseaux. Filtrage. Bureau S3-203

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Solutions informatiques (SI) Semestre 1

Les principes de la sécurité

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Sage CRM. 7.2 Guide de Portail Client

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

GENERALITES. COURS TCP/IP Niveau 1

Enquête 2014 de rémunération globale sur les emplois en TIC

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Symantec Protection Suite Enterprise Edition Protection éprouvée pour les terminaux, la messagerie et les environnements Web

Chapitre 2 Rôles et fonctionnalités

Architectures en couches pour applications web Rappel : Architecture en couches

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Notre offre PCA/PRA

CA ARCserve Backup. Avantages. Vue d'ensemble. Pourquoi choisir CA

Le rôle Serveur NPS et Protection d accès réseau

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

CORBA. (Common Request Broker Architecture)

Qu'est-ce que le BPM?

Mise en place d une politique de sécurité

Redondance de service

1 LE L S S ERV R EURS Si 5

Sécurité des réseaux Firewalls

Comité sectoriel de la sécurité sociale et de la santé Section «Sécurité sociale»

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

DSCG : UE5 - Management des Systèmes d'information CARTE HEURISTIQUE...1 ARCHITECTURE PHYSIQUE...2

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Bibliographie. Gestion des risques

//////////////////////////////////////////////////////////////////// Administration bases de données

Linux sécurité des réseaux

WINDOWS SERVER 2003-R2

Fiche de l'awt La sécurité informatique

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

ITIL Gestion de la capacité

ANALYSE DE RISQUE AVEC LA MÉTHODE MEHARI Eric Papet Co-Fondateur SSII DEV1.0 Architecte Logiciel & Sécurité Lead Auditor ISO 27001

Sécurité du cloud computing

Conception des systèmes répartis

Les risques HERVE SCHAUER HSC

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

Sécurité et Firewall

Architecture d'entreprise : Guide Pratique de l'architecture Logique

MINISTÈRE DES SOLIDARITÉ ET DE LA COHÉSION SOCIALE

THEGREENBOW FIREWALL DISTRIBUE TGB::BOB! Pro. Spécifications techniques

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

dans un contexte d infogérance J-François MAHE Gie GIPS

GPIH - CCTP D AUDIT D INTRUSION ET D AUDIT DE LA PLATEFORME DE SECURITE GESTION ET PRESTATIONS INFORMATIQUES POUR L HABITAT GIE - GPIH

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Déploiement d un serveur courriel dédié pour entreprise

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

ALOHA Load Balancer 2.5. Guide de démarrage rapide. EXCELIANCE ALOHA 2.5 Guide de démarrage rapide 30/01/2008 1/17


Retrospect 7.7 Addendum au Guide d'utilisation

MEAD : temps réel et tolérance aux pannes pour CORBA

Glossaire. Acces Denied

HD Help-Desk** FIRST ICT User Certificate et connaissances techniques de base

NFP111 Systèmes et Applications Réparties

Module 0 : Présentation de Windows 2000

EN Télécom & Réseau S Utiliser VMWARE

Sécurité GNU/Linux. Iptables : passerelle

TAGREROUT Seyf Allah TMRIM

PREAVIS DE LA MUNICIPALITE AU CONSEIL COMMUNAL

PRINCIPES DE BASE DE LA SAUVEGARDE POUR LA PROTECTION DE VOS DONNÉES ET DE VOTRE ACTIVITÉ

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

DESCRIPTION DU COMPOSANT

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Installation d'un serveur DHCP sous Windows 2000 Serveur

Dispositif sur budget fédéral

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Fabriquant de Fabuleux logiciels

CESI Bases de données

Cours en ligne Développement Java pour le web

TD 2 Chapitre 4 : Support des Services et Serveurs. Objectifs : Maîtriser l'exploitation des tables de routage dynamique.

Le CLOuD COmpuTING 100% made IN france

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Migration vers le Libre

Extrait de Plan de Continuation d'activité Octopuce

Le filtrage de niveau IP

PERFORMANCE ET DISPONIBILITÉ DES SI

Ebauche Rapport finale

Transcription:

Cours d architecture logicielle Tactiques de conception Philippe Lalanda Philippe.lalanda@imag.fr

Rappel n Approches pour la conception n Identification des composants fonctionnels n dérivation à partir des exigences (langage naturel) n dérivation à partir de modèles d analyse (objet, fonctionnel) n Organisation et ajout de composants plus techniques n styles d architecture généraux n styles d architecture généraux par domaine n tactiques de conception n mesure de la cohésion et du couplage 2

Objectif de ce cours n Définir la notion d exigences non fonctionnelles n Présenter des tactiques de conception répondant aux besoins non fonctionnels n Développer des exemples 3

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 4

Architecture et propriétés non fonct. n L'architecture est critique pour l'atteinte de nombreuses propriétés non fonctionnelles n prises en compte lors de la conception n évaluées au niveau architectural n L'architecture, par elle même, ne peut assurer des propriétés non fonctionnelles n elle fournit les fondations n inutiles si la conception détaillée ne prend pas le relai 5

Dépendances n Pour les systèmes complexes, les propriétés ne peuvent jamais être réalisées en isolation n la réalisation d'une propriété a des impacts sur d'autres n parfois positifs n parfois négatifs! n Exemples n sécurité et robustesse : les systèmes les plus robustes ont le plus de failles n la plupart des propriétés ont des incidences négatives sur la performance 6

Les qualités du logiciel n Qualités attendues d un logiciel n Correction et robustesse n Performance n Disponibilité n Utilisabilité n Sécurité n Modifiabilité n Testabilité n Réutilisabilité Utilisateur Ingénieur n Il faut faire les bons compromis et assurer les niveaux de qualité choisis (but du Génie Logiciel) 7

Correction et robustesse n Un logiciel est correct lorsque son fonctionnement est consistent avec ses spécifications n Assume que le logiciel a été spécifié! n Assume que l on peut vérifier la correction d un logiciel! n La correction est une qualité nécessaire n La robustesse traite de la capacité d un logiciel à fonctionner lorsque l on sort de ses spécifications n C est une qualité nécessaire pour la plupart des systèmes non informatiques pas toujours en logiciel 8

Efficacité et performance n L efficacité est une qualité interne qui traite de la façon dont le logiciel utilise ses ressources (CPU, mémoire, ). n La performance est une qualité externe basée sur les exigences des utilisateurs (affecte l utilisabilité) n La performance se mesure souvent par le temps requis pour répondre à un événement. Elle dépend n du nombre de sources d'événements n du nombre de patterns d'arrivée des événements n Considérer la performance attendue très tôt et l évaluer (complexité des algos, simulations, ) 9

Disponibilité n Un logiciel est disponible lorsqu il est en état de fonctionner de façon correcte n La disponibilité d'un système est la probabilité qu'il fonctionne correctement quand il est sollicité Disponibilité = Temps moyen de fonct. Tps moyen de fonct. + tps moyen de réparation n Le niveau de disponibilité attendu doit être spécifié 10

Utilisabilité n L'utilisabilité est le niveau de facilité pour l'utilisateur d'effectuer une tâche et la qualité du support apporté n On considère les points suivants n apprentissage des fonctions n utilisation efficace du système n Consistance et prédictibilité du système n capacité à minimiser l'impact des erreurs n adaptation aux besoins de l'utilisateurs n amélioration de la confiance et de la satisfaction de l'utilisateur n Interfaces de plus en plus standards (Web) 11

Sécurité n Un système est sécurisé lorsqu'il est capable de résister à des utilisations non autorisées tout en fonctionnant nominalement n La sécurité est une mesure de la capacité d'un système à repousser des attaques n La sécurité est caractérisée par rapport à six points n La non répudiation n La confidentialité n L'intégrité n L'assurance n La disponibilité! n L'audit 12

Testabilité n La testabilité est la facilité avec laquelle on peut trouver les fautes d'un système n Pour tester un système, on doit pouvoir n contrôler les inputs d'un composant et son état interne n observer les outputs Système entrée 13

Maintenabilité (évolutions et réparations) n La maintenabilité fait référence au coût des changements n Un changement peut concerner tout aspect n les fonctionnalités n la plate-forme d'exécution (portabilité) n l'environnement d'interactions n les protocoles de communication n les propriétés non fonctionnelles, n 60% du coût d un logiciel n Maintenance corrective n Maintenance adaptative 14

Réutilisabilité n Cette propriété fait référence à la possibilité de réutiliser des parties du système pour en construire d'autres n La réutilisation peut aider à n réduire le time-to-market n réduire le coût n améliorer la qualité n Vers un marché des COTS (grand défi d aujourd hui) 15

Note n Il est intéressant de noter que ce sont des propriétés éminemment système n ne peuvent pas être considérées de façon uniquement locale n d'où la difficulté de les exprimer, de les traiter, de les satisfaire ensemble, 16

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 17

Notion de tactique n Une tactique est une stratégie locale qui a pour but de structurer un sous ensemble de composants n elle sous entend une organisation logique et une organisation dynamique n Une tactique ne structure pas l'ensemble du système n notion de style architectural 18

Tactiques pour la disponibilité n Rappelons que le but est d'assurer un fonctionnement nominal du système lorsqu'il est sollicité n Utilisation de tactiques pour n la détection de fautes n se rendre compte qu il y a une faute n le traitement des fautes n réparer la faute : retrouver un fonctionnement nominal n la prévention des fautes n éviter les fautes 19

Tactique de détection des fautes - 1 n Ping : un composant envoie un "ping" et attend un écho en retour avant une certaine échéance n utilisé au sein d'un ensemble de composants collaborant pour exécuter une tâche donnée n utilisé dans des architectures distribuées (client / serveur) n les détecteurs peuvent être organisés en hiérarchies n les détecteurs de haut niveau font des "pings" sur des détecteurs de plus bas niveau n moins coûteux en communication qu'un détecteur distant qui "ping" tous les processus Ça va? Internet Oui! Ça va? Oui! Oui! Ça va? 20

Tactique de détection des fautes - 2 n Heartbeat : un composant émet périodiquement un battement écouté par d'autres composants n "jusque là tout va bien " n si on manque un battement, on fait l'hypothèse que le composant émetteur est en faute n un battement peut également contenir des données Passerelle industrielle Ok Ok Ok Ok 21

Tactique de détection des fautes - 3 n Programmation d'exceptions n le principe est de répertorier les fautes possibles et de déclencher une exception lorsqu'une de ces fautes est rencontrées n note : une exception correspond à du code 22

Tactique de traitement des fautes - 1 n Redondance avec vote n plusieurs processeurs redondants reçoivent les mêmes inputs et envoient leurs outputs à un tiers. Si les résultats diffèrent : le tiers "vote" puis met en échec les processeurs "faux" n on peut voter à la majorité ou privilégier des composants n Remarques n les processus n'exécutent pas forcément les mêmes algos n pour les systèmes sensibles, on utilise des algorithmes différents sur plate-formes différentes Input Processeur 1 Processeur 2 Processeur 3 Output VOTE 23

Tactique de traitement des fautes - 2 n Redondance active n plusieurs processeurs redondants réagissent aux mêmes inputs en parallèle. On utilise une seule réponse, définie statiquement (souvent la première) n quand une faute survient, on change de composant n Remarques n cette solution est très rapide n elle ne résout pas le problème de la détection d'une faute n dans certains systèmes distribués, on applique la redondance à la communication (chemins parallèles) Input Processeur 1 Processeur 2 Processeur 3 Output 24

Tactique de traitement des fautes - 3 n Redondance passive n un seul composant réagit aux inputs et informent les composants redondants du nouvel état courant n quand une faute survient, on change de composant n Remarques n on peut changer de primaire de façon périodique pour accroître la disponibilité n le primaire est en charge de la synchronisation des redondants Input Processeur 1 Processeur 2 Processeur 3 Output FAUTE 25

Tactique de traitement des fautes - 4 n Plate-forme de secours n une plate-forme complète est configurée pour remplacer plusieurs composants en faute n le système primaire sauvegarde ses données et ses états régulièrement sur une base persistante n Remarques n quand une faute survient, il faut rebooter la plate-forme et initialiser l'état n le changement dure quelques minutes 26

Tactique de prévention des fautes - 1 n Retrait d'un composant n on retire un composant pour effectuer des opérations de maintenance prédictive n le retrait peut être automatique et être géré au niveau architectural n si le retrait est manuel, le système doit être conçu pour le supporter n Exemple n reboot périodique d'un composant pour éviter des fuites de mémoire 27

Tactique de prévention des fautes - 2 n Mise en place de transactions n une transaction permet de gérer de façon globale un ensemble d'actions (notamment en cas d'annulation) n Avantages n assure la cohérence des données en cas d'échec d'une étape n permet d'éviter les collisions en cas d'activités parallèles Transaction 28

Résumé des tactiques de disponibilité Disponibilité Note : tactiques de niveau architectural Détection des fautes Traitement des fautes Prévention des fautes Ping Heartbeat Exception Redondance - vote - active/passive Plate-forme de secours Retrait Transaction Gestion de processus 29

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 30

Modifiabilité n Rappelons que le but est de contrôler le temps et le coût nécessaires pour réaliser, tester et déployer les modifications n Utilisation de tactiques pour n localiser les modifications n éviter les effets de bords n différer les "bindings" 31

Tactique pour localiser les modifications - 1 n Forte cohésion des composants n les composants doivent regrouper des fonctionnalités sémantiquement proches n ils doivent être cohérents et complets (limitation des dépendances sémantiques) n une sous-tactique est d'abstraire les services communs n utilisation de middlewares n utilisation de frameworks Bus à message 32

Tactique pour localiser les modifications - 2 n Identification des évolutions potentielles n il s'agit de limiter le nombre de composants à modifier pour les évolutions les plus probables n Remarques n cette tactique ne se préoccupe pas de sémantique n peut s opposer à la cohésion! n elle est difficile à utiliser n bien anticiper est ardu (et coûteux en temps) n un écueil classique est de trop compliquer 33

Tactique pour localiser les modifications - 3 n Généralisation des composants n il s'agit ici de concevoir des composants très génériques assurant plus de fonctionnalités que nécessaire n quand un composant est très général, les changements concernent plutôt les paramètres d'entrée que l'intérieur du composant n Remarques n on n'anticipe pas les changements, on les inclut n complexe et coûteux 34

Tactique pour éviter les effets de bord - 1 n Masquer l'information n définition de données privées non accessibles via les ports de communication des composants n séparation des interfaces et des implantations n Remarques n le but est d'isoler les modifications au niveau des données privées (pas de modifications d'interface qui entraîne de modifier d'autres composants) Accès au composant Implantation masquée 35

Tactique pour éviter les effets de bord - 2 n Faible couplage entre les composants n limiter le nombre de communication n privilégier des communications de données par valeur n Remarque n cette tactique est liée à "cohérence et complétude sémantique" Non Oui!! 36

Tactique pour éviter les effets de bord - 3 n Utilisation d'intermédiaires entre les composants n Types d'intermédiaires n une façade, un pont, un proxy peuvent convertir les syntaxes de services n un broker peut masquer les modifications d'identité n un serveur de nom permet de modifier les localisations n une factory peut créer des instances au besoin 37

Tactiques pour différer les bindings n Tous mécanismes permettant de mettre les composants en relation de façon dynamique n Exemples n mécanismes de plug&play (introduction de composants broker, registry, etc.) n introduction d'un composant de configuration dynamique (gestion d'un fichier) n introduction d'un composant de gestion du chargement dynamique 38

Résumé des tactiques de modifiabilité Modifiabilité Localiser les modifications Éviter les effets de bord Différer les binding Cohérence sémantique Anticiper les changements Généraliser les composants Masquer l'info Restreindre les com Intermédiaires Plug & Play Fichiers de config Polymorphisme Chargement dynamique 39

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 40

Performance n Rappelons que le but est de générer une réponse à un événement avant une certaine échéance n Utilisation de tactiques pour n optimiser les calcul n faire en sorte que les calculs soient le plus efficaces possible n augmenter les ressources n affecter plus de ressources aux calculs n gérer les ressources n contrôler finement l utilisation des ressources 41

Tactique pour optimiser les calculs - 1 n Limiter le nombre de composants n identifier les composants non fonctionnels et les éliminer n il s'agit, par exemple, d'éliminer les intermédiaires (broker, proxy, ) n Remarque n exemple typique où un compromis entre performance et modifiabilité doit être fait A B A B Bus Publish / Subscribe C C 42

Tactique pour optimiser les calculs - 2 n Réduire la fréquence de communication entre composants n il s'agit de réduire la fréquence d'échantillonnage des événements, notamment externes n Remarque n certains systèmes ont des fréquence de traitement trop élevées à cause d'exigences excessives ou par commodités de programmation (synchronisation d'événements par exemple) Filtre Filtre Appli Filtre 43

Tactiques pour augmenter les ressources n Introduire la concurrence n traitement en parallèle des événements entrant n attention à la gestion du "load balancing" (projection des processus sur les ressources) n Dupliquer les données ou les calculs n utilisation de caches et/ou de machines supplémentaires n attention à la synchronisation des dupliqués n Augmenter les ressources physiques 44

Tactique pour gérer les ressources n Utilisation d'un contrôleur de composants n pour limiter les durées d'exécution n besoins en algorithmes incrémentaux n pour gérer les activations n calcul de priorités statiques n calcul de priorités dynamiques n utilisation de mécanismes de préemption 45

Résumé des tactiques de performance Performance Optimisation Augmenter les ressources Gérer les ressources Limiter les composants Limiter les communications Concurrence Duplication Augmenter les ressources Contrôleur 46

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 47

Sécurité n Rappelons que le but est de garantir un fonctionnement nominal tout en résistant aux attaques n Utilisation de tactiques pour n résister aux attaques n détecter les attaques n traiter les attaques 48

Tactique de résistance aux attaques - 1 n Limitation de l'exposition n répartition des services sur différents composants et différents "hosts" n utilisation d'un composant de type firewall n utilisation d'une DMZ (entre l'internet et le firewall) n Remarque n en opposition avec les tactiques de performance, voire de disponibilité Accès DMZ 49

Tactique de résistance aux attaques - 2 n Protection des communications n techniques de cryptographie (avec des clés symétriques ou asymétriques) n création d'un composant global assurant la sécurisation des communications n Cryptographie n Établissement de profils d utilisateurs, de mots de passe, n Logging Accès 50

Tactique de détection des attaques n Composant de détection d'intrusion n comparaison des patterns de communication avec ceux d'une base de données n en cas de soupçon, comparaison avec des patterns d'attaques connues n pour faire ces comparaisons, certains messages sont filtrés sur la base n des protocoles utilisés n de la taille des messages n de la destination n des numéros de port Accès DMZ 51

Tactique de traitement des attaques n Composant de Log n stockage des informations de communication n stockage de l'état courant avec une attention particulière aux informations administratives (mots de passe, liste d'utilisateurs, noms de domaine, etc.) n Remarque n le composant de log est souvent l'objet d'attaques et doit être protégé (conception détaillée) n tactique proche des tactiques de redondance pour la disponibilité 52

Résumé des tactiques de sécurité Sécurité Note : tactiques de niveau architectural Résistance aux attaques Détection des attaques Traitement des attaques Limiter l'exposition Protéger les communications Composant de détection Composant de log 53

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 54

Testabilité n Rappelons que le but est de faciliter la réalisation de tests lors d'un incrément logiciel n Utilisation de tactiques pour n générer des tests n orienter le système 55

Tactique de génération de tests n Composant de test n le principe est de capturer et de mémoriser les informations (entrantes et sortantes) traversant une interface durant une exécution normale n permet la génération de tests Appel 56

Tactique de contrôle du système n Ports de communication spécifiques pour le test n mise à disposition de méta-données permettant d'orienter le fonctionnement d'un composant n ajout d'une interface de contrôle permettant de connaître l'état du système (charge, capacité, utilisateurs, etc.) et couplage à un système de test qui enregistre les valeurs nominales n Remarque n coûteux à mettre en place mais extrêmement efficace 57

Résumé des tactiques de testabilité Testabilité Génération de tests Contrôle du système Composant de test (record / playback) Ports spécifiques 58

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 59

Utilisabilité n Rappelons que le but est de faciliter le travail de l'utilisateur et de lui apporter un support constant n Tactiques n construction de modèles utilisés à l'exécution 60

Construction de modèles n Composant "modèle de tâche" n un modèle de la tâche en cours est utilisé par le système pour aider l'utilisateur (la correction automatique de fautes possible lorsque le système connaît le contexte) n Composant "modèle de l'utilisateur" n un modèle de l'utilisateur détermine le niveau d'expertise de l'utilisateur, ses comportements, etc. n Composant "modèle du système" n un modèle du système permet de prédire les réactions du système et de mieux présenter les informations 61

Plan n Exigences non fonctionnelles n Tactiques de conception n Tactiques pour la disponibilité n Tactiques pour la modifiabilité n Tactiques pour la performance n Tactiques pour la sécurité n Tactiques pour la testabilité n Tactiques pour la utilisabilité n Conclusion 62

Résumé n Nous avons présenté un ensemble de tactiques favorisant la réalisation des propriétés non fonctionnelles n il y en a d'autres n il faut prendre en compte le contexte pour les appliquer n La principale difficulté est de les assembler n besoin de compromis 63