Définition - Que signifie le cycle de vie du développement logiciel (SDLC)?
Un modèle de cycle de vie de développement logiciel (SDLC) est un cadre conceptuel décrivant toutes les activités d'un projet de développement logiciel, de la planification à la maintenance. Ce processus est associé à plusieurs modèles, chacun comprenant une variété de tâches et d'activités.
Le développement de logiciels est une activité lourde qui nécessite une identification correcte des exigences, leur mise en œuvre et le déploiement de logiciels. Cependant, les activités ne s'arrêtent pas là. Après la distribution du logiciel, une maintenance appropriée doit être assurée en temps opportun.
Ce terme est également connu sous le nom de modèle de processus de développement logiciel.
Definir Tech explique le cycle de vie du développement logiciel (SDLC)
Examinons une manière plus intuitive d'aborder la définition du cycle de vie du développement logiciel (SDLC). Pensez aux étapes par lesquelles le développement de logiciels passe, depuis les toutes premières fulminations d'une idée de projet, jusqu'à la sortie de ce logiciel dans un environnement de production.
Pensez au SDLC comme étant composé de diverses «stations de cheminement» sur le chemin du développement et de la publication finaux complets, avec tous les tests utilisateur et d'autres choses qui se déroulent à la fin du processus.
C'est un bon moyen de commencer à réfléchir à ce qu'est le SDLC.
Points clés SDLC
Voici quelques éléments qui seront au cœur de notre explication du cycle de vie du développement logiciel:
- Le SDLC englobe: la planification, la mise en œuvre, les tests, la documentation, le déploiement et la maintenance.
- Les modèles sont passés des processus SDLC par étapes traditionnels à l'agilité, puis au Devops.
- Agile et Devops en tant que pratiques ont fusionné la mise en scène traditionnelle de manière nouvelle et intéressante.
- Le cloud a mis en scène l'arrivée des ressources fournies par le Web.
- Bien que le SDLC ait maintenant beaucoup changé, le concept reste en grande partie le même.
Histoire du cycle de vie du développement logiciel
Le consensus est que le SDLC en tant que cadre développé dans les années 1950 et 1960 au fur et à mesure que l'informatique elle-même a évolué rapidement.
Avant la seconde moitié des années 1900, lorsque l'ENIAC et diverses autres innovations ont fait avancer rapidement le monde de l'informatique, l'informatique n'était vraiment pas assez élaborée pour nécessiter quelque chose comme le SDLC. Les premières implémentations de technologies logicielles impliquaient des outils simples, comme des lignes de base et des instructions if / then.
Au fil du temps, le concept de programmation structurée a fait naître le besoin de modèles de développement et le SDLC est né.
Les premiers modèles précoces étaient principalement définis par les étapes.
Jetez un œil à cette infographie pour comprendre cette migration historique des pratiques de la cascade vers les nouvelles méthodologies DevOps et agiles.
Partager cette image sur votre site
Veuillez inclure l'attribution à techopedia.com avec ce graphique.
Les pratiques itératives et incrémentales ont conduit au prototypage dans les années 1980, ce qui a conduit à différents types d'innovations comme les cadres en spirale et en V, puis à l'agilité dans les années 1990.
Il existe de nombreuses façons de décrire ces changements au fil du temps, mais l'essentiel est que le cycle de vie du développement logiciel a commencé comme un processus soigneusement échelonné.
La cascade reste le modèle dominant pour ces premiers cadres de cycle de vie de développement logiciel. Dans le modèle de cascade, tout en une seule étape est terminé avant de passer à l'étape suivante. Toute la planification est terminée avant que le projet ne passe à la mise en œuvre. Toute la mise en œuvre est terminée avant que le processus ne passe au test.
Puis, au fur et à mesure que ces frameworks évoluaient vers l'agilité, cette idée s'est transformée en un système où le travail collaboratif a changé les flux de travail, et une mise en scène auparavant monolithique a été découpée et découpée en ses parties composites. Par exemple, les tests peuvent se dérouler en différentes phases dans différents environnements.
En passant, les tests étaient également de plus en plus automatisés.
Dans tous les cas, le passage de la cascade à d'autres modèles, à l'agilité et au DevOps, nous amène à l'heure actuelle, où la mentalité DevOps exploite les architectures cloud, les micro-services et plus encore pour redéfinir ce que signifie le travail du cycle de vie du développement logiciel.
Processus SDLC
Les principales activités de développement de logiciels comprennent:
Extraction d'exigences
Le client a une vague idée de ce qui est requis. Le service commercial, les ingénieurs en logiciel et les experts du domaine collaborent tous pour recueillir des informations sur ce que le produit devrait être, ses objectifs et son fonctionnement. Cette analyse est souvent couplée à des études de marché.
Analyse de faisabilité
Après une analyse approfondie des exigences et des étapes de planification pour atteindre la cible, l'idée abstraite du client est mise en pratique par un groupe d'ingénieurs logiciels. Un document «Software Requirement Specification» (SRS) est compilé pour inclure tout ce qui doit être développé pour terminer le projet.
Phase de conception
Au cours de cette phase, l'architecture globale du système est conçue en définissant les fonctionnalités de chaque module ainsi que leur interaction avec des modules tiers.
Étape de construction et de codage
Le produit est construit et codé selon les propres normes de l'entreprise. Les concepteurs suivent un ensemble de bonnes pratiques et de directives et utilisent les outils de programmation dont ils disposent pour développer le produit.
Phase de test
Le code est testé pour s'assurer qu'il est exempt de bogues, qu'il respecte les exigences du client et qu'il s'interface correctement avec d'autres produits logiciels ainsi que le matériel sous-jacent.
Déploiement et maintenance
La version finale du produit est mise sur le marché. La maintenance est effectuée au fil du temps pour modifier l'architecture du système en fonction des besoins futurs. Cela peut nécessiter l'ajout de code ou la modification du code existant.
Le processus de développement ci-dessus est simplifié par une série de modèles. L'équipe de développement sélectionne le modèle le mieux adapté parmi plusieurs modèles connus. Les différents modèles sont:
Modèle en cascade
Les développeurs énoncent les exigences, les analysent, déterminent une solution et définissent une architecture logicielle, une représentation d'interface et des détails algorithmiques. Ensuite, ils développent le code, testent le code, déploient le logiciel et le maintiennent. Le principal problème de ce modèle est que la nécessité de corriger les erreurs doit être connue dès le départ et à un stade précoce. Sinon, l'ensemble du processus pourrait se poursuivre dans la mauvaise direction, ce qui pourrait avoir un impact négatif sur le coût de production.
Modèle en forme de V
Est une variante du modèle de cascade. Il met l'accent sur la vérification et la validation du produit. Tous les livrables sont testables et les progrès sont suivis par des jalons. Les tests sont mis en œuvre parallèlement à la phase de développement.
Modèle prototype
Un prototype est développé dans la phase d'exigence et évalué par les utilisateurs finaux. Sur la base des commentaires des utilisateurs, les développeurs modifient le prototype pour répondre aux besoins des utilisateurs. Bien que ce modèle finalise facilement les exigences, son utilisation dans l'environnement de production peut entraîner des problèmes de qualité, ce qui permet au processus de correction de se poursuivre indéfiniment.
Modèle en spirale
Utilise à la fois des modèles de cascade et des prototypes. Il ajoute des langages de programmation de 4e génération, un prototypage de développement rapide d'applications et une analyse des risques au modèle en cascade. La configuration système requise est conçue et une conception préliminaire du système est créée. Un premier prototype est conçu et testé. Sur la base de l'évaluation des résultats des tests, un deuxième prototype est créé. Les prototypes suivants sont construits pour assurer la satisfaction du client. Le système est créé sur la base du prototype final. Le système final est évalué et testé. Bien que ce modèle réduise les risques dans une large mesure, il peut ne pas respecter le budget et est appliqué différemment pour chaque application.
Modèle SDLC itératif et incrémental
Spécifie et implémente une partie du logiciel, qui est ensuite revue et des exigences supplémentaires ajoutées et implémentées en groupes. Chaque version fournit un produit opérationnel présentant d'abord aux clients des fonctionnalités importantes, réduisant ainsi les coûts de livraison initiaux. Le risque de modification des exigences est considérablement réduit et les clients sont autorisés à répondre à chaque build. Malgré ses atouts, ce modèle nécessite une bonne planification et une définition précoce du système complet et pleinement fonctionnel. Il nécessite également des interfaces de module bien définies.
Modèle de développement agile
Est utilisé pour les applications urgentes dans les organisations employant des méthodes disciplinées. Il accélère les phases du cycle de vie et a une portée réduite.
Modèle de boîte magique
Est un modèle de développement d'application Web. C'est le moyen le plus rapide de terminer le projet avec le moins de bogues car il offre la possibilité de modifier le code et les structures de la base de données.
Il y a beaucoup de pièces mobiles. C'est en partie pour cette raison que les entreprises ont commencé à embaucher des Scrum Masters, à réunir les équipes et à les orienter rapidement vers ce qui se passe sur le terrain.
Ce type d'enregistrement garantit que même dans un environnement extrêmement complexe, tout fredonne.
À propos du développement logiciel en tant que service (SDaaS)
Avec tout ce qui précède à l'esprit, le développement logiciel en tant que service, ou SDaaS, fait référence à la vaste gamme de services disponibles auprès des fournisseurs qui prendront en charge les aspects du processus du cycle de vie du développement logiciel d'une manière, d'une forme ou d'une autre.
Ces sociétés peuvent dédier des équipes d'individus à la gestion du cycle de vie du logiciel de manière à soutenir l'entreprise cliente sur la base de la découverte et de la participation.
Beaucoup de ces systèmes reposent sur la méthode agile, car elle peut être très symbiotique avec la nature du SDaaS. Parce qu'il y a tellement d'interactivité et d'interopérabilité, le client peut régulièrement s'interfacer avec le fournisseur de support de manière à favoriser de bons résultats.
Les fournisseurs peuvent avoir des scrum masters et d'autres praticiens disponibles pour guider les équipes de développement ou de déploiement qui répondent aux besoins spécifiques.
Certains fournisseurs caractérisent cela comme offrant des services de développement de logiciels avec des coûts prévisionnels continus, afin d'aider les clients à sous-traiter, bien que beaucoup considèrent que SDaaS est différent du modèle informatique externalisé.
Final Thoughts
Tout ce qui précède permet de montrer pourquoi le cycle de vie du développement logiciel est important et comment il a évolué au fil du temps.
Pensez à cette méthode fondamentale de création des applications, des exécutables et des produits logiciels que nous utilisons au quotidien.