Informaticien
Mémoires Gratuits : Informaticien. Rechercher de 53 000+ Dissertation Gratuites et Mémoires.....................................12 VI. Sources et Annexes.…...........................................................................12
I. Introduction :
Avant de se lancer dans le développement d'un logiciel informatique, on prévoit une méthodologie de travail pour assurer le bon déroulement du projet tout en restant dans les limites du budget. En informatique et spécifiquement dans le domaine du développement, on a recours à différentes techniques et méthodes de travail qui permettent de gérer, d'organiser les équipes et de répondre aux besoins du client par la réalisation du produit désiré en un délai fixé. Dans ce rapport, on présentera en détails deux méthodes itératives (UP, SCRUM) et une méthode séquentielle (Cycle en V) assez utilisées:
3
I) CYCLE EN V:
1) Description :
Le modèle du cycle en V est une méthode d'organisation pour le développement d'un logiciel. Ce modèle a été imaginé pour pallier aux problèmes du modèle en cascade. Le principe de celui-ci est de découper le projet en plusieurs étapes distinctes sur le principe du non-retour. Le cycle en V est devenu un modèle standard de l'industrie logicielle depuis les années 80.En quelque mots, il permet de vérifier la qualité du produit en continu au fur et à mesure de l'avancement du projet. Le principe étant de limiter le retour aux étapes précédentes. Voici un aperçu du cycle en V :
2 figure1. Le cycle en V
Comme nous pouvons le voir sur la figure1. le modèle est constitué de trois grandes phases : descendante (1) ou phase de conception, phase de réalisation ou codage (2) et enfin la phase de validation ou ascendante (3).
4
2 – Description des phases du cycle :
L'étape de spécification est en correspondance avec l'étape de validation. L'étape de conception générale est en correspondance avec l'étape des tests d'intégration. L'étape de conception détaillée est en correspondance avec l'étape des tests unitaires.
2-1) Phase descendante :
a) Le besoin d'étude et de faisabilité (Cahier des charges) : C'est le point de départ du cycle, cette étape reflète les besoins du client. Cela doit répondre à différentes questions : que veut le client ? Est-ce réalisable ? Les coûts ? Le cahier des charges, rédigé par le client, décrit l'ensemble des besoins fonctionnels attendus par le système. Elle permet une meilleure compréhension du système et la structuration des besoins du client. b) Spécification: Les spécifications reprennent en détail les éléments du cahier des charges. Cette étape décrit de façon exhaustive ces exigences avec, par exemple, des diagrammes de cas d'utilisations (UML). c) Conception générale : La conception générale décrit de façon plus détaillée les fonctionnalités du logiciel. Chaque fonctionnalité est décrite en spécifiant son algorithme. La conception générale décrit également l'architecture du futur logiciel. A cette étape, la phase des tests d'intégration est initiée c'est-à-dire les tests qui permettront de démontrer que chaque fonctionnalité a été correctement implémenté. d) Conception détaillée : Chaque algorithme spécifié dans l'étape précédente est détaillé pour permettre à un programmeur de coder des algorithmes justes en lisant la conception détaillée. On est très proche du code final. A cette étape, est initiée la phase des tests unitaires qui permettront plus tard de prouver l'absence de " bugs".
2-2) Phase de réalisation :
a) Codage : Le codage ou développement informatique est la transcription en langage interprétable par un compilateur de la conception détaillée avec des langages comme JAVA, C++, PHP…etc. La fin du codage ne signifie pas la fin du projet, car il reste encore un ensemble de dysfonctionnement ou «bugs» qu'il est nécessaire de détecter et corriger. La phase de test est là pour supprimer autant que faire se peut les dysfonctionnements du codage.
5
2-3) Phase ascendante :
a) Tests unitaires : Les tests unitaires permettent de vérifier qu'il n'y a aucune erreur entre la transcription de la conception générale et le code. Ces tests ont déjà été décrits dans la conception détaillée. b) Tests d'intégration : Cette étape permet de vérifier qu’il n’existe pas d’erreurs entre la conception générale et la conception détaillée. Ces tests ont déjà été décrits dans la conception générale. c) Validation et Maintenance : On montre au client que le logiciel décrit dans le cahier des charges est bien en accord avec le produit final, pour cela une batterie de tests est imaginée pour montrer qu'il fonctionne bien comme le client le souhaitait.
3 - Risques et avantages du cycle en V :
3-1)Risques : Il arrive qu'à la phase de conception détaillée et ou à la phase de codage, des difficultés d'ordre technique ou de cohérence surviennent. Dans la partie théorique, ces problèmes ne peuvent survenir. C'est au cours de cette phase que l'on se rende compte que les spécifications peuvent être incomplètes, irréalisables ou même fausses. Pour certains produits compétitifs (exemple : logiciels micros....) la durée imposée par le cycle de vie est difficilement acceptée. 3-2)avantages : L'avantage du modèle est qu'il est un excellent support à la formalisation des relations entre le client et l'équipe de développement. En effet, il oblige le client à réfléchir aux différents aspects de sa demande. La phase de " spécification " permet à l'équipe de vérifier que la demande du client à été bien comprise. Le client valide généralement la spécification. La vérification/validation évite les retours arrière.
6
II. SCRUM : 1) Définition :
SCRUM est un terme anglais qui signifie : mêlée. C'est comme au rugby, tous les membres de l'équipe doivent être soudés pour atteindre un but commun. C'est une méthode agile dans l'objectif est d'améliorer la productivité. Les méthodes agiles sont des groupes de pratiques pouvant s'appliquer à divers types de projets, notamment aux projets de développement en informatique. Ces méthodes impliquent au maximum le client pour une réelle satisfaction des ses besoins. Les valeurs des méthodes agiles sont: Les personnes et interactions priment sur les processus et les outils Logiciel fonctionnel privilégié par rapport à une documentation détaillée Collaboration avec le client plutôt qu'une négociation au contrat S'adapter au changement plutôt que de suivre un plan
2) Les caractéristiques de SCRUM :
Itératif, lié a des processus incrémentaux Approche basé sur l'équipe Fait pour développer des produits/applications nécessitant une grande adaptabilité Contrôler le chaos résultat de conflits d'intérêt et des différents besoins Augmenter la communication et maximiser la coopération Protéger l'équipe des éléments externes perturbateurs Un moyen d'augmenter la productivité Le principe de base de Scrum est de focaliser l'équipe sur une partie limitée et maîtrisable des fonctionnalités à réaliser. Ces incréments se réalisent successivement lors de périodes de durée fixe de une à quatre semaines, appelées sprints. Chaque sprint possède, un but à atteindre, défini par le directeur de produit, à partir duquel sont choisies les fonctionnalités à implémenter dans cet incrément. Un sprint aboutit toujours à la livraison d'un produit partiel fonctionnel.
7
3) Les rôles de la méthodologie SCRUM : a) Directeur de produit :
Le directeur de produit (Product Owner) est le représentant des clients et utilisateurs. C'est lui qui définit l'ordre dans lequel les fonctionnalités seront développées et qui prend les décisions importantes concernant l'orientation du projet.
b) Équipe :
L'équipe ne comporte pas de rôles prédéfinis, elle est auto-gérée sans aucune hiérarchie interne : toutes les décisions sont prises ensemble avec beaucoup d'efficacité et une production de qualité de façon spontanée. L'équipe s'adresse directement au directeur de produit qu'il puisse ajuster les détails d'ergonomie et d'interface par exemple.
c) ScrumMaster :
Le facilitateur / animateur (ScrumMaster), on le considère bien souvent comme le manager de projet ou le Chef d'équipe. Il est chargé de protéger l'équipe de tous les éléments perturbateurs extérieurs à l'équipe et de résoudre ses problèmes non techniques. Responsable de faire appliquer par l’équipe les valeurs et les pratiques de Scrum Résout des problèmes S'assure que l'équipe est complètement fonctionnelle et productive
...