Title | Dossier ACSI - Matière : Outils et Modèles du Génie Logiciel Cours : ACSI (Analyse et Conception |
---|---|
Course | Outils et Modèles du Génie Logiciel |
Institution | Université de Pau et des Pays de l'Adour |
Pages | 66 |
File Size | 1.6 MB |
File Type | |
Total Downloads | 63 |
Total Views | 135 |
Matière : Outils et Modèles du Génie Logiciel
Cours : ACSI (Analyse et Conception des Systèmes d'Information)...
Chapitre 1 : définitions
L’informatisation L’informatisation est indispensable dans le processus de décision d’une organisation : Diminution de l’incertitude Liberté de choix Cohésion de l’organisation Evolutivité par rapport à l’environnement Qualités requises pour une informatisation : 1) Pertinence (précision, sécurité, intégrité, confidentialité, non redondance, convivialité, âge, fréquence) 2) Cohérence 3) Rentabilité Types d’information Niveau d’agrégation : brutes ou élaborées Flux : logistique, monétaire, de personnel, de l’actif Utilisation : planification stratégique, gestion administrative, régulation personnelle Nature du support : oral, documentaire, informatique Analyse systémique Elle envisage les éléments d’une conformation complexe, les faits non pas isolément mais globalement, en tant que parties intégrantes d’un ensemble dont les différents composants Important sont dans une relation de dépendance réciproque. Un système est un ensemble d’éléments en interaction dynamique, dont les éléments sont organisés et coordonnés en vue d’atteindre un objectif qui évolue dans un environnement. Neuf niveaux (marqués) de complexité selon cette théorie : 1) L’objet passif 2) L’objet actif 3) L’objet actif régulé (premier niveau d’intelligence dynamique) 4) L’objet s’informe 5) L’objet décide de son activité (il agit) 6) L’objet actif a une mémoire 7) L’objet actif se coordonne (avec les autres) 8) L’objet actif imagine (et donc s’auto-organise) 9) L’objet actif s’auto-finalise L’organisation correspond au dernier niveau.
Un système est décrit en termes d’éléments : Attributs des éléments Relation entre éléments Identité Objectif Contrôle Environnement Le système vu comme une « boîte noire » évènement
résultat
extérieur
Système Le système se décompose en sous-systèmes dont on définit les entrées (issues de l’extérieur ou devenant les entrées d’autres sous systèmes) et les sortie (à destination de l’extérieur ou devenant les entrées d’autres sous-systèmes). Chaque sous-système : affinages successifs jusqu’à l’obtention d’une « boîte blanche » (ou « boîte claire »)
Principale difficulté : identifier le système, ses limites, ses sous-systèmes, le risque de perte engendrée par la décomposition, par la recomposition, etc. Ne pas oublier : un modèle est une représentation simplifiée de la réalité. Aspects constructivistes : Les systèmes ne sont pas dans la nature, ils sont dans la tête des gens Le concept d’intention intervient ainsi que celui de filtrage.
Important
L’organisation vue comme un système L’organisation d’une entreprise ou d’un service public est généralement représentée suivant trois niveaux de système (Le Moigne, 1990). Environnement Système de décision Information de décision
Demande et restitution d’informations
Système d’information Demande et collecte d’informations flux entrant
Information de réprésentation
Système opérant
flux sortant
Système de pilotage
Système d’information 4°) Transmettre 1°) Recueillir
2°) Traiter
3°) Mémoriser les données
Système opérant (productif)
Entrées
Sorties
Le système de décision (ou pilotage, management, etc) guide l’organisation vers ses objectifs. Il a pour rôle de gérer, de contrôler et réguler le système opérant (décisions macroscopiques de l’organisme), en fonction des informations externes et internes qui lui sont transmises. Le système opérant (ou logistique, technologique, physique, de production, etc) effectue la transformation. Il met en œuvre un certain nombre de moyens pour mener à bien l’action de l’organisme. Il a pour rôle de vendre, acheter, produire, stocker. Le système d’information (SI) est l’ensemble des informations, outils (logiciels et matériels), méthodes, et personnes mis en œuvres pour la gestion des informations.
Le système d’information Le système d’information est identifiable comme : Un ensemble de variables (élémentaires ou composées) Muni de règles (pour la saisie, la circulation, le traitement, la mémorisation des informations) Matérialisés par un support (papier ou informatique) Rôle d’un système d’information Produire les informations légales réclamées par l’envie Déclencher les décisions programmées Fournir des informations aux décideurs pour aider à la prise de décision nonprogrammées Coordonner des tâches en assurant les communications au sein du système organisationnel Fonctions d’un système d’information Collecte et saisie (acquisition) de l’information Mémorisation et restitution de l’information (conservation de l’information pour des besoins ultérieurs) Traitement de l’information (rapprochements, calculs, comparaisons) Circulation (diffusion) de l’information (accès à la mémoire, échange entre acteurs), en local et à distance Du système d’information au système informatisé Trois niveaux :
Système d’information Système d’information automatisable Système d’information informatisé
Connaissances nécessaires : Science de gestion : Mise en place d’un réseau d’information et de communication (conception du système) Technique informatique Conception et réalisation du système informatique pour gérer le système d’information (conception du logiciel)
Le système informatique Structure tripartite : Interface Homme-Machine (IHM) Traitement Données
Le poids des parties varie selon l’application Réseau
Fichiers de mouvement
Utilisateurs
Communication Demande de service
Réponses
Système de dialogue
Réponses
Pilotage des traitements
Base de données
Gestion des données
Traitements Demande de service Mémorisation Fichiers
Important
Définitions préliminaires (cf schéma de Mr Bean + Balançoire) :
Analyse : processus d’examen de l’existant. Conception : processus de définition de la future application informatique. Système d’information : ensemble des moyens (humains et matériels) et des méthodes se rapportant au traitement de l’information d’une organisation. Informatique : science du traitement automatique et rationnel de l’information. Informatique de gestion : informatisation des systèmes d’information. Logiciel (selon l’arrêté du 22/12/1981) : ensemble des programmes, procédés, règles, et de la documentation, relatifs au fonctionnement d’un ensemble de traitements de l’information. Génie Logiciel (ou ingénierie des systèmes d’informatisation) ( selon l’arrêté du 30/12/1983) : ensemble des activités de conception et de mise en œuvre des produits et des procédures tendant à rationnaliser la production du logiciel et de son suivi.
L’informatisation : L’informatisation remplit maintenant un rôle stratégique dans l’organisation (automatisation des tâches administratives par exemple). Enjeux pour l’organisation Augmenter la productivité Améliorer les conditions de travail Rendre un meilleur service (de qualité, rapide, etc) aux partenaires de l’organisation. Critères d’u « bon » système informatique Productivité (en rationnalisant le processus d’informatisation) Etablissement d’une ligne directrice des informations Planification et suivi des performances Utilisation judicieuse des technologies
Qualité Conformité de la réalisation par rapport aux besoins Documentation correcte Adaptabilité
Fiabilité Facilité d’utilisation Rentabilité
Gain pour l’organisation relativement au coût de l’informatisation Facteurs de la complexité de l’informatisation Difficultés techniques de l’informatique Constantes novations (matérielles et logicielles) Symbiose requise entre l’application informatique et toute l’organisation (et ses partenaires) Multiplicité des décisions et nombreux domaines concernés (humain, financier, technique, etc) de l’organisation
Chapitre 2 : Cycle de vie
Cycle de vie du logiciel Logiciel : Ensemble complexe Son développement nécessite des activités très diversifiées Maîtrise de son développement Diviser pour régner : Important Modélisation des activités Activités successives
Cycle de développement : le processus logiciel désigne l’ensemble des activités nécessaires au développement et à la maintenance d’un logiciel, il s’agit d’un processus variable (selon le type d’application) et complexe, composé de différentes phases interdépendantes.
Représentation graphique et logique Structure autour de laquelle les activités d’assurance qualité peuvent se greffer… (doivent) De nombreux modèles recensés : Cascade, en V, en M, en W Prototypage, cascade par extensions successives, incrémentable En spirale, en Y, …
Mixage des modèles
Important
QUOI ?
Interdépendance entre toutes les phases de la conduite du projet, depuis l’expression des besoins jusqu’au contrôle qualité Trois phases d’un processus logiciel (développement du projet, vision synthétique) :
La spécification qui se traduit par un dossier répondant globalement aux besoins exprimés (Cahier Des Charges Fonctionnel – CDCF),
La conception qui à partir d’un dossier de spécification permet d’élaborer une solution logique (Cahier Des Charges Techniques – CDCT), et enfin, Le développement qui aboutit à une implantation de la solution logique.
COMMENT ?
Important
Analyse : 20% du temps Conception (« design ») : 30% 50% de travail « sur papier » Construction : 30% Déploiement : 20% Importance des phases hautes (coût de correction des erreurs) La démarche de la méthode d’informatisation traditionnelle :
Etude préalable Analyse fonctionnelle Analyse organique (conception) Programmation Mise en service
où ? quoi ? CDCF comment ? CDCT
Attention, plus une erreur est commise tôt, plus elle coûte cher à corriger. Etude préalable : Analyse de fonctionnement de l’organisation et diagnostic général de l’existant Recensement des critiques et des besoins des utilisateurs (sans considération technique : point de vue métier) Dialogue avec le client en termes intelligibles pour l’aider à formaliser le problème à résoudre Opportunité et faisabilité des automatisations Rédaction d’un cahier des charges (document textuel avec schémas) Analyse fonctionnelle Elaboration d’une solution conceptuelle, indépendante de tout moyen informatique Rédaction d’un dossier de conception (traitements généraux, nouvelles formes des informations, budgets) Document précis spécifiant les fonctionnalités attendues, base de contrat commercial avec le client Document facile à comprendre par le client/utilisateur Utilisations éventuelles des cas d’utilisation Analyse organique Comment faire le système : choix technique Définition des structures de données et de leur enregistrement Détermination des unités de traitement Choix d’une architecture technique (matériels et logiciels) suivant certaines propriétés (robustesse, efficacité, portabilité, etc) Expertise informatique : hors compréhension du client Etablissement du planning et des budgets de réalisation Programmation Réalisation effective du système informatique Savoir user de la réutilisabilité de composants existants, voire d’outils de génération de code Tests unitaires et d’intégration (en particulier dans les cas d’exception). Le testeur ne doit pas être le concepteur ou le programmeur
Mise en service Démarrage du système (après validation client : accord avec les besoins) Formation des utilisateurs Exploitation et maintenance du système Cycle en cascade (ou en chute d’eau ou « waterfall ») Important
Analyse (ou spécification) Conception Réalisation (ou codage, programmation, développement) Tests du logiciel et du système d’information Exploitation (hors développement) Maintenance (hors développement) Chaînage avant pour le projet et arrière pour les corrections
Analyse Exploitation Conception Et Réalisation
Maintenance Tests
Analyse Analyse de l’existant et définitions des besoins du système d’information et du logiciel. Production d’un cahier des charges fonctionnel (CDCF) Conception Conception du système d’information et du logiciel Production d’un cahier des charges technique (CDCT) Réalisation Traduction des algorithmes dans un langage compréhensible par un ordinateur Tests du logiciel et du système d’information Vérification et validation du logiciel Vérification et validation du système d’information Exploitation (hors développement) Utilisation du logiciel une fois installé (et « recetté ») Maintenance (hors développement) Correction des erreurs (maintenance corrective) Amélioration des fonctions existantes Ajout de nouvelles fonctionnalités (maintenance évolutive) Le modèle de la cascade est bien adapté au processus logiciel grâce à une validation du passage d’une phase à l’autre. De plus, ce cycle fournit des points de mesure concrets, sous forme de documents ; toutefois, il faut peu de retours en arrière. Dans ce modèle, l’élaboration des spécifications est une phase particulièrement critique, les erreurs de spécification sont généralement détectées au moment des tests, voire au moment
de la livraison du logiciel à l’utilisateur. Leur correction nécessite alors de reprendre toutes les phases du processus, ce qui est coûteux. Une difficulté majeure de la phase de spécification provient du fait que les différents partenaires ne parlent pas le même langage. Le client s’exprime dans le langage du domaine de l’application du métier, un jargon qui fait souvent appel à des termes techniques très spécialisés, mais qui utilise pour support le langage naturel (le français, l’anglais). De plus, le client ne sait pas toujours précisément ce qu’il veut, sa demande peut varier en fonction de l’offre. De fait, les besoins exprimés par le client sont généralement ambigus et incomplets. L’informaticien fait des petits schémas, utilise des langages formels pour représenter sa perception du problème : le client non-informaticien n’est généralement pas capable de comprendre la spécification résultante, et ne peut donc la valider en connaissance de cause. Aucune validation intermédiaire : « impossibilité » de suivre le déroulement du projet donc de planifier le travail en équipe Augmentation des risques car validation tardive Solution limitée aux petits projets : Risques bien délimités dès le début du projet Projet court avec peu de participants Solution (conception) facile à déterminer Codage réduit (génération automatique de code à partir des documents de conception) Dans le cas contraire, il y a de nombreux retours en phases… Cycle en V Mieux gérer le risque et de faciliter la planification. Principes : Processus linéaire Prévention des erreurs : validation des produits à chaque sortie d'étape descendante Validation finale montante, confirmation de la pertinence de l'analyse descendante Le plus répandu, idéal quand il n'y a pas de problème de faisabilité et doté de nombreuses variantes.
Important
Analyse système
Validation système
Conception système
Vérification système
Validation logiciel
Analyse logiciel Processus descendant
Validation Conception logiciel
Réalisation
Vérification logiciel
montante
« Système » signifie ici système d’information (manuel et informatisé) « Vérification »: le produit en cours d’élaboration répond à la définition des besoins (est-ce bien le produit ?) « Validation » : le produit en cours d’élaboration remplit-il les fonctionnalités désirées par l'utilisateur ? (est-ce le « bon » produit ?)
C'est le modèle de l'Association Française pour le Contrôle Industriel de Qualité (AFCIQ).
Les différentes phases
Spécification fonctionnelle du logiciel
Conception préliminaire
Conception détaillée
Codage
Tests
Exploitation
Spécification du logiciel (« software requirements »)
Définir de manière précise, complète et cohérente ce dont l’utilisateur a besoin
Dossier de spécification (CDCF) : Identification des fonctions à réaliser Condition d’exploitation et d’utilisation Performances Critère de qualification
Conception préliminaire :
Ensemble d’actions conduisant à l’élaboration de l’architecture du logiciel
Résultats : dossier de conception préliminaire (CDCT) : Description des fonctions à réaliser Architecture de ces différentes fonctions (interface, définition des données, définition des composants du logiciel) Justification des choix Arguments pour justifier la faisabilité Planification des tests Découpage du travail Planification des phases suivantes
Conception détaillée
Détailler les résultats de la conception préliminaire Algorithmique Structure de données
Faciliter la phase de codage
Codage
Traduction de la conception détaillée en un programme
Utilisation d’un environnement de programmation Langage de programmation Langage de quatrième génération, générateur de programme etc
Tester consiste à vérifier la conformité par rapport aux dossiers de conception Tests unitaires : tester séparément chaque composant du logiciel
Sous-programme
Fonction
Module
Bibliothèque
Tests d'intégration : assemblage progressif des différents composants du logiciel :
Simulation des composants manquants
Vérifier la conformité avec le dossier de conception préliminaire
Les jeux de tests constituent les preuves de « bon » fonctionnement Exploitation :
Mise en exploitation
Formation des utilisateurs
Utilisation du logiciel
Maintenance (corrective) du logiciel Détection des défauts résiduels Correction des erreurs (attention aux effets de bords)
Adaptation (maintenance évolutive) du logiciel Evolution du dossier de spécification
Avantages :
Validations intermédiaires : Bon suivi du projet : points de mesure concrets de l’avancement du travail avec étapes clés Favorise la décomposition fonctionnelle de l'activité Limitation des risques en cascade par validation de chaque étape Existence d’outils supports (AGL-Atelier de Génie Logiciel)
Modèle éprouvé, très utilisé dans de grands projets
Inconvénients :
Un modèle toujours séquentiel … prédominance de la documentation sur l’intégration : validation tardive du système par lui-même Les validations intermédiaires n'empêchent pas des insuffisances des étapes précédentes Manque d'adaptabilité
Maintenance évolutive non intégrée : syndrome du logiciel jetable
… adapté aux problèmes sans zone d'ombre Idéal quand les besoins sont bien connus à l'avance, quand l'analyse et la conception sont claires
Cycle en Y Cycle aussi nom...