Le processus du logiciel Quel est le cycle de vie d’un logiciel et ses modèles? B.Shishedjiev - Génie logiciel
Le processus de logiciel Activités Spécification – qu’est ce que le logiciel doit faire et les contraintes posées au développement Développement - production logiciel Validation – vérification si le logiciel est celui qui est attendu du client. Evolution – modification du logiciel en accordance avec les besoins. B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Modèles génériques Cascade Développement évolutif Basé à l’assemblage de composants B.Shishedjiev - Génie logiciel
Cascade Définition des besoins Conception Implementation et test des modules Intégration et test du système Exploitation et maintenance B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Cascade Problèmes Il est difficile de séparer les étapes On peut l’utiliser quand les besoins sont bien définis et ils sont stables. Avantages Bien documenté à chaque phase Désavantages Rigide (on ne peut pas de répondre au besoins nouveaux ou modifiés des clients) B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Processus évolutif Aperçu de description Spécification Développement Validation Version initiale Versions intermédiaires finale B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Processus évolutif Problèmes Manque de visibilité Mauvaise structure Exige des qualités spéciales des programmeurs Application Systèmes de petite et moyenne taille Parties de grands systèmes Systèmes de courte vie. B.Shishedjiev - Génie logiciel
Développement par composants Spécification des besoins Analyse des composants Modification Conception avec réutilisation Développement et intégration Validation B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Processus itérative Approches Livrer par incréments Développement spirale B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Livrer par incréments Définir l’aperçu des besoins Affecter les besoins aux incréments Conception de la architecture Valider l’incrément Intégrer le système Développer un incrément B.Shishedjiev - Génie logiciel
Développement spirale B.Shishedjiev - Génie logiciel
Développement spirale Secteurs Préciser les objectifs Définir et minimiser le risque Développement et validation Planifier l’itération suivante B.Shishedjiev - Génie logiciel
Activités – Encore une fois Spécification des besoins– qu’est ce que le logiciel doit faire et les contraintes posées au développement Développement - production du logiciel Validation – vérification si le logiciel est celui qui est attendu du client. Evolution – modification du logiciel en accordance avec les besoins B.Shishedjiev - Génie logiciel
Le processus de définir les besoins Etude de faisabilité Trouver les besoins et analyse Spécification des besoins Validation Rapport de Modèles du système Besoins d’usager et du système Document des besoins (Cahier de charge) B.Shishedjiev - Génie logiciel
Conception et implémentation C’est le processus de convertir la spécification en un exécutable logiciel. Conception – conception de la structure du logiciel qui réalise la spécification Implémentation – Traduit la structure en un programme exécutable. B.Shishedjiev - Génie logiciel
Conception Activités de la conception Produits du projet Spécification des besoins Activités de la conception Conception de l’architecture Spécification abstraite Conception de l’interface Conception des composants Conception de la structure des données Conception des algorithmes Architecture du système Spécification du logiciel Spécification de l’interface Spécification des composants Spécification des données Spécification des algorithmes Produits du projet B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Modèles graphiques Modèle objet Modèle des séquences Modèle de transition d’états Modèle structural Modèle des flux de données Modèle des activités B.Shishedjiev - Génie logiciel
Programmer et déboguer Programmation est un act individuel. Déboguer Localiser l’erreur Conception la correction Test programme Correction B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Validation Test des composants Test du système Test acceptant Test composants système acceptant B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Validation Spécification Spécification Conception Projet des besoins du système du système détaillé Plan du test d’intégration sous-système Test du code des programmes et composants Plan du test acceptant Plan du test d’intégration système Test acceptant Test d’intégration système Test d’intégration sous-système Услуга B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Evolution Définir les besoins Evaluer les sys- tèmes existants Proposer changements Modifier les systèmes Systèmes existants Système nouveau B.Shishedjiev - Génie logiciel
Processus de développement unifié Rational Unified Process (RUP) Perspectives Dynamique – les phases dans le temps Statique – les activités du processus Pratique – les bonnes paratiques Phases création (inception) – les faits pour le système et les profits élaboration – comprendre le domaine et l’architecture réalisation (construction) – conception et implémentation passage (transition) – deployer dans l’environnement opérationnel B.Shishedjiev - Génie logiciel
Processus de développement unifié B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel CASE outils Single-method w or kbenches Gener al-purpose Multi-method Langua ge-specific Pr o g r amming T esting Anal ysis and design Integ a ted en vir onments ocess-centr ed File compar tors Compilers Editors En W ools CASE technology B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Gestion du projet Contraintes Le temps Le budget Le personnel Propriétés distinctes Intangible Exceptionnellement souple (flexible) Pas standardisé Unique B.Shishedjiev - Génie logiciel
Activités de la gestion Ecrire une proposition Planification et emploi de temps Calculer les coûts Suivi et révisions Sélection et évaluation du personnel. Ecrire des présentations et rapports. B.Shishedjiev - Génie logiciel
Planification du projet C’est une tâche qui est ce déroule du début à la fin. On peut développer plusieurs autre plans qui aide le plan principal qui concerne l’emploi de temps et le budget. Plan de qualité Plan de validation Plan de gestion de configuration Plan de maintenance Plan de qualification du personnel B.Shishedjiev - Génie logiciel
Processus de planification Déterminer les contraintes du projet Faire évaluation initiale des paramètres du projet Définir les étapes importantes et leur produits while le projet n’est pas encore fini or est cancellé loop Dessine l’emploi de temps Initier les activités en accord avec l’emploi de temps Attendre (un certain temps) Réviser le progresse du projet Réviser l’évaluation des paramètres du projet Modifier l’emploi de temps Renégocier les contraintes et les produits if ( un problème est apparu ) then Initier une étude technique et une possible révision end if end loop B.Shishedjiev - Génie logiciel
Structure du plan du projet Introduction. Organisation du projet Analyse du risque. Besoins de ressources de matériel et de logiciel. Décomposition du travail. Emploi de temps. Mécanismes de suivi et rapporter. B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Emploi de temps Décomposer le projet en tâches et évaluer le temps et les ressources exigés pour accomplir chaque tâche. Organiser les tâches en parallèle pour optimiser l’usage du personnel. Minimiser le dépendances pour éviter les retards causés par une tâche qui attend une autre de finir. B.Shishedjiev - Génie logiciel
L’emploi de temps Problèmes Déterminer les activités Déterminer les dépendances Evaluer ressources pour les activités Nommer du monde pour les activités Faire les tableaux et graphismes Besoins du logiciel Les graphiques d’activités Problèmes Productivité n’est pas proportionnelle au nombre de gens accomplissent une tâche. Ajout du monde va créer des problèmes de communication L’inattendu arrive toujours. On doit avoir toujours un peu de réserve. C’est trop difficile d’estimer en avant les ressources et le temps qu’on a besoin de. B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Dépendances Activité Durée (jours) Dépendances T1 8 T2 15 T3 T1 (M1) T4 10 T5 T2, T4 (M2) T6 5 T1, T2 (M3) T7 20 T8 25 T4 (M5) T9 T3, T6 (M4) T10 T5, T7 (M7) T11 7 T9 (M6) T12 T11 (M8) B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Réseau de Petri B.Shishedjiev - Génie logiciel
Diagramme des activités B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Diagramme de Gant B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Gestion des risques Qu’est ce que c’est risque? La probabilité que quelque circonstances défavorables vont arriver Types de risque De projet – affecte l’emploi de temps ou les ressources De produit – affecte la qualité et le comportement du logiciel D’organisation – affecte le l’organisation B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Gestion des risques Identification de risque Analyse de risque Estimer la probabilité et conséquences; Planifier le risque Plans d’éviter et minimiser les effet du risque; Suivi du risque B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Gestion des risques Identification des risques Analyse Planifier Suivi Plans pour éviter les risques et d’urgence Liste de risques potentiels Liste prioritaire des risques Estimer le risk B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Gestion des risques Identification du risque Technologiques Personnel. Organisation. Besoins. Estimation. Analyse – La probabilité et les effets du sinistre Probabilité – très basse, basse, modérée, haute, très haute. Effets – catastrophique, sérieux, tolérable, insignifiant. B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Gestion des risques Planifier – pour chaque risque Stratégie d’éviter le risque – diminuer la probabilité Stratégie de minimisation – minimiser l’effet du sinistre Plan d’urgence – quand l’événement arrive qu’est ce qu’on doit faire. Suivi Estimer chaque risque par périodes réguliers pour voir si la probabilité a changé. Estimer les effets de chaque risque Ne pas voir peur de discuter les problèmes B.Shishedjiev - Génie logiciel