Chute d'eau

Le modèle de développement de chute d’eau dans le contexte du génie logiciel est un processus de conception séquentielle, souvent utilisé dans les processus de développement de logiciel, dans lequel les progrès circulant régulièrement vers le bas (comme une chute d’eau) dans les phases de conception, initiation, analyse, conception, construction, essais, fabrication/production et maintenance. Cette approche méthodologique pour trier rigoureusement les étapes du cycle de vie des moyens, de telle manière qu’au début de chaque phase doit attendre la fin du précédent immédiatement.

Un exemple d’une méthodologie de développement de chute d’eau est de suivre ces étapes : exigences d’analyse, la conception du système, du programme conception, codage, tests, mise en œuvre et maintenance. De cette façon, toute erreur de conception détecté dans le test étape entraîne nécessairement la refonte et nouvelle programmation du code affecté, augmentant les coûts de développement. La cascade du mot l’indique, à l’aide de la métaphore de la force de gravité, l’effort nécessaire pour introduire un changement dans les phases plus avancées d’un projet. Alors qu’elle a été largement critiquée depuis le milieu universitaire et l’industrie, continue d’être le paradigme plus souvent de nos jours.

Méthodologie agile (philosophie)

Par rapport au développement du logiciel traditionnel, la méthodologie agile est destinée à des systèmes complexes avec des projets dynamiques, où pour faire des prédictions exactes de l’époque de développement est très difficile. En conséquence, elle perdrait trop d’argent. Le nombre d’années d’expérience ont contribué à compenser les méthodologies agiles.

Prédictive et adaptative

Il existe des méthodes de développement sur un continuum allant du « adaptive à prédictive. Méthodologies agiles font partie de l’accord antidumping. Un des éléments clés du développement adaptatif est appelé Rolling Wave, qui détermine les objectifs, mais il permet à la fois pour les amener, ces objectifs sont également soumises à des changements futurs possibles. Dans quelle mesure viendra, dans le temps, un but, une évolution adaptative sera plus vague sur ce qu’ils dépensent à cette date. Une équipe qui utilise le développement adaptatif ne peut pas rapport sur qui fera la semaine prochaine, mais si quelles sont les caractéristiques à mettre en œuvre au cours du mois prochain. Si l’équipe a demandé une prédiction de ce qui se fera après six mois (ou un montant considérable de temps) l’équipe ne pourrez faire rapport sur l’objectif principal, ou une prédiction du coût que vous aurez.

En revanche, les méthodes prédictives se concentreront sur l’analyse et la planification de l’avenir en détail afin d’être en mesure de contrôler les dangers futurs. Dans les cas les plus extrêmes, une équipe qui utilise une méthodologie prédictive est capable de dire tous les emplois qui seront apportées au cours du projet. Ces méthodes sont fondées sur une phase d’analyse très détaillée, cependant, si au cours du développement, quelque chose se passe mal, il sera très difficile de changer l’orientation du projet. Ces machines ont généralement un changement de contrôle des stupéfiants, qui consiste à s’assurer que seulement les changements les plus importants sont ajoutés au projet.

Développement itératif et le développement en cascade

Une des principales différences entre le développement agile et le développement de la cascade est que la phase de test est réalisée en plusieurs étapes. Sur le modèle de desenvoluament en cascade, il y a un stade de testejament lorsque vous avez terminé une des phases de mise en œuvre, tandis que, dans les méthodologies agiles et surtout dans la programmation Extema, sont menées en parallèle avec le développement du code.

Comme les phases de tests sont effectués dans chaque itération de la petite, les utilisateurs peuvent tester et valider ce petit morceau de logiciel. Cela permet aux utilisateurs de prendre de meilleures décisions quant à l’avenir de ce programme. Dans chaque itération de développement l’occasion de repenser la façon dont elle continuerait le programme (p. ex., la mêlée a au plus itérations d’un mois), permet à l’équipe pour essayer de maximiser la mise en place la valeur offerte par le programme.

Cette planification itérative permet d’afficher le développement d’un logiciel tel que l’organisme qui a été adapté aux changements qui se produisent. Tant que le logiciel est utilisé, et surtout si vous avez des concours, les itérations dans les changements d’aportarant du développement agile.

Code et documentation

Dans une lettre à IEEE Computer, Steven Rakitin sont inquiétés cynisme le développement agile, critiquant un article qui prônait le développement agile comme « une nouvelle tentative de réduire au minimum la discipline du génie logiciel » et en déplaçant le « travail dans le code de documentation » à « je veux juste écrire du code, n’oubliez pas les vrais programmeurs n’écrire documentation ».

Ces aspects sont discutés par les défenseurs du développement agile, disant que les développeurs devraient écrire documentation si c’est le meilleur moyen d’atteindre les objectifs pertinents, mais qu’il existe de meilleures façons de les amener à écrire un documnentació statique. Il est dit que le haurià de documentation à peine acceptable (d’anglais juste à peine bon assez (JBGE), étant donné que beaucoup de documentation serià une perte de temps, parce que généralement les développeurs n’ont pas beaucoup de foi dans une documentation très détaillée, car il n’est généralement pas synchronisé avec le code, en revanche très peu de documents ou une très mauvaise peut donner des problèmes pour l’entretien , communication, apprentissage, etc..

Méthodologie agile (le quoi)

Les méthodes agiles developpement logiciel agile ou méthodologies de développement de processus (comme, par exemple, XP, Scrum, DSDM, cristal, etc.) sont celles qui reposent sur la capacité d’adaptation de tout changement comme un moyen d’augmenter les chances de succès d’un projet.

Méthodes agiles plus essaient de minimiser le risque de développer le logiciel dans les itérations, qui durent d’une à quatre semaines. Chaque itération est comme un projet de fin de projet miniature et comprend toutes les tâches requises pour implémenter de nouvelles fonctions : planification, analyse des besoins, conception, codage, tests et documentation. Alors qu’une itération peut-être ne pas correspondre suffisamment de fonctionnalités pour justifier la libération du produit, un projet de logiciel agile vise à être en mesure de libérer de nouveaux logiciels à la fin de toutes les itérations. Dans de nombreux cas, le logiciel a été libéré à la fin de chaque itération, surtout quand le logiciel est basé sur le web et peut être libéré facilement. Toutefois, à la fin de chaque itération, l’équipe reavalua les priorités du projet.

Les principes fondamentaux de la méthodologie agile sont :

  • Individus et les interactions entre les processus et les outils
  • Le logiciel qui s’exécute sur le dessus de la documentation
  • La collaboration avec le client au cours de la négociation de contrats
  • La réponse au changement à la suite d’un plan fermé

Méthodologies de développement

Le processus de développement de logiciel (ou cycle de vie de développement de logiciel) est une partie du développement de logiciels. Est définie comme une séquence d’activités qui doivent être suivies par une équipe de développeurs de créer ou de maintenir un ensemble cohérent de produits.

Vous pouvez définir un processus comme un cadre qui permet au gestionnaire de projet pour contrôler la gestion et les travaux de terrassement. Cela permet d’établir le « qui fait quoi, quand et comment » et un dispositif de commande d’observer l’évolution du projet.

Caractéristiques des méthodologies
Méthodes agiles Méthodes prédictives Méthodes formelles
Bientôt les critiques Très critique Extrêmement critique
Développement Senior Développement junior Développement Senior
Les exigences changent souvent. Les conditions ne changent pas. Exigences limitées.
Petites équipes Gros équipements Les exigences peuvent être modélisés
Culture qui répond pour changer. Culture qui appelle à l’ordre. Haute qualité