IFT 2251 Génie Logiciel Le Processus (fin)

Slides:



Advertisements
Présentations similaires
LA QUALITE LOGICIELLE Plan du cours La modélisation d’activité 1 h ½
Advertisements

Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Eléments de Génie Logiciel
6 — Aperçu du processus unifié
M1 MASTER GESTION Séance 3 Pilotage coûts- délais
Processus d'expression du besoin
La Gestion de la Configuration
Le processus unifié UML est un langage de modélisation et n ’impose pas de démarche de développement Le processus unifié : méthodologie de développement.
UML - Présentation.
Eric BONJOUR, Maryvonne DULMET
Les démarches de développement
Les démarches de développement
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Rational Unified Process (RUP)
Les Ateliers de Génie Logiciel
Chapitre VII :Commande par retour d’état
Atelier d ’ingénierie des systèmes d ’apprentissage (ISA)
MIAGE MASTER 1 Cours de gestion de projet
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Cycle de vie dun logiciel Origine des erreurs La spécification 50% 40% 10% Le design Le codage.
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
le profil UML en temps réel MARTE
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
Algorithmique et Programmation
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 2 : Les applications fonctionnelles.
Sommaire Objectif de Peakup Principes de fonctionnement
La voyage de Jean Pierre
1 Conduite du changement LA CONDUITE DU CHANGEMENT.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Département de génie logiciel et des TI Université du Québec École de technologie supérieure Systèmes dinformation dans les entreprises Systèmes dinformation.
SYSTEMES D’INFORMATION
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 7 : Les méthodes de conception.
SCIENCES DE L ’INGENIEUR
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Conception des Réalisé par : Nassim TIGUENITINE.
Portée, arrimages et intervenants Évolution des méthodes
Eurométhode: méthode de gestion de la relation client-fournisseur
Ingénierie Système en SysML appliquée à la rédaction du cahier des charges Y. Le Gallou Séminaire académique STI2D - Calais – 1er avril 2014.
ANALYSE METHODE & OUTILS
Mise en oeuvre et exploitation
1. Présentation générale du système
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Les principes de la modélisation de systèmes
Supports de formation au SQ Unifié
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Développement d'application rapide GEF492A Automne 2014 [HvV § 3.2.3]
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Cycles de Vie du Logiciel LFI2 Genie Logiciel/ Gestion de Projets Septembre 2008.
Interface Homme-machine (interaction humain-machine)
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
Introduction au Génie Logiciel
Extrait du Referentiel BTS Systèmes numériques Options : Informatique et réseaux et Électronique et communication S1 à S9 Définition des savoirs et savoir-faire.
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus (fin) Hiver 2002 Petko Valtchev.
Problèmes du génie logiciel. H. Lounis Les problèmes zTaille et complexité des logiciels ; zTaille croissante des équipes ; zSpécifications peu précises.
IFT 2251 Génie Logiciel Le Processus
Année 2006 – 2007 ENSEA © Emeric Rollin
L’enseignement de spécialité SLAM
Les démarches de développement
( ) Collège de Maisonneuve
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Conférence 2TUP Stéphane Barthon 03/12/
Document de spécification d’exigences Normes IEEE et 29148:2011
19 avril Spécification d’un cadre d’ingénierie pour les réseaux d’organisations Laboratoire de recherche : OMSI à l’EMSE.
Transcription de la présentation:

IFT 2251 Génie Logiciel Le Processus (fin) Hiver 2002 Petko Valtchev

Sommaire Logiciel, tentative de définition Génie logiciel, aspects historiques La qualité des logiciels Le processus de production Concepts de base Nature du processus et phases Modèles de processus

Les Questions Questions fondamentales: Quel est le problème à résoudre? Quelles sont les fonctionnalités désirées du logiciel? Comment sera conçu et construit le logiciel? Quelle technique sera utilisée dans la détection des erreurs (bogues) dans le logiciel Comment le logiciel sera-t-il maintenu (corrigé et/ou amélioré)?

Les Activités Les Activités constituant le Processus: Acquisition des besoins Analyse Conception Implémentation Vérification et validation Maintenance Retrait + Gestion des ressources humaines et matérielles

Définitions « Processus: fournit un cadre pour le développement en apportant des réponses aux principales questions d’ordre organisationnel. » Pressman, 2001 Comment gérer les activités du projet? Comment utiliser les ressources techniques? Comment produire les différents documents (pour décrire modèles, données, avancement du projet, etc.)? Comment fixer les objectifs du projet à long, moyen et court terme? Comment gérer les éventuels changements? Ex. Rational Unified Process, Extreme Programming, etc.

Définitions (suite) « Méthode: Décrit une manière d’aborder les différentes activités (souvent un sous-ensemble) du développement du logiciel en proposant des principes, des théories, des formalismes, des techniques de modélisation et de spécification pour réaliser ces activités. » Pressman, 2001 Ex. OMT, OOA/OOD, Objectory, etc.

Définitions (fin) « Outil: Support automatisé ou semi-automatisé pour l’application d’une méthode ou d’un processus. » Pressman, 2001 Computer-Aided Software Engineering (CASE) Tool Atelier de Génie Logiciel: Ensemble cohérent d'outils informatiques formant un environnement d'aide à la conception, au développement et à la mise au point de logiciels d'application spécialisés.

Sommaire Logiciel, tentative de définition Génie logiciel, aspects historiques La qualité des logiciels Le processus de production Concepts de base Nature du processus et phases Modèles de processus

Résolution itérative de problèmes Le Processus Logiciel Résolution itérative de problèmes Phase 1 définition du problème Ré-évaluation de la situation: Phase 2 status développement quo technique intégration de la solution Phase 3

Les Phases, 1 1. Définition QUOI Quel public (usagers)? Quelles fonctionnalités? Quelles propriétés? Quelles performances? Quelles comportements? Quel type d’interfaces? QUOI Objectifs Besoins : Comprendre le problème Spécification : Identifier les caractéristiques requis du système Pourquoi : répondre à l'évolution des matériels, des systèmes, des langages de programmation, et surtout la complexité toujours croissantes des logiciels.

Les Phases, 2 2. Developpement COMMENT Comment structurer l’information? Comment implémenter la conception logicielle? Comment tester le logiciel? Objectif Traduction progressive des spécifications (Le Problème) vers une description du système (La Solution) sans pour autant produire ce système. Pourquoi : réduire la complexité du passage entre la description du problème et sa solution.

Les Phases, 3 3. Maintenance CHANGEMENT Réingénierie Pourquoi : Corrections Adaptations Améliorations Modifications préventives Erreurs Évolution de l’environnement Nouveaux besoins Anticipation sur les conditions de fonctionnement et de maintenance Réingénierie

Activités de support Activités de support Suivi du projet Révision formelle Contrôle de la qualité Documentation Gestion de la réutilisation Évaluation Gestion du risque etc. D C I

Le modèle proposé par SEI (Software Engineering Institute) Maturité du Processus Le modèle proposé par SEI (Software Engineering Institute)                Primitif (Initial) Reproductible (Repeatable) Défini Bien géré (Managed) Optimisant

Sommaire Logiciel, tentative de définition Génie logiciel, aspects historiques La qualité des logiciels Le processus de production Concepts de base Nature du processus et phases Modèles de processus

Le modèle classique de développement Le Modèle en Cascade Le modèle classique de développement Ingénierie du système analyse conception code test

La Cascade Ingénierie du système - phase préliminaire Système (au sens large) = configuration de composantes matérielles, logicielles (BD, réseaux, passerelles Web, etc.), humaines (usagers du système). dans laquelle devra s’intégrer le logiciel à développer. Besoins - clarification des besoins relatifs à tous les éléments du système Vue d’ensemble sur les besoins.

Les Activités Analyse des besoins Objectif : éviter de produire un logiciel inadéquat. Démarche : Étudier les besoins et les spécifier de la manière la plus claire possible. Les éléments pertinents incluent: le domaine d’application, l'environnement du futur système, le rôle escompté du système, les ressources disponibles et requises, les contraintes d'utilisation, les performances attendues.

Les Activités Conception Objectif : transformer la description du problème obtenu par l’analyse en une description (de plus en plus détaillée) de la solution, sans pour autant produire la solution elle-même. Démarche : La conception architecturale: décomposition du système logiciel en sous-systèmes (composants) de taille et complexité inférieures; chaque sous-système est décrit par ces fonctions et les interfaces avec le reste du système. La conception détaillée: définition des détails concernant la réalisation de chaque composant: algorithmes, structures de données, etc.

Les Activités Implémentation Objectif : Production du code des composants à partir de leurs conceptions détaillées. Démarche : Si la conception est de bonne qualité, la génération se fait de manière directe et peut être automatisée pour une grande partie.

Les Activités Vérification (tests) Objectif : S’assurer que le logiciel produit respecte les spécifications initiales. Démarche : Vérification de l’ensemble des descriptions produites tout au long du développement. Examens des artefacts du développement: preuves de correction tests dynamiques = choix d’une sous-ensemble représentatif des données possibles et exécution du logiciel avec ces données.

Les Activités Maintenance Objectif : S’assurer que le logiciel livré continue de répondre aux besoins du client qui peuvent évoluer dans la période post-livraison. Démarche : Correction d’erreurs, Adaptations Ex. nouvelle plate-forme, Améliorations Ex. service accessible via le Web. Changements au logiciel = nécessité de traverser une ou plusieurs (voire toutes) les phases du développement en cascade.

Le Modèle en Cascade Bilan    Les projets réels suivent rarement un déroulement purement séquentiel, souvent il y a des retours en arrière. Le client est rarement capable d’exprimer la totalité de ses besoin en une seule fois, d’habitude il prend conscience de certains besoins au cours du projet. Le client doit être patient car il ne verra une version exécutable de son système que vers la fin du processus de développement.   Problème de validation important!!!

Sommaire Le processus de production Concepts de base Nature du processus et phases Modèles de processus Modèle en cascade Modèle par prototypage « Rapid Application Development » Modèles évolutifs Modèles avancés

Développement de Prototypes CLIENT Connaissances du domaine Jargon technique Document des besoins Indécis, opinion variable Besoins ambigus, incomplets Connaissances en logiciel Langages, notations INGENIEUR DU LOGICIEL Incomplet Imprécis Spécifications ésotériques

Modèle par Prototypage Démarche : Pour corriger les spécifications du logiciel au fur et à mesure, construction d’un prototype (maquette). Écouter le client Consulter/ réviser la maquette Faire tester la maquette par le client Une ou plusieurs itérations…

Les Prototypes Deux manières de construire des prototypes: Approche classique «prototypage jetable » : Réalisation rapide d’un prototype dès le début du cycle de vie. Le prototype sert alors de référence pour la définition et la validation des spécifications, puis il est « jeté ». Le système logiciel final ne contient pas d’éléments du prototype. Approche évolutive «prototypage incrémental» : Réalisation dès le début du cycle de vie d’un premier prototype (p1). Ajouts progressif de fonctionnalités supplémentaires (raffinements: p2,p3,…) jusqu’à l’obtention du prototype final pn(pn = système visé).

Le Modèle par Prototypage Bilan  Le client a tendance à vouloir faire du simple prototype son produit final. Il ignore que souvent la façade cache une conception très approximative, voire inexistante. Les choix des développeurs pris lors du prototypage, et donc sous fortes contraintes temporelles, ont des fortes chances de devenir de choix définitifs. On oublie que ces choix n’étaient peut-être pas les meilleurs du point de vue de la qualité. 

Sommaire Le processus de production Concepts de base Nature du processus et phases Modèles de processus Modèle en cascade Modèle par prototypage « Rapid Application Development » Modèles évolutifs Modèles avancés

Rapid Application Development Cycle de développement très court = 60 à 90 jours. Adaptation « haute vitesse » du modèle en cascade. Conception à base de composants. Pré-conditions essentielles: besoins logiciels bien saisis, portée du projet bien définie, projet facilement « modularisable ».

Le Modèle RAD Cinq grandes phases : Modélisation des fonctions d’affaires (business functions): Définition des fonctions du système (en termes d’entrées - sorties) et du flot des informations à être manipulées et transformées. Modélisation des données: Définition des structures de données qui vont accueillir les informations manipulées. Modélisation des processus: Définition des processus qui traitent les informations. Génération de l’application: Construction de l’application à partir des modèles produits auparavant. Utilisation d’outils de 4e génération (ex. CASE) pour la généation. Test et livraison de l’application.

Schéma RAD 60 - 90 jours équipe #1 équipe #3 équipe #2 modéliser b u s i n e m o d l g a t p r c & v business modeling data process application generation test & turnover modéliser les fonctions d’affaires modéliser les données modéliser les processus générer l’application Rapid Application Development tester et livrer 60 - 90 jours

Le Modèle RAD Bilan     Nécessite des ressources humaines importantes: Afin de pouvoir composer le nombre suffisant d’équipes. Exige l’engagement constant du client sous péril de faire échouer le projet. Supporte mal des niveaux de risque élevés: Le modèle RAD n’est pas approprié lorsque des facteurs de risque importants sont présents car ceux-ci peuvent provoquer de retards non-négligeables dans le travail d’une des équipes. Ex. utilisation de nouvelles technologies Portée limitée: Le modèle RAD ne se prête pas au développement de certains types de logiciel   

Sommaire Le processus de production Concepts de base Nature du processus et phases Modèles de processus Modèle en cascade Modèle par prototypage « Rapid Application Development » Modèles évolutifs Modèle incrémental Modèle en spirale Modèles avancés

Les Modèles Évolutifs CONSTAT Au sein des modèles vus précédemment: Le système est divisé en composants séparés qui sont développés pour être intégrés à la fin (juste avant les tests et la livraison). CONSTAT Afin de permettre un retour de la part du client (usager) plus tôt dans le processus global: De versions successives du système sont livrées, avec chaque prochaine version possédant des fonctionnalités de plus en plus complètes vis à vis des besoins du client. Un processus global itératif est utilisé permettant de passer plusieurs fois par les différentes phases du développement. Ex. Modèle par «prototypage incrémental» - une approche évolutive Modèle incrémental Modèle en spirale

… Le Modèle Incrémental Modèles par incrément: le système est séparé en incréments qui sont constitués d’un ensemble de composants, chaque incrément développé selon un modèle de processus complet: souvent un modèle en cascade, à la fin de leur cycle de vie (indépendante) des incréments viennent s'intégrer, dans l’ordre, à un noyau développé au préalable (le plus souvent, l’incrément 1) version 1 (noyau) version 2 version finale Dans les modèles précédents un logiciel est décomposé en composants développés séparément et intégrés à la fin du processus. Dans les modèles par incrément un seul ensemble de composants est développé à la fois : des incréments viennent s'intégrer à un noyau de logiciel développé au préalable. Chaque incrément est développé selon l'un des modèles précédents. Les noyau, les incréments ainsi que leurs interactions doivent donc être faites globalement, au début du projet. Les incréments doivent être aussi indépendants que possibles, fonctionnellement mais aussi sur le plan du calendrier du développement. i2 i1 i3 i1 i2 i1 … i4

Schéma Incrémental livraison du 1er incrément livraison du incrément 1 (noyau) analyse concept. livraison du 1er incrément code test a n l y s i d e g c o t livraison du 2nd incrément incrément 2 a n l y s i d e g c o t livraison du 3eme incrément incrément 3 a n l y s i d e g c o t incrément 4 livraison du 4eme incrément temps

Le Modèle Incrémental, Bilan Avantages chaque développement est en soi moins complexe, l’intégration des incréments se fait de manière progressive, possibilité (et non obligation!) d’une livraison et de mise en service après le développement de chaque incrément, permet une meilleure gestion de l’ensemble des ressources allouées au projet: du temps réduit par rapport au modèle en cascade du coût en effort humain réduit par rapport au RAD: recouvrement entre processus pour les incréments, mis pas de recouvrement entre phases. Risques devoir remettre en cause le noyau ou les incréments précédents, une tâche ardue, ne pas pouvoir intégrer de nouveaux incréments. Dans les modèles précédents un logiciel est décomposé en composants développés séparément et intégrés à la fin du processus. Dans les modèles par incrément un seul ensemble de composants est développé à la fois : des incréments viennent s'intégrer à un noyau de logiciel développé au préalable. Chaque incrément est développé selon l'un des modèles précédents. Les noyau, les incréments ainsi que leurs interactions doivent donc être faites globalement, au début du projet. Les incréments doivent être aussi indépendants que possibles, fonctionnellement mais aussi sur le plan du calendrier du développement.

Sommaire Le processus de production Concepts de base Nature du processus et phases Modèles de processus Modèle en cascade Modèle par prototypage « Rapid Application Development » Modèles évolutifs Modèle incrémental Modèle en spirale Modèles avancés

Le Modèle en Spirale CONSTAT De facteurs comme l’évolution des besoins ou leur remise en cause après la livraison, lesquels entraînent un passage supplémentaire par toutes les phases du cycle de vie, ne sont pas reflétés par les modèles vus précédemment. CONSTAT L’inévitable remise en cause des résultats d’un processus partiel est explicitée sous forme d’une spirale dans le modèle du même nom. Projet global, divisé en un ensemble de sous-projets réalisés en séquence. Sous-projet = un circuit de la spirale de développement (1 ou + tours). Chaque tour de la spirale traverse six régions d’activités. Région d’activité = ensemble de tâches spécifiques à réaliser. Chaque tour de la spirale doit produire ses propres résultats: un document de spécification, un prototype initial, une version améliorée du prototype, etc.

Le Modèle en Spirale, Schéma Planification Analyse des risques Discussion avec le Client Évaluation par le Client Ingénierie Construction & Livraison Les itérations sont rendues explicites!

Le Modèle Incrémental, Bilan Avantages Combine les avantages des modèle en cascade, par prototypage et incrémental. De façon générale, le modèle est réaliste et bien adapté pour le développement de systèmes de taille large. Risques L’analyse des risques étant, elle aussi, « évolutive », cela risque d’inquiéter le client. Modèle moins connu que les modèles en cascade et par prototypage. Moins de recul, donc difficile d’en évaluer l’efficacité. Dans les modèles précédents un logiciel est décomposé en composants développés séparément et intégrés à la fin du processus. Dans les modèles par incrément un seul ensemble de composants est développé à la fois : des incréments viennent s'intégrer à un noyau de logiciel développé au préalable. Chaque incrément est développé selon l'un des modèles précédents. Les noyau, les incréments ainsi que leurs interactions doivent donc être faites globalement, au début du projet. Les incréments doivent être aussi indépendants que possibles, fonctionnellement mais aussi sur le plan du calendrier du développement.

Sommaire Le processus de production Concepts de base Nature du processus et phases Modèles de processus Modèle en cascade Modèle par prototypage « Rapid Application Development » Modèles évolutifs Modèles avancés Modèle de développement par composants Modèles centrés sur des méthodes formelles

Le Modèle par Composants Processus de développement similaire à celui en spirale mais dans lequel l’activité d’ingénierie a une forme particulière. Ingénierie = conception de l’application à partir de composants logiciels prêts à l’emploi (disponibles sous forme de librairies commerciales) Identification des composants candidats. Chercher composants dans les librairies. Si disponible, extraire les composants. Sinon, les construire soi-même et les ajouter à la librairie. Intégrer les composants à la nième version du système. Certains Ateliers de génie logiciel offrent l’environnement nécessaire pour ce type de processus.

Sommaire Le processus de production Concepts de base Nature du processus et phases Modèles de processus Modèle en cascade Modèle par prototypage « Rapid Application Development » Modèles évolutifs Modèles avancés Modèle de développement par composants Modèles centrés sur des méthodes formelles

Le Modèle « Méthodes Formelles » Notations mathématiques et techniques d’analyse rigoureuses pour la spécification, la conception et la vérification de systèmes informatiques. Plusieurs outils CASE disponibles pour les principales méthodes. Ex. VDM, B, Z, CTL, Lotos, etc. Avantages = Détection précise d’ambiguïtés et d’erreurs, de problèmes de complétude et de cohérence. Inconvénients: Coûteux en temps, expertise requise, moyen inadéquat pour communiquer avec le client.