Dossier ACSI - Matière : Outils et Modèles du Génie Logiciel Cours : ACSI (Analyse et Conception PDF

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 PDF
Total Downloads 63
Total Views 135

Summary

Matière : Outils et Modèles du Génie Logiciel
Cours : ACSI (Analyse et Conception des Systèmes d'Information)...


Description

  



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...


Similar Free PDFs