Modèle de process logiciel (Cycle de vie)
1.1.2 - Le modèle en cascade (Waterfall model). 2
1.1.5 - Le processus Itératif. 4
1.1.6 - Processus Unifié : (Unified Process). 5
1.1.7 - Les méthodes agiles. 7
1.1.1 - Code and fix
Pas un vrai modèle. Mais c'est ce que fait la plupart des programmeurs en cas de petit projets et des programmes de type démonstration. C’est un processus cyclique, le développeur commence par l’imagination d’une solution. Après, cette solution conceptuelle est codée et testée. En cas d’erreur, l’erreur est fixée. Ces étapes sont répétées jusqu’à ce qu’une version soit produite.
Dans ce modèle il n'y a pas d'exigences formelles, pas de documentation et pas d'assurance qualité. Il n y’a pas même d’une phase de maintenance puisque la version produite est de type démo.
Ce modèle est présenté par la Figure 1.
Figure 1 Le modèle code and fix
1.1.1 - Le modèle en cascade (Waterfall model)
Ce modèle a été défini par 1970 by Winston Royce et il est considéré comme l'un des plus anciens modèles de processus logiciel. Les phases de ce processus sont présentées par la figure 2.
Ces phases s’exécutent en séquence et aucune phase ne peut démarrer avant que la phase précédente soit terminée.
Il est considéré comme un modèle simple et facile à utiliser.
Figure 2 Phases du processus en cascade
1.1.1 - Le modèle V
Similaire au modèle en cascade. Mais met l'accent sur les activités V&V (Validation & Vérification). Des tests sont effectués pour chaque activité : des tests d'acceptation sont effectués pour valider les besoins, et des tests d’intégration pendant la phase de conception et des tests unitaire pendant l’implémentation. Pour cette raison, le modèle V est préférable au modèle en cascade.
Figure 3 le modèle en V
1.1.1 - Prototyping
Dans ce processus un prototype jetable est construit pour aider à comprendre les exigences. Ce prototype est développé sur la base des exigences actuellement connues. Le développement du prototype passe par une phase de conception, de codage et de tests. Ces phases sont généralement faites d’une façon peu formelle ou approfondie. Ce prototype donnera au client une idée réelle sur le futur système ce que lui permettra de mieux comprendre les besoins du système demandé.
1.1.2 - Le processus Itératif
Le modèle de processus de développement itératif veut combiner les avantages du prototypage et du modèle en cascade. L'idée de base est que le logiciel doit être développé par incréments, chaque incrément étends les fonctionnalités déjà développé jusqu'à ce que le système en entier soit produit. Ce processus est présenté par la figure 3.
Figure 4 Principe de fonctionnement du processus itératif.
1.1.1 - Processus Unifié : (Unified Process)
L’UP est un autre modèle de processus itératif et incrémental. Il a été conçu pour un développement orienté objet en utilisant UML (Unified Language Modeling).
L’UP est un processus piloté par les cas d’utilisation, centré sur l’architecture et basé sur la gestion des risques.
Dans L’UP le développement de logiciels est divisé en cycles, chacun cycle est exécuté comme un projet indépendant et produit une version fonctionnelle.
Chaque cycle lui-même est divisé en quatre phases qui s’exécutent en série :
- Inception
- Elaboration
- Construction
- Transition
Chaque phase peut être réalisée en plusieurs itérations et chaque itération est une exécution en série de plusieurs activités telles que la modélisation de besoins métiers, analyse et conception , implémentation, test, déploiement, gestion de projet et gestion de la configuration ( voir figure 5).
Figure 5 Le processus UP.
Les variantes de UP les plus connues sont :
· RUP : Rational Unified Process
· 2TUP : Two Tracks Unified Process
1.1.1 - Les méthodes agiles
Les méthodes agiles telles que XP(i.e., Extreme Programming ) et SCRUM sont basées sur une approche de développement itérative, incrémentale et adaptative et visent à être plus pragmatiques pour combler quelques déficits des méthodes classiques de développement logiciel. L’approche agile base le développement logiciel sur une implication maximale du demandeur (client) et vise l’augmentation de la réactivité pour faire face efficacement à ses demandes changeantes.
Les méthodes agiles sont basées sur la philosophie agile présenté par l’Agile Manifesto (agilemanifesto.org, by Kent Beck, Robert C. Martin, Martin Fowler). Cette philosophie est basée sur quatre valeurs fondamentales déclinées en douze principes.
Les 4 valeurs sont :
· Individuals and Interactions Over Processes and Tools.
· Working Software Over Comprehensive Documentation.
· Customer Collaboration Over Contract Negotiation.
· Responding to Change Over Following a Plan.
Et les 12 principes sont présenté par la table suivante :
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. |
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. |
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. |
Business people and developers must work together daily throughout the project. |
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. |
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. |
Working software is the primary measure of progress. |
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. |
Continuous attention to technical excellence and good design enhances agility. |
Simplicity--the art of maximizing the amount of work not done--is essential. |
The best architectures, requirements, and designs emerge from self-organizing teams. |
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. |
Table 1 The agile Minifesto