Licence Informatique Marisela Hernandez marisela.hernandez@u-picardie.fr Marisela Hernandez 1
Présentation de la 1ere partie du module d A/E Description breve: Les premieres phases de la mise en oeuvre d un logiciel Objetif: Savoir analyser et concevoir un logiciel Moyens: 3 cours TDs avant la semaine de partiels Evaluation: Mini-projet noté Marisela Hernandez 2
Programme du module Cycle de développement d un logiciel Expression de besoins du logiciel Conception générale du logiciel L analyse descendente Conception détaillée du logiciel Programmation (Codage et tests unitaires) Intégration de modules Essais Validation Marisela Hernandez 3
Programme du module Maintenance Structuration d un logiciel pour la programmation structurée Etude de cas La documentation Étude de la méthode MERISE (2 e partie) Marisela Hernandez 4
Bibliographie Alfred Strohmeier. Génie Logiciel: principes, méthodes et techniques. Presses polytechniques Romandes.1997. Gaudel, Marre, Bernot, Schelienger. Précis de Génie Logiciel. Masson.1996. J.P. Laurent Initiation à l Analyse et à la Programmation. Dunod. 1985. Jacques Printz Le Génie Logiciel. Que sais-je? 1995 Marisela Hernandez 5
Introduction Qu est ce qu un Logiciel? C est un ensemble de programmes et de procédures nécessaires au fonctionnement d un système informatique. Qu est ce qu un Programme? C est un ensemble d instructions, rédigé dans un langage de programmation, permettant à un système informatique d exécuter une tâche donnée. Marisela Hernandez 6
Exemples de logiciels Système qui gère la gestion du personnel d une entreprise Système de gestion de location de voitures Les traitements de texte (WORD par exemple) Gestion de réservations de vols Le système SOCRATE de la SNCF Traitement d images (Photoshop) Gestion d une banque Marisela Hernandez 7
Exemples de programmes Programme C pour trier un tableau avec la méthode dichotomique Programme Java pour calculer une valeur particulière de la suite de Fibonacci Fonction Java pour calculer le volume d une sphère Fonction C pour calculer le nombre d éléments d une liste chainée Marisela Hernandez 8
Developpement du logiciel Comparé aux autre produits, le logiciel présente quelques, particularités: le problème de production en série ne se pose pas. Le logiciel est produit unique fait avec un procédé de production ou un processus de développement. Marisela Hernandez 9
Developpement du logiciel il fait une large place à l'analyse des besoins, à la conception et à la validation ; il s'opère par raffinements successifs la partie technique du développement d'un logiciel consiste en l'établissement d'une suite de descriptions de plus en plus proches d'un programme exécutable et sa documentation Marisela Hernandez 10
Processus de developpement certaines étapes peuvent déclencher la révision des étapes précédentes : un manque de précision des spécifications peut être détecté lors de la conception. Une erreur de conception peut ne paraître que lors du test du logiciel. Marisela Hernandez 11
Developpement du logiciel pour pallier au problème de l'invisibilité, il donne lieu à la production de documents intermédiaires permettant de contrôler un logiciel en cours de développement ; la plupart du temps il est poursuivi après la livraison du logiciel, Marisela Hernandez 12
Developpement du logiciel pour la maintenance qui peut remettre en cause les fonctions du système et impliquer des modifications et un redéveloppement L'ensemble des phases par lesquelles passe le logiciel s'appelle le cycle de vie. Marisela Hernandez 13
L Analyse Système Un logiciel n'est que l'un des composants d'un système plus vaste. C'est l'analyse système qui détermine le rôle du logiciel, le mode d'interaction du logiciel avec son environnement (= les autres composants). Etude des besoins, d'opportunité, d'impact, coût/bénéfice, de faisabilité Marisela Hernandez 14
Étude de cas 1 "Resumix : Traitement de CVs " L'entreprise "Resumix" propose ses services de traitement automatisé et en masse des CVs de postulants. Quelles sont les technologies utilisées pour réaliser cette automatisation? Scanner pour obtenir une image numérique à partir du CV numérisé Logiciel de recognition de caractère pour transformer l'image en texte Logiciel d'analyse de texte pour l'extraction d'information et de mots clés, Ce logiciel utilise une base de connaissance pour "comprendre" et extraire des éléments de connaissance depuis les texte, Base de données pour le stockage des information obtenus, Interface graphique pour l'interrogation et la manipulation de la base de données. Marisela Hernandez 15
Étude de cas 1 Objetifs de Resumix nombre de CVs traités (c.à.d acceptés ou rejetés) ventilé sur le temps (par jour, par semaine, par mois, par an); nombre de CVs ayant donnée lieu à des embauches ventilées sur le temps (trimestre, année), sur les secteurs d'activités (bâtiments, informatique, pharmacie,.. ) sur le type de poste (ingénieur, manager, dirigeant, chef de projet, expert,...) taux de turnover (c.à.d changement d'emploi) pour les personnes embauchés par Résumix, ventilé sur le temps, les secteurs d'activités,... Marisela Hernandez 16
Étude de cas 2 Bibliothèque Universitaire Gestion d utilisateurs (étudiants, enseignants, employés) Gestion de prêts Gestion d acquisitions (livres, revues, journaux) Gestion de personnels de la Bibliothèque Gestion du budget Logiciel de recherche de publications (livres, revues, journaux) Marisela Hernandez 17
Étude de cas 3 Gestion d un bureau de location pour plusieurs stations touristiques. Différents prestataires offrent des locations. Ils peuvent les retirer tant qu aucune réservation définitive n est réalisée. Ils touchent 90% du prix de la location. Les clients adressent des demandes de renseignement. Le bureau y répond par des propositions de location et d assurance annulation ou une mise en attente. Marisela Hernandez 18
Étude de cas 3 Gestion d un bureau de location pour plusieurs stations touristiques. Le client peut alors refuser ou demander une réservation en envoyant des arrhes et en souscrivant éventuellement l assurance annulation. Si la location choisie est encore libre, elle est réservée, sinon la demande est mise en attente. Après un délai de 8 jours, la réservation est confirmée de manière définitive. En cas d annulation après ces 8 jours, un pourcentage est dû par le client sauf s il a souscrit l assurance annulation. L annulation en cas de mise en liste d attente est toujours possible sans frais. La facture est envoyée avant le début du séjour. Un rappel suit en cas de non paiement. En cas de nouveau défaut de paiement le dossier est transmis au contentieux. Marisela Hernandez 19
Étude de cas 3 Marisela Hernandez 20
Objéctif actuel La stratégie ancienne "code and fix" (coder et fixer) activité non pilotée, au résultat totalement aléatoire. L'objectif actuel passer au stade industriel, en terme de maîtrise de : la qualité l'efficacité (maîtrise des coûts et délais) Marisela Hernandez 21
But d un logiciel Le but du développement d un logiciel est de développer des logiciels de qualité. Exemple de critères de qualité : - Exactitude : aptitude d un logiciel à fournir des résultats voulus dans les conditions normales d utilisation. C est le critère le plus important. C est la base de l informatique : on souhaite développer des logiciels qui répondent aux besoins des utilisateurs. - Robustesse : Aptitude à bien réagir lorsque l on s écarte des conditions normales d utilisation - Extensibilité : Facilité avec laquelle un programme pourra être adapté pour faire face à une évolution des besoins des utilisateurs Marisela Hernandez 22
But d un logiciel Exemple de critères de qualité : - Réutilisabilité : Possibilité d utiliser certaines parties du logiciel pour développer un autre logiciel répondants à d autres besoins - Portabilité : facilité avec laquelle on peut exploiter un logiciel sous différents systèmes d exploitation (Linux ou windows XP ou MAC-OS ) - Efficacité : temps d exécution, taille mémoire, Marisela Hernandez 23
Critères de qualité La prise en compte de ces critères de qualité dans la réalisation d'un logiciel implique: un temps important de développement (plusieurs hommes sur plusieurs années) et une méthode de développement Il n est donc pas possible de se lancer dans la programmation tout de suite même lorsque le logiciel ne comporte qu un seul programme de petite envergure. (objetif de la matière Analyse et Etude de cas) Réfléchissez d'abord, vous programmerez plus tard. Proverbe de H.F. Ledgard Marisela Hernandez 24
Dans le module Analyse et Étude de cas Nous ne nous intéressons pas au programme Ce n est pas un cours de programmation Pas de programmation Marisela Hernandez 25
Méthode classique de développement de logiciels Dans le cheminement de la pensée qui va de la naissance d un projet informatique jusqu à son terme on distingue trois grandes étapes : - La première prend la décision de développer un logiciel ou non au sein de l entreprise. - La seconde est l élaboration proprement dite du logiciel. - la troisième est la phase de maintenance du logiciel construit. Marisela Hernandez 26
Méthode classique de développement de logiciels Ces activités sont mises en œuvre suivant des stratégies diverses et parfois complexes requérant des compétences variées dans de nombreux domaines de l informatique. Génie logiciel (Software Engineering) Marisela Hernandez 27
Génie logiciel Génie Logiciel = (Software Engineering) = Science de l'ingénierie du logiciel «l application pratique de la connaissance scientifique dans la conception et l élaboration de programmes informatiques et de la documentation associée nécessaire pour les développer, les mettre en œuvre et les maintenir» (B. W. Boehm, 1976) Marisela Hernandez 28
Génie logiciel Génie Logiciel = (Software Engineering) = Science de l'ingénierie du logiciel «Activités de conception et de mise en œuvre des produits et des procédures tendant à rationaliser la production du logiciel et son suivi» (Arrêté ministériel du 30-12-83) Marisela Hernandez 29
Cycle de vie du logiciel Le développement d un logiciel se fait suivant un cycle appelé cycle de vie du logiciel. Le cycle de vie est décomposé en phases de développement Ces phases sont échelonnées dans le temps. Une phase se termine par la remise d un (ou plusieurs) document(s). Marisela Hernandez 30
Cycle de vie du logiciel Phases de développement : - Spécification des besoins (15% du temps) - Conception générale (10% du temps) - Conception détaillée (25% du temps) - Codage et Tests unitaires (15% du temps) - Tests des modules (5% du temps) - Intégration du logiciel (20% du temps) - Validation (10% du temps) Marisela Hernandez 31
Spécifications des besoins But: éviter de développer un logiciel non adéquat Données: sont fournies par des experts du domaine d application et par les futures utilisateurs Résultat: ensemble de documents décrivant les aspects pertinents de l environnement du futur système, son rôle et sa future utilisation L analyse des besoins est l activité essentielle au début du processus de développement. Elle est menée avec les études de faisabilité et la planification Marisela Hernandez 32
Spécifications des besoins Il est indispensable de déterminer les besoins du logiciel pendant la première phase. Les besoins peuvent se traduire sous plusieurs formes : - des spécifications générales, - des spécifications fonctionnelles, - des spécifications d interface. Marisela Hernandez 33
Spécifications des besoins Les spécifications générales sont un ensemble d objectifs, de contraintes (utilisation de matériels et outils existants) et de généralités qu il faudra respecter au cours du développement. Les spécifications fonctionnelles sont la description des fonctionnalités du logiciel de manière aussi détaillée que nécessaire. Les spécifications d interface sont la description des interfaces du logiciel avec le monde extérieure (utilisateurs, autres logiciels, matériels ) de manière aussi détaillée que nécessaire. Marisela Hernandez 34
Spécifications fonctionnelles des besoins Les spécifications fonctionnelles des besoins servent à définir ce que doit faire le logiciel et non comment il est fait. Ceci est décrit dans le document de spécification des besoins. Les besoins existants Spécifications des besoins du logiciel Le but de la première phase de développement est de spécifier les besoins du logiciel à partir des besoins existants. Marisela Hernandez 35
Exemple: Besoins du Gestionnaire journalier du temps Planification des RDV pour chaque jour Voir les RDV planifiés, possibilité de modification, annulation ou ajout d un nouveau RDV Pour chaque RDV stocker l heure, la durée, les intervenants, le lieu, Stocker des fiches pour chaque contact Séparer les contacts professionnels, personnels et des institutions administratives Marisela Hernandez 36
Exemple: Besoins du Gestionnaire journalier du temps Fenêtres pour visualiser les RDV par jour, par semaine, par mois Créer un répertoire pour stocker les contacts Création d un calendrier ou sont étalés tous les jours d un mois précis Créer des fiches pour les RDV Marisela Hernandez 37
Fonctionnalités d un Système de vente en ligne 1) Fonctionnalités du logiciel pour les gerants: Gerer les stocks de produits, les referencer Mettre en ligne les nouveaux produits, metre à jour les anciens produits, supprimer des produits, definir les prix Créer la base de données de clients Communiquer avec les clients par email Marisela Hernandez 38
Fonctionnalités d un Système de vente en ligne 2) Fonctionnalités du logiciel pour les banques Identifier la banque du client Communiquer avec la banque pour valider/refuser un paiement Calculer le montant total des commandes Calculer les taxes Marisela Hernandez 39
Fonctionnalités d un Système de vente en ligne 3) Fonctionnalités du logiciel concernant le client Créer un compte client (nom, prénom, adresse, téléphone fixe et portable, email, nom d utilisateur, mot de passe, ) Publier les commentaires sur les produits Créer et valider le panier virtuel Créer et suivre une commande Marisela Hernandez 40
Spécification d interface Une interface est un dispositif qui permet des échanges et interactions entre différents acteurs. Une interface humain-machine permet des échanges entre un humain et une machine. Une interface de programmation permet des échanges entre plusieurs logiciels. Marisela Hernandez 41
Spécification d interface L écran est un élément important et peut afficher du texte simple aussi bien qu un environnement graphique élaboré. L un des buts de la discipline est ainsi de donner des outils et des éléments pour mettre en forme au mieux cet environnement, et ainsi permettre à l homme l interagir plus agréablement ou plus efficacement avec la machine. Marisela Hernandez 42
Spécification d interface. Exemple 1 Menu Nombre de mines détectées par le joueur Durée de la partie Echiquier ou le joueur doit découvrir les mines Marisela Hernandez 43
Spécification d interface. Exemple 1 Nouvelle partie Niveau du joueur Propriétés d affichage Marisela Hernandez 44
Spécification d interface. Exemple 2 Marisela Hernandez 45
Conception générale But: établir une première description du futur système Résultat: une description de ce que doit faire le logiciel (on dit quoi, on ne dit pas comment) Une première étape dans le processus de conception d un logiciel, à partir des spécifications des besoins, permet de se focaliser sur la définition de l architecture du logiciel. La phase de conception générale permet d envisager plusieurs solutions au problème posé et d en étudier leur faisabilité. Pour chaque solution, les choix effectués sont notés avec leurs raisons. La solution répondant le mieux aux besoins exprimés est retenue et figée. Marisela Hernandez 46
Conception générale: Système de vente en ligne Gestion et affichage site web Interface gérants module achat Gestion clients Gestion et affichage produits Module paiement BANQUE Module facturation Marisela Hernandez 47
Conception générale: L analyse descendante L analyse descendante vise à subdiviser un grand programme en plusieurs sous programmes plus faciles à concevoir, de la même façon qu on divise un problème en sous-problèmes. Le principe consiste à décomposer le problème à résoudre (action globale) en problèmes plus simples (actions intermédiaires). Par affinements successifs, on arrive à des actions dites élémentaires, traduisibles directement dans un langage informatique. Marisela Hernandez 48
Conception générale: L analyse descendante Les actions intermédiaires ou élémentaires peuvent s enchaîner séquentiellement, être soumises à une condition, être répétées, c est le rôle des structures de contrôle elles aussi traduisibles dans un langage informatique. Les langages informatiques modernes sont conçus spécifiquement pour l analyse descendante. Marisela Hernandez 49
Conception générale: L analyse descendante Premier énoncé P 0 Sections de P 1 Sections de P 2 Sections de P 3 Sections de P 4 Programme final Programme Final Marisela Hernandez 50
Conception générale : les modules Un module est une unité regroupant un ensemble de sous-problèmes. Premier énoncé P 0 Sections de P 1 Sections de P 2 Sections de P 3 Sections de P 4 Programme final Programme Final Marisela Hernandez 51
Conception générale: L analyse descendante Premier énoncé P 0 Sections de P 1 Sections de P 2 Sections de P 3 Sections de P 4 Programme Final Marisela Hernandez 52
Conception générale : les modules Découper le logiciel en modules si l on utilise un langage classique (C, Pascal) ou définir les objets des systèmes si l on utilise un langage orienté objet (java; C++) Premier énoncé P 0 Sections de P 1 Sections de P 2 Sections de P 3 Sections de P 4 Programme Final Marisela Hernandez 53
Analyse Descendente: logiciel agenda Ajout Nouveau contact Gestion fiche de contact Ajout Nouveau RDV Base de données de contacts Gestion RDV Base de données Agenda Consultation EDT d un jour Marisela Hernandez 54
Analyse Descendente: logiciel agenda Ajout Nouveau contact Consultation d une fiche de contact Ajout Nouveau RDV Modification RDV Modification d une fiche de contact Base de données de contacts Consultation RDV Suppression d une fiche de contact Base de données Agenda Suppression RDV Consultation EDT d un jour Marisela Hernandez 55
Conception détaillée But: enrichir la description du logiciel de détails d implémentation à fin d avoir une description très proche d un programme à partir du résultat de la conception générale se poursuit le découpage du logiciel jusqu à arriver à une description des structures de données et une description algorithmique des sous -problèmes (procédures et fonctions). Marisela Hernandez 56
Conception détaillée : documentation Document de conception détaillée présente l architecture détaillée à laquelle on aboutit Le manuel de l utilisation du logiciel décrit la mise en œuvre du logiciel et son environnement Spécifications des test d intégration: les tests et jeux d essais à mettre en œuvre durant la phase d intégration Marisela Hernandez 57
Programme Un logiciel peut consister de un ou plusieurs programmes informatiques Programme TRAITEMENT ENTREE SORTIE Cycle de développement d un programme Bibliothèque de programmes Marisela Hernandez 58
Cycle de développement d un programme Pour développer un programme informatique : Problème à résoudre: Analyse Algorithme Programme Compilation Exécution Marisela Hernandez 59
Cycle de développement d un programme Exemple d application: Problème: calculer la puissance d un nombre Marisela Hernandez 60
Cycle de développement d un programme Analyse Phase de réflexion qui permet: d identifier le problème: calculer a n d identifier les caractéristiques du problème à traiter: données: a, n résultats: a n Cas particuliers: a positif, négatif ou zéro n positif, négatif ou zéro Traitement (calcul de la puissance) découper le problème en une succession de tâches simples et distinctes (sous-problèmes) Marisela Hernandez 61
Cycle de développement d un programme Analyse découper le problème en une succession de tâches simples et distinctes (sous - problèmes): Si a>0 et si n >0 on calcule a n en multipliant a n-1 par a et si n <0 on calcule a n =(1/a) -n avec -n >0 Si a<0 a n =(-1) n (ABS(a)) n Si a=0 et si n >0 a n =1 sinon a n n est pas défini Marisela Hernandez 62
Cycle de développement d un programme Algorithme Succession de tests, décisions et actions dans le but de résoudre le problème Est une description des opérations à mettre en œuvre pour obtenir un résultat à partir de données Le langage algorithmique est suffisamment proche des langages de programmation pour pouvoir être traduit aisément vers ces derniers. Marisela Hernandez 63
Cycle de développement d un programme Algorithme Lecture de données: a et n Initialisation de la puissance a 1 Initialisation du nombre d itérations à 0 Si a=0 alors si n >0 alors afficher puissance = 1 sinon afficher puissance non défini sinon si n <0 on met à la place de n son opposé et à la place de a son inverse (on se ramène au cas où n >0) Tant que le nombre d itérations est inférieur à n Répéter puissance suivante=puissance précédente * a compteur d itérations augmente de 1 Afficher la puissance Marisela Hernandez 64
Cycle de développement d un programme Programme Structure de données: a : nombre réel donné n : nombre entier donné p : nombre réel qui contient les puissances successives de a j : nombre entier, le compteur d itérations Marisela Hernandez 65