web-dev-qa-db-fra.com

Quelle est la différence entre le modèle de cascade avec des itérations et un modèle de développement de logiciels évolutifs?

Est-ce que quelqu'un connaît la différence entre ces deux?

Ils sont tous deux créés par une approche itérative - donnant une révision successive après chaque itération. Ils ont tous deux l'idée initiale -> Analyse -> (contour) phases de conception.

7
Patryk

Les définitions varieront donc donc je doute que vous obtiendrez une réponse concluante à cette question.

Cela dit, la différence de potentiel la plus évidente que je vois est la manière dont les itérations se rapportent à votre conception/architecture de haut niveau:

  • Dans un modèle de cascade itératif, vous pouvez utiliser les itérations plus pour raffinement/élaboration d'éléments de la conception globale dans plusieurs phases de [Conception détaillée/Build/Test]. En théorie, vous pouvez planifier la plupart des itérations à l'avance.
  • Dans un vrai modèle évolutif, vous n'auriez pas de conception globale - vous ne seriez pas simplement ajouter à tout ce que vous avez déjà construit Basé sur une notion de ce qui est le plus précieux à faire ensuite, généralement gagné par l'utilisateur intensif. retour d'information. Vous n'auriez pas de plan fixe pour les itérations futures (bien que vous puissiez garder un arriéré priorisé ou quelque chose de similaire).
6
mikera

"Conception évolutive" est un terme général, couvrant toutes les méthodes de conception qui utilisent une sorte de mécanisme de mutation/de sélection (c'est-à-dire changeant - test - Rejeter/Accepter les cycles); "La cascade avec des itérations" décrit spécifiquement un processus de développement qui applique le modèle de cascade itérativement.

Un processus informel de développeurs monomographe où tout le développement se produit sur une machine, des modifications sont apportées ad hoc au besoin, et déployées chaque fois qu'elles sont considérées comme "prêtes", est certainement un modèle de conception évolutif, mais cela n'atteint guère la définition de la cascade, mais pas même dans son interprétation la plus détendue.

2
tdammers

D'après ce que j'ai expérimenté, les gens utilisent principalement des "cascades avec des itérations" comme terme dérisive pour des implémentations agiles pauvres ou semestres et non comme une méthodologie pratique.

Quoi qu'il en soit, je suis tombé sur Cet article qui a une explication décente du terme "cascade itérative".

1
DPD

La cascade itérative pourrait également signifier que de simples projets de grands projets dans des jalons et appelle chaque jalon une "itération".

Pour ce faire, c'est du péché car il supprime toute possibilité de revoir ou de rétroaction des itérations précédentes dans l'autre. Pourtant, je l'ai vu appliqué après quoi leurs protreseurs ont proclamé haut et fort qu'ils étaient maintenant agiles pour le faire !!

Une autre définition de la cascade itérative consiste à avoir des cascades successives où la prochaine flux de la précédente. Encore une fois, aucun rétroaction au cours du cycle lui-même de la conception à la livraison, mais uniquement entre la livraison et la conception, les commentaires sont autorisés. Cette définition semble correspondre au lien fourni par DPD.

Ma définition personnelle du style "cascade" et des processus de style "agile" réside dans la façon dont le projet est considéré et décomposé. Les deux couvrent tous les deux les mêmes phases et bien que des processus mais les attaquent de manière bien différente. Si vous affichez la production d'un logiciel en tant que pile avec la création au sommet et au déploiement et au support en bas.

La cascade décomposera le processus de création de logiciels horizontalement et traversera chaque couche de séquence. Pour un quartier de quarticulation (si cette chose peut être dit), la procédure suivante est impossible sans avoir complètement travaillé sur le calque ci-dessus, c'est juste inconcevable. L'argument typique serait que vous ne construirez jamais le toit d'une maison avant la fondation et que vous direz que les choses ressemblent à "mesurer deux fois mais couper une fois".

Agile d'autre part décomposera le processus de création produira verticalement des tranches de fonctionnalité qui sont ajoutées au produit au fil du temps. Avec chaque tranches, mais ils ne procédent pas par la pile de haut en bas mais abordez tout cela à la fois. Ils sont capables de le faire parce qu'ils ont volontairement réduit la portée du résultat cible. Pour eux, il est inconcevable de procéder sans tester d'abord de voir si l'idée a du sens. Avec chaque itérature, ils ajoutent des éclats de fonctionnalité et testez-le contre l'idée et contre le reste du système.

La cascade est enracinée dans l'ingénierie où la cible est un produit de vie réel tangible et une erreur n'est pas admissible. Ils voient des logiciels comme des morceaux rigides d'acier et de béton qui doivent être assemblés dans une structure. Par conséquent, ils auront tendance à faire trop de rabais prudent tout ce que tout aime gaspiller des ressources sur l'autel de la perfection. Pour que la cascade fonctionne, vous avez besoin de joueurs expérimentés très forts et une confiance totale en eux, vous devez être extra méticuleux à chaque étape du processus prévoyant ce qui pourrait être et anticipant.

Agile est enracinée dans le processus scientifique où la connaissance est rassemblée un bit à la fois et testé de manière continue. Ils comprennent parfaitement que le logiciel est malléable et peut être plié et façonné à volonté. Ils traitent des idées comme un chercheur traitait d'une théorie, c'est qu'il se trouve aussi longtemps qu'il est d'accord avec les tests. Par conséquent, ils auront tendance à remodeler continuellement leur système gaspillant des ressources en recréant les mêmes choses à chaque fois avec une légère torsion pour adapter les nouvelles variables. Pour que l'agile fonctionne, vous devez évaluer continuellement votre système dans son ensemble et le placer contre la nouvelle réalité. Les mesures et l'automatisation sont essentielles pour obtenir la photo la plus précise possible du présent, de sorte que la prochaine étape puisse être considérée comme une mesure corrective vers le chemin idéal. Même le chemin idéal doit être réévalué pour s'assurer qu'il fait effectivement des points vers la cible idéale.

Waterfall Build Software pour durer aussi, statique, défini dans le béton.

Les logiciels de culture agiles, les soins et ont tendance à atteindre un monde en mutation en constante évolution.

C'est vrai que le logiciel est malléable tôt, mais comme il gagne la taille et l'âge, il gagne également de la raideur résistant à des changements de plus en plus. À mon avis, il n'y a pas de balle d'argent et il a tendance à être à beaucoup de dévotion religieuse au détriment de la réflexion rationnelle. Cela dit des deux extrêmes agiles semble être celui qui prend en compte le doux du logiciel.

1
Newtopian