Maison  >  Article  >  Qu'est-ce qu'un modèle de développement logiciel et quels sont les modèles de développement logiciels courants ?

Qu'est-ce qu'un modèle de développement logiciel et quels sont les modèles de développement logiciels courants ?

青灯夜游
青灯夜游original
2020-12-01 16:22:4014812parcourir

Le modèle de développement logiciel fait référence au cadre structurel de tous les processus, activités et tâches de développement logiciel. Les modèles courants de développement de logiciels comprennent : le modèle de changement en cours d'exécution, le modèle en cascade, le modèle de prototypage rapide, le modèle incrémentiel, le modèle en spirale, le modèle d'évolution, le modèle de fontaine, le modèle intelligent, le modèle hybride et le modèle RAD.

Qu'est-ce qu'un modèle de développement logiciel et quels sont les modèles de développement logiciels courants ?

Le modèle de développement logiciel fait référence au cadre structurel de tous les processus, activités et tâches de développement logiciel.

Le développement logiciel comprend les phases d'exigences, de conception, de codage et de test, et comprend parfois également des phases de maintenance. Le modèle de développement logiciel peut exprimer clairement et intuitivement l'ensemble du processus de développement logiciel, stipule clairement les principales activités et tâches à accomplir et sert de base au travail de projet logiciel.

Pour différents systèmes logiciels, différentes méthodes de développement peuvent être adoptées, différents langages de programmation peuvent être utilisés, du personnel possédant diverses compétences peut participer au travail, différentes méthodes et moyens de gestion peuvent être utilisés et différents logiciels peuvent être utilisés. Outils et différents environnements de génie logiciel.

Modèle de développement typique

1. Modèle Build-and-Fix (Build-and-Fix Model)

Malheureusement, de nombreux produits sont développés en utilisant. le modèle « changez au fur et à mesure ». Dans ce modèle, il n'y a ni spécifications ni conceptions, et le logiciel est constamment modifié encore et encore en fonction des besoins du client.

Dans ce modèle, les développeurs récupèrent le projet et l'écrivent immédiatement selon les exigences Après avoir débogué le programme, la première version du logiciel est générée. Après avoir été fourni aux utilisateurs, si une erreur se produit dans le programme ou si l'utilisateur fait de nouvelles exigences, le développeur modifiera à nouveau le code jusqu'à ce que l'utilisateur soit satisfait.

Il s'agit d'une méthode de développement de type atelier, qui n'est pas mauvaise pour écrire de petits programmes de quelques centaines de lignes, mais cette méthode n'est pas satisfaisante pour le développement à n'importe quelle échelle. Son principal problème est :

<.> (1) Manque de liens de planification et de conception, la structure du logiciel se détériore avec des modifications continues, rendant impossible la poursuite des modifications

(2) Ignorer le lien de demande, donner le développement de logiciels apporte beaucoup ; risques ;

(3) Il n'y a aucune prise en compte des tests et de la maintenabilité du programme, et il n'y a pas de documentation, ce qui rend la maintenance du logiciel très difficile.

2. Modèle en cascade

Dans le modèle en cascade, diverses activités de développement de logiciels sont réalisées de manière strictement linéaire. L'activité en cours accepte les résultats du travail de l'activité précédente et la mise en œuvre est effectuée. complété. Les résultats du travail de l'activité en cours doivent être vérifiés. Si la vérification réussit, le résultat sera utilisé comme entrée de l'activité suivante et l'activité suivante continuera sinon, il sera renvoyé pour modification.

Le modèle en cascade met l'accent sur le rôle de la documentation et nécessite une vérification minutieuse à chaque étape. Cependant, le processus linéaire de ce modèle est trop idéal et n'est plus adapté aux modèles modernes de développement de logiciels. Il a presque été abandonné par l'industrie. Ses principaux problèmes sont :

(1) La division de chaque étape. est complètement fixe, et les étapes Un grand nombre de documents sont générés pendant cette période, ce qui augmente considérablement la charge de travail

(2) Le modèle de développement étant linéaire, les utilisateurs ne peuvent voir les résultats du développement que jusqu'à la fin ; de l'ensemble du processus, augmentant ainsi le risque de développement ;

(3) Les premières erreurs peuvent ne pas être découvertes avant la phase de test du développement tardif, ce qui entraînera de graves conséquences.

Nous devons réaliser que « linéaire » est la façon de penser la plus simple à maîtriser et à appliquer habilement. Lorsque les gens sont confrontés à un problème « non linéaire » complexe, ils font toujours de leur mieux pour le décomposer ou le transformer en une série de problèmes linéaires simples, puis les résoudre un par un. Un système logiciel dans son ensemble peut être complexe, mais un seul sous-programme est toujours simple et peut être mis en œuvre de manière linéaire, sinon le travail sera trop fatiguant. La linéarité est une sorte de simplicité, et la simplicité est la beauté. Lorsque nous comprenons l’esprit de linéarité, nous ne devons plus appliquer de manière rigide l’apparence du modèle linéaire, mais nous devons l’utiliser. Par exemple, le modèle incrémental est essentiellement un modèle linéaire segmenté, tandis que le modèle en spirale est un modèle linéaire courbe continu. Les ombres du modèle linéaire peuvent également être trouvées dans d'autres modèles.

3. Modèle de prototype rapide

La première étape du modèle de prototypage rapide consiste à construire un prototype rapide pour permettre aux clients ou aux futurs utilisateurs d'interagir avec le système. Les prototypes sont évalués pour affiner davantage le système. exigences relatives au logiciel à développer.

En ajustant progressivement le prototype pour répondre aux exigences du client, les développeurs peuvent déterminer quels sont les besoins réels du client ; la deuxième étape consiste à développer un produit logiciel qui satisfait le client sur la base de la première étape ;

De toute évidence, la méthode de prototypage rapide peut surmonter les lacunes du modèle en cascade et réduire les risques de développement causés par des exigences logicielles peu claires, et a un effet significatif.

La clé du prototypage rapide est de créer des prototypes de logiciels le plus rapidement possible. Une fois les véritables besoins du client déterminés, les prototypes seront rejetés. Par conséquent, la structure interne du système prototype n'est pas importante. Ce qui est important, c'est que le prototype doit être rapidement construit puis modifié rapidement pour refléter les besoins du client.

4. Modèle incrémental

Également connu sous le nom de modèle évolutif. Tout comme la construction d’un bâtiment, un logiciel se construit étape par étape. Dans le modèle incrémental, le logiciel est conçu, implémenté, intégré et testé comme une série de composants incrémentaux. Chaque composant est composé de fragments de code qui fournissent des fonctions spécifiques formées par plusieurs modules en interaction. Chaque étape ne fournit pas un exécutable complet. produit, mais un sous-ensemble du produit exécutable qui répond aux besoins du client. L'ensemble du produit est décomposé en plusieurs composants et les développeurs livrent le produit composant par composant. L'avantage est que le développement de logiciels peut mieux s'adapter aux changements et que les clients peuvent voir en permanence le logiciel développé, réduisant ainsi les risques de développement

5. Modèle spiralé

En 1988, Barry Boehm a officiellement publié le « Modèle spiralé » de développement de systèmes logiciels, qui combinait le modèle en cascade et le modèle de prototypage rapide, mettant l'accent sur les aspects ignorés par les autres modèles. particulièrement adapté aux systèmes grands et complexes.

Le modèle en spirale effectue plusieurs itérations le long de la spirale. Les quatre quadrants de la figure représentent les activités suivantes :

(1) Élaborer un plan : déterminer les objectifs du logiciel, sélectionner le plan de mise en œuvre, et Effacer les contraintes de développement du projet ;

(2) Analyse des risques : analyser et évaluer les options sélectionnées, et réfléchir à la manière d'identifier et d'éliminer les risques

(3) Ingénierie de mise en œuvre : mettre en œuvre le logiciel ; développement et vérification ;

(4) Évaluation du client : Évaluer les travaux de développement, proposer des corrections et formuler les prochains plans.

Le modèle en spirale est axé sur les risques, met l'accent sur les alternatives et les contraintes pour soutenir la réutilisation des logiciels, et aide à intégrer la qualité des logiciels dans le développement de produits en tant qu'objectif particulier. Cependant, le modèle en spirale présente également certaines limites, comme suit :

(1) Le modèle en spirale met l'accent sur l'analyse des risques, mais il n'est pas facile pour de nombreux clients d'accepter et de croire cette analyse et de donner des réponses pertinentes, donc , ce modèle convient souvent au développement de logiciels internes à grande échelle.

(2) Si effectuer une analyse des risques affectera grandement les bénéfices du projet, alors effectuer une analyse des risques n'a aucun sens. Par conséquent, le modèle en spirale ne convient qu'aux projets logiciels à grande échelle.

(3) Les développeurs de logiciels doivent être doués pour rechercher les risques possibles et analyser avec précision les risques, sinon cela entraînera des risques plus importants

La première étape d'une phase est de déterminer l'objectif de la phase et complétez-le Sélectionnez les solutions et leurs contraintes pour ces objectifs, puis analysez la stratégie de développement de la solution du point de vue des risques, en essayant d'éliminer divers risques potentiels, parfois en construisant des prototypes. Si certains risques ne peuvent être éliminés, le programme est immédiatement interrompu, sinon l'étape de développement suivante est lancée. Enfin, évaluez les résultats de cette phase et concevez la phase suivante.

6. Modèle d'évolution

Le modèle d'évolution est un modèle global de cycle de vie d'un logiciel (ou d'un produit). Appartient à la méthode de développement itératif.

Le modèle peut être exprimé comme : première itération (exigences->conception->implémentation->tests->intégration)->retour d'information-> deuxième itération (exigences->Conception- >Mise en œuvre->Tests->Intégration)->Feedback->......

C'est-à-dire, en fonction des besoins de base de l'utilisateur, une version initiale exécutable du logiciel est construit par analyse rapide, ce logiciel initial est généralement appelé prototype, puis le prototype est amélioré en fonction des opinions et des suggestions faites par les utilisateurs lors de l'utilisation du prototype, et une nouvelle version du prototype est obtenue. En répétant ce processus, vous pouvez enfin obtenir un produit logiciel qui satisfait les utilisateurs. Le processus de développement utilisant le modèle évolutif est en fait le processus d'évolution progressive du prototype initial au produit logiciel final. Les modèles évolutifs sont particulièrement utiles en cas de manque de compréhension précise des exigences logicielles.

7. Modèle de fontaine (modèle de fontaine)

(également appelé modèle de vie orienté objet, modèle OO)

Comparaison du modèle de fontaine avec la durée de vie structurée traditionnelle, avec un De nature plus incrémentielle et itérative, les phases du cycle de vie peuvent se chevaucher et se répéter plusieurs fois, et les sous-cycles de vie peuvent être intégrés tout au long de la durée de vie du projet. Tout comme l'eau qui jaillit et retombe, elle peut tomber au milieu ou au fond.

8. Modèle intelligent (technologie de quatrième génération (4GL))

Le modèle intelligent dispose d'un ensemble d'outils (tels que la requête de données, la génération de rapports, le traitement des données, la définition d'écran, la génération de code, fonctions graphiques de haut niveau et feuilles de calcul, etc.), chaque outil permet aux développeurs de définir certaines fonctionnalités des logiciels à un niveau élevé, et génère automatiquement le code source de ces logiciels défini par les développeurs.

Cette méthode nécessite la prise en charge du langage de quatrième génération (4GL). 4GL est différent de la troisième génération de langages. Sa principale caractéristique est que l'interface utilisateur est extrêmement conviviale, même les programmeurs non professionnels non formés peuvent l'utiliser pour écrire des programmes ; c'est un langage de programmation déclaratif, interactif et non procédural. 4GL propose également un code de programme efficace, des hypothèses par défaut intelligentes, une base de données complète et un générateur d'applications. Les 4GL populaires sur le marché (tels que Foxpro, etc.) présentent tous les caractéristiques ci-dessus à des degrés divers. Cependant, la L4G se limite principalement au développement d'applications de petite et moyenne taille pour les systèmes d'information transactionnels.

9. Modèle hybride

Le modèle de développement de processus est également appelé modèle hybride ou méta-modèle. Il combine plusieurs modèles différents en un modèle hybride, ce qui permet à un projet de se développer selon la voie la plus efficace. Il s'agit du modèle de développement de processus (ou modèle hybride). . En fait, certaines organisations de développement de logiciels utilisent plusieurs méthodes de développement différentes pour créer leurs propres modèles hybrides.

10. Modèle RAD

Le modèle Rapid Application Development (RAD) est un modèle de processus de développement logiciel incrémental. Accent mis sur des cycles de développement extrêmement courts. Le modèle RAD est une variante « à grande vitesse » du modèle en cascade

Il utilise un grand nombre de composants réutilisables et adopte une méthode de construction basée sur les composants pour gagner un développement rapide. Si les exigences sont bien comprises et que la portée du projet est limitée, viennent ensuite la modélisation des données, la modélisation des processus, la génération d'applications, les tests et l'itération. Le processus logiciel utilisant le modèle RAD est illustré dans la figure de droite.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn