OMGL 1 Outils et Méthodes de Génie Logiciel 1
Introduction De l énoncé d un besoin utilisateur à une spécification opérationnelle 2
Les étapes de développement d une application Recensement des besoins Structuration des données Spécification des traitements Implémentation Tests Exploitation Maintenance 3
Analyse Algorithmique Programmation Systèmes Architecture 4
Chapitre 1 Spécifications d une application 5
Les outils Merise : méthode propre à la France ancienne, fortement implantée orientée bases de données et fichiers Langage UML (Unified Modeling Language) : normalisation internationale récente, utilisation en progression orientée objet Etc 6
UML Unified Modeling Language Notation standard pour modéliser des systèmes d information Modélisation visuelle Indépendance vis à vis des langages de programmation 7
Mettre en oeuvre une application Analyse et spécifications des traitements Acteurs, cas d utilisation (UML) Définition des structures de données Entités, Associations (MERISE) Implémentation Programmation (COBOL) Déploiement Mise en service 8
Démarche d une analyse Enquête préalable Cahier des charges Validation par les responsables Spécification des besoins des utilisateurs Validation par les responsables et utilisateurs Structuration des données Spécification des traitements 9
Cahier des charges Deux paragraphes Description du fonctionnement d un sousensemble d une entreprise Mise en évidence des tâches à informatiser Il s agit d un CONTRAT servant de base à la suite de l étude. 10
Spécification des besoins utilisateurs (approche UML) Identifier les acteurs : qui intervient? Déterminer les cas d utilisation : que faire? Définir les scénarios : comment réaliser? 11
Acteur Un acteur est souvent une personne. Comment les déterminer? À partir du cahier des charges. Qui va utiliser l application? Exemple : gestion de la scolarité 12
Identifier les cas d utilisation Un cas d utilisation (Use Case) est une modélisation d un dialogue entre un ou plusieurs acteurs et l application Cas d utilisation 13
Comment déterminer les cas d utilisation Quels sont les rôles possibles d un acteur? Quelles informations l acteur peut-il Consulter? Modifier? Créer? Supprimer? 14
Sémantique d un cas d utilisation L étudiant demande à une secrétaire un bulletin Une secrétaire OU un enseignant imprime un bulletin D où la nécessité de préciser le sens d un cas d utilisation à l aide de scénarios 15
Paquetages (Packages) Regroupement cohérent des différents cas d utilisation autour des divers centres d intérêt. Exemple (au Département): Scolarité des étudiants Planning Budget 16
Notation Uml des paquetages 17
Les scénarios Un scénario est une description normalisée d un cas d utilisation. Un scénario est établi à l aide d un texte que l on place dans une NOTE. La note doit mettre en évidence le dialogue entre un ou des acteurs et l application : Informations à saisir Contrôles Traitements (description succincte) 18
Exemple de notes 19
Rédaction d un scénario Définir le flot d événements principal Traitement «normal» Définir le ou les flots d événements exceptionnels. Erreurs de saisie Recherche d un identifiant non trouvé 20
Scénario Consulter 21
Remarques - Les scénarios des cas d utilisation ne doivent, en aucun cas, décrire des solutions d implémentation. - L objectif fondamental est de structurer et spécifier les besoins des utilisateurs. - L ordre de rédaction est libre (la notion de temps ou de séquence n intervient pas). 22
Le dossier d analyse Cahier des charges Liste des acteurs Paquetage 1 Diagramme des cas d utilisation Les scénarios Scénario 1.. Paquetage 2 23
Utilisation de ACSI 24
Paquetage 25
Génération d un rapport Reprendre le fichier HTML généré pour la mise en page définitive avec votre éditeur HTML favori 26
Références http://uml.free.fr Excellent site en français http://argouml.tigris.org Freeware, en cours de développement! http://www.pragsoft.com Logiciel professionnel (UML Studio) 27
Chapitre 2 Structuration des informations 28
Objectifs A partir du dossier d Analyse (cahier des charges, cas d utilisation et scénarios), déterminer les informations à stocker de façon permanente (disque dur). Regrouper ces informations de façon cohérente. 29
Caractérisation d une information Nom Exemples : N client, Nom client Mémorisation : Oui ou non Nature : alphanumérique (chaîne de caractères quelconques) ou numérique Taille Nombre maximum de caractères (pour les nombres réels, préciser éventuellement le nombre de chiffres après la virgule ou point décimal, ex : 6.2 ). Règle de gestion Formule ou algorithme de calcul 30
Dictionnaire des informations L ensemble des informations traitées par l application constitue le dictionnaire. Dans celui-ci, tous les noms doivent être différents. Pas de synonymes Exemple : Nom Client, Nom du Client 31
Mémorisation Une information du dictionnaire peut être mémorisée (stockée généralement sur disque dur) dans des fichiers ou bases de données. Les règles de gestion permettent, le plus souvent, de déterminer si une information doit être mémorisée. 32
Règles de gestion Formule ou algorithme de calcul : Ex : Montant TTC = Montant HT + TVA En général, une information sans règle de gestion doit être mémorisée. Une information possédant une règle de gestion ne doit pas être mémorisée sauf cas particulier Ces choix sont liés aux scénarios. 33
Dictionnaire 34
Mémorisation des dates Une date d impression figurant sur un état (listing) n est pas systématiquement mémorisée. Tous les systèmes et langages de programmation permettent d obtenir automatiquement la date du jour. 35
La norme postale (particuliers) 36
La norme postale (entreprises) 37
Structuration des informations Structurer (regrouper) les informations pour Modéliser le système d informations : Déterminer les «composants» Individus (exemple : des personnes) Objets (exemple : des produits) Concepts (exemple : des livraisons) Définir les liens entre ces «composants» Le modèle doit être valide dans le temps 38
Modèle Conceptuel de Données 39
Entités 40
Entité Nom de l entité Identifiant (Code ou Numéro) Information Information etc... 41
Association non porteuse d informations 42
Association porteuse d informations 43
Passage du dictionnaire au MCD Démarche par recherche des «liens» entre informations 44
Identifiant Une information «A» a pour identifiant une information «B» si et seulement si Pour une valeur de B, il existe une seule valeur de A Notation : A B ou B A Exemple : Nom étudiant Nom login 45
Identifiants Une information peut avoir plusieurs identifiants. Nom étudiant Nom login Nom étudiant Numéro étudiant de l université Une information «A» a pour identifiants les informations «B» et «C» ssi pour une valeur de B et une valeur de C, il existe une seule valeur de A. Notation : A B, C Exemple : Note Nom login, N contrôle Le nombre d identifiants d une information peut être supérieur ou égal à 0. 46
Démarche Seules les informations à mémoriser doivent être prise en compte. Etape1 : Définir la liste des informations liées par des identifiants (TRES DIFFICILE) Etape 2 : Dessiner le graphe des liens identifiants Etape 3 : Construction du MCD 47
Etape 1 Heuristique - Partir des numéros ou des codes - Un numéro est identifiant (souvent) de plusieurs informations «homogènes» ex: nom, prénom, adresse - une info numérique a souvent plusieurs identifiants 48
Etape 1 : liste des liens identifiants Nom étudiant Nom login Prénom étudiant Nom login Bureau distributeur Code Postal Libellé N contrôle Note Nom login, N contrôle Code Postal Nom login 49
Etape 2 Graphe des liens identifiants Nom login N contrôle Note Nom étudiant Prénom étudiant Libellé Code Postal Italique : feuille Gras : Identifiant Bureau Distributeur 50
Etape 3/1 : Construction du MCD Repérer les entités : identifiant et ses feuilles Nom login N contrôle Note Nom étudiant Prénom étudiant Entité Libellé Code Postal Bureau Distributeur 51
Etape 3/2 : Associations porteuses d informations Nom login N contrôle Note Nom étudiant Prénom étudiant Entité Association porteuse Libellé Code Postal Bureau Distributeur 52
Etape 3/3 : Associations non porteuses d informations Nom login N contrôle Note Nom étudiant Prénom étudiant Libellé Code Postal Entité Bureau Distributeur Association porteuse Association non porteuse, liens entre identifiants 53
Cas particuliers Deux informations sont en correspondance biunivoque n produit libellé produit Libellé produit n produit Éliminer l une d entre d elles (en fonction des traitements) Transitivité Nom login N étudiant universitaire Nom 54
ACSI : Construction du MCD Hypothèse : dictionnaire déjà créé 55
ACSI 1/3 Créer les entités 56
ACSI 1/2 Donner un nom à l entité 57
ACSI 1/3 Propriétés de l entité 58
ACSI 1/4 Sélectionner l identifiant 59
Fin de l étape 1 : entités 60
ACSI : Les associations porteuses d informations 3 1 2 61
ACSI : Les liens de l association 62
ACSI : Les associations non porteuses d informations 63
ACSI : Vérifier Modèle 64
Chapitre 3 - Cardinalités des associations - Compléments AMC :. Cardinalités. Rapport 65
Cardinalités Une cardinalité doit être définie entre toute entité et association. Une personne possède «combien de choses»? PERSONNE N personne Nom? POSSEDE 66
Cardinalités minimale et maximale Une personne possède au moins un lieu de naissance Une personne possède au plus un lieu de naissance PERSONNE N personne Nom 1,1 POSSEDE Cardinalité maximale Cardinalité minimale 67
0,1 Les cardinalités les plus fréquentes Une personne possède 0 ou 1 une carte d identité française 1,1 Une personne possède un et un seul lieu de naissance 0,N Une personne possède 0 ou plusieurs cravates 1,N Un personne possède 1 ou plusieurs prénoms 68
Associations non porteuses d informations ETU D IAN T Essayer de mettre un «VERBE» comme nom d association N omutilisateur N ométudiant Prénométudiant 1,1 PO SSED EU N 0,N C O D ES C odepostal BureauD istributeur 69
Cardinalités maximales Les plus importantes. Exemple : Un étudiant possède un code postal Un même code postal peut être possédé par plusieurs étudiants 70
Cardinalités minimales Existe-t-il une règle logique de bon-sens? Si non, Utiliser 0 de préférence à 1. Le choix définitif sera fait plus tard (lors de l étude des traitements). Les deux cardinalités minimales d une association ne peuvent pas être simultanément égales à 1(problème de mises à jour) 71
Association non porteuse d informations Ne pas oublier que l association est entre deux entités : Min,Max Min, Max 72
Cardinalités usuelles 0 ou 1, 1 0 ou 1, N 0 ou 1, N 0 ou 1, N Cardinalité plus rare 0 ou 1, 1 0 ou 1, 1 73
Association porteuse d informations 0,N 0,N 0,N Information(s) 0,N est le cas général et très fréquent 74
ACSI, Cardinalités Cliquer sur un lien 75
Chapitre 4 Modèles logique et physique de données 76
Notion de fichier logique Un fichier logique est un ensemble d informations relatives à un même objet, concept, Exemple : fichiers Utilisateur, Codes, Fichier = ensemble d enregistrements Enregistrement = ensemble de champs 77
Exemple Fichier Utilisateur <==> Entité Utilisateur 3 champs, 4 enregistrements, une clé d accès : N utilisateur Nom Prénom MARTINJ DUPONDP DURANTH LEFEBVRI Martin Dupond Durant Lefebvre Jean Pierre Hélène Isabelle 78
Fichier logiques : accès direct Connaissant une valeur de clé : Consulter : rechercher l enregistrement Modifier un ou plusieurs champs (sauf la clé) de l enregistrement Supprimer l enregistrement Connaissant toutes les valeurs des champs : Ajouter un enregistrement 79
Fichiers logiques : accès séquentiel Sans connaître les valeurs de clés : accéder et traiter l un après l autre tous les enregistrements du fichier. Exemple : langage Cobol les fichiers séquentiels indexés permettent des accès direct et séquentiel. 80
Passage d un MCD aux fichiers logiques Toute entité se transforme en fichier logique Toute association porteuse d informations devient un fichier logique Toute association non porteuse d informations implique l ajout de clés d accès dans les fichiers ou la création d un fichier logique. 81
Etape 1 : Entités ==> Fichiers Fichier Utilisateur : (N utilisateur, Nom, Prénom) Fichier Codes : (Code postal, Bureau Distributeur) Fichier Contrôle (N contrôle, Libellé) 82
Etape 2 : Association porteuse d informations ==> Fichier Fichier Passe (N utilisateur, N contrôle, Note) 83
Etape 3 : Associations non porteuses d informations Prendre en compte les cardinalités maximales 84
Etape 3 :?,1 <==>?,N Fichier Utilisateur (Fichier Code inchangé): (N utilisateur, Nom, Prénom, Code Postal) Utilisateur N utilisateur Nom Prénom 1,1 0,N Codes Code Postal Bureau distributeur 85
Etape 3 :?,1 <==>?,1 Commande N commande Date de commande Fichier Commande : N commande Date de commande N Livraison 0,1 1,1 Livraison N Livraison Date Livraison Fichier Livraison : N Livraison Date Livraison N commande 86
Etape 3 :?,N <==>?,N Commande N commande Date commande 0,N 0,N Produit N produit Libellé Créer un nouveau fichier logique Fichier Les produits commandés : (N commande, N produit) 87
Etape 4 : simplification du MLD Si un fichier logique F ne comporte qu une seule information (identifiant) et si cet identifiant a été dupliqué dans un autre fichier logique, alors on peut supprimer le fichier logique F. 88
89
ACSI, menu Outils, Générer Modèle physique 90
91
92
Tester le modèle logique Uniquement pour des tests Aucune sauvegarde sur disques des données saisies 93
Générer un script SQL 94
Générer un source Java 95
Chapitre 5 FICHIERS, BASES DE DONNEES 96
Organisations de fichiers Trois types d organisation : Séquentielle Accès direct Séquentiel indexé Primitives ouverture (OPEN) fermeture (CLOSE) lecture d un enregistrement (READ) écriture d un enregistrement (WRITE) 97
Organisation séquentielle Fichier Enregistrement 2 Ouverture en lecture OU Ouverture en écriture 1 Ouverture Lecture ou écriture 98
Organisation accès direct Fichier 1 Enregistrement 2 3 4 5 Lecture ou écriture à partir du numéro d enregistrement 99
Organisation séquentielle indexée Fichier Enregistrement Accès séquentiel Lecture ou écriture à partir de la clé d enregistrement 100
Structure d un enregistrement d un fichier séquentiel indexé Champs Clé d enregistrement Chaîne de caractères 101
Fichiers logiques et fichiers Cobol Si l identifiant du fichier logique est un numéro séquentiel à partir de 1, on peut associer un fichier Cobol à accès direct (RELATIVE) Sinon (chaîne de caractères pour l identifiant), on peut associer un fichier Cobol séquentiel indexé (INDEXED). 102
Facilité Accès direct <==> Séquentiel Indexé Accès direct - Séquentiel Indexé + de programmation Rapidité + - Temps de réponse 103
Utilisation de fichiers à accès direct Problème algorithmique Trouver une fonction ( méthode) de hachage (HashTable) : int hash(string identifiant)????????? Deux identifiants différents doivent donner des numéros différents. Les résultats doivent être dans un intervalle limité [1,Maximum] 104
Bases de données Historiquement, 3 modèles: Hiérarchique Réseaux Relationnelles Un standard : SQL (Structured Query Language) Différentes implantations: Access, Oracle, Informix, Ingres,... 105
Tables Lignes Colonnes Nom d utilisateur Nom DupondJ Dupond DurantP Durant. Prénom Mot de Passe Jean xinofo Pierre pitygu 106
Bdd : primitives Ajouter une ligne en fin de table Modifier UNE ou PLUSIEURS lignes Supprimer UNE ou PLUSIEURS lignes Rechercher UNE ou PLUSIEURS lignes Remarque : possibilité de traitements globaux sur une table 107
Vues Lignes Colonnes Nom d utilisateur Nom DupondJ Dupond DurantP Durant. Prénom Jean Pierre Une vue est une sélection de lignes et/ou de colonnes sur une ou plusieurs tables Seules les tables contiennent réellement des informations 108
BDD : Requêtes Sélectionner les noms d utilisateur dont le nom est égal à «Dupond» et dont le prénom est «Pierre» Select * from Utilisateur where nom="dupond" and prenom="pierre" Avec des fichiers Cobol, il faut programmer la recherche (parcours séquentiel du fichier). 109
BDD : Sécurité Comparable aux «permissions» sous Windows GRANT : donner un ou plusieurs droits sur une table ou une vue à un ou plusieurs utilisateurs. REVOKE : supprimer des droits. 110
BDD : Structuration La description des tables et vues (modèle physique) est stockée dans la BDD. Un programme d application (Exemple Cobol) peut accéder aux structures de données correspondantes. 111
Fichiers, Bdd, langages de programmation Sequential Relative Indexed SQL X X X X COBOL JAVA X X JDBC C X X ODBC Importance de Cobol pour les applications de gestion. 112
BDD et Réseaux Applications Clients-Serveur BDD (tables, vues) partagée en temps réel avec plusieurs clients (utilisateurs simultanés des mêmes informations). Problèmes d accès concurrents aux mêmes données gérés par les BDD. 113
Chapitre 6 Analyse des Traitements 114
Les étapes d une analyse Etude préalable Cahier des Charges,acteurs, cas d'utilisation Recueil des informations Dictionnaires des Données Structuration des informations MCD, MLD Spécification des traitements Prototypage 115
Analyse fonctionnelle des traitements Décomposer les traitements en Unités Fonctionnelles (UF). Une UF est un ensemble de tâches réalisées à un moment quelconque ou une périodicité fixée). Exemples: saisie de commandes, impression de bulletins de paie. de façon interactive ou non; exemple : édition des heures complémentaires mensuelles, état des stocks trimestriel. 116
Description des UF Adopter un formalisme compréhensible par des responsables et/ou utilisateurs non informaticiens. Dossier d analyse fonctionnelle regroupant l ensemble des UF à faire valider par les responsables. 117
Dossier d Analyse fonctionnelle Plan : Cahier des charges, Modèle Logique des Données (MLD) Description des UF 118
Plan d une UF But : objectif, usage et résultat fourni à l utilisateur Périodicité Utilisateur(s) Dessin d UF Descriptif des traitements 119
UF1 Gestion des commandes But Saisie et traitement des commandes Périodicité Conversationnelle chaque jour ouvrable de 9 h à 18 h Utilisateurs (acteurs autorisés) personnel du service commercial 120
UF1 Gestion des commandes Dessin d UF Clients UF3 Gestion des commandes Produits Factures Commandes en attente 121
Symboles des dessins d UF Station de travail (UF interactive) Unité Fonctionnelle Fichier Logique Fichier imprimante 122
Accès aux fichiers logiques Consultation Création Mise à jour 123
UF1 Gestion des Commandes Descriptif de traitement Saisie d une commande Contrôler le n de Client et les n de produits Mise à jour du fichier Produit Si un produit n est pas disponible, mettre la commande en attente Sinon mettre à jour la quantité en stock dans le fichier Produit Créer le fichier d impression Factures en 2 exemplaires 124
Démarche pour définir les UF En général, pour chaque fichier logique ayant un identifiant composé d une seule information, définir une UF interactive de mise à jour (ajout, modification, suppression et consultation) Clients UF4 Mise à jour Clients Ne pas oublier les fichiers en consultation pour les contrôles d intégrité 125
Utilisation du MLD pour définir les UF Mise à jour classique (souvent!) 126
Utilisation du MLD pour définir les UF Traitement à spécifier 127
Pour terminer les UF Valider ce qui a été fait en relisant le cahier des charges et les scénarios. Compléter si nécessaire. Ne pas oublier les UF à traitement différé : En général, il s'agit de traitements SEQUENTIELS quelque soit le mode d'organisation des fichiers Produits UF 6 Gestion des stocks Etat des Stocks mensuel 128
Traitements différés : Contrôles Fichier à contrôler UF de Contrôle Fichier sans erreur Fichier des erreurs 129
Traitements différés : Tri Fichier trié ou non trié UF de Tri Nouveau fichier trié Fichier trié ou non trié Fichier De Travail Fichier De Travail UF de Tri INSTRUCTION SORT COBOL 130
Traitements différés : Fusion Fichier 1 Fichier 2 Fichier n UF de Fusion Fichier Résultat TOUS les fichiers ont la même structure d'enregistrement, et classés sur le même critère Instruction MERGE COBOL 131
Traitements différés : Mise à jour de fichiers séquentiels Fichier Permanent Fichier Mouvement UF de mise à jour séquentielle Mêmes critères de classement Nouveau fichier permanent 132