Phases SDLC [expliquées] : comment créer un excellent logiciel en 2021
Publié: 2019-10-02Table des matières
Comprendre le processus SDLC
Structure du processus de développement logiciel
Modèles SDLC
Conclure
L'industrie du développement de logiciels est en plein essor. Nous continuons à produire des quantités massives de code chaque année.
Au cœur de l'industrie se trouve le cycle de vie du développement logiciel (SDLC) - le processus qui guide les équipes logicielles dans la manière de structurer et de planifier leur travail.
Partons donc en voyage à travers le terrain périlleux du développement logiciel.
Nous allons voir ce qu'est réellement SDLC et retracer son évolution. Nous verrons quels sont les principaux modèles utilisés par l'industrie.
Nous découvrirons les phases SDLC, par lesquelles passe un logiciel avant de voir le jour – et les acteurs clés de chacune.
En fin de compte, nous vous donnerons une vue d'ensemble de l'ensemble du processus.
Comprendre le processus SDLC
Construire un logiciel est un processus. En tant que tel, il a besoin d'un objectif bien défini, de moyens pour l'atteindre et de moyens de mesurer, maintenir et améliorer les résultats. Les différentes approches du développement logiciel fournissent tout cela. Cependant, ils ne sont pas tous taillés dans le même tissu. Selon votre situation, vous devrez peut-être opter pour des approches très différentes.
Cela dépend de nombreuses variables, telles que :
- industrie
- taille de l'organisation
- équipe et projet
- délai estimé
- et le budget alloué.
Ce qui est commun, c'est que chaque logiciel suit un certain flux de processus SDLC .
Ce cadre détaille les phases nécessaires à la réalisation, les ressources nécessaires et les tâches à accomplir en cours de route.
Le processus SDLC est en fin de compte un calendrier bien structuré de ce qui doit être accompli. Il décide de la meilleure approche de développement logiciel dans les limites de temps et de coûts estimés.
Le SDLC est souvent considéré comme un sous-ensemble du terme plus large « cycle de vie du développement des systèmes » - le cadre le plus ancien pour le développement des systèmes d'information.
Elle est apparue au début des années 1960 en réponse à la nécessité de disposer de systèmes métiers, capables de traiter de grandes quantités de données. Le premier framework SDLC bien documenté est le paradigme de programmation structurée de 1969.
Une variété de méthodologies de développement de logiciels ont émergé dans les années 1990. Certains d'entre eux sont la programmation orientée objet, Scrum et le Rational Unified Process. Le processus unifié Agile a vu le jour en 2005.
Structure du processus de développement logiciel
Le développement d'un produit logiciel est une séquence d'étapes bien coordonnées. Selon l'approche de développement choisie, le nombre d' étapes SDLC peut varier.
Nous passerons en revue les saveurs à 5 et 7 étapes du SDLC.
La version en 5 étapes
La version en 5 étapes du processus de développement logiciel se déroule comme suit :
Exigences et analyse
Il s'agit d'une phase cruciale où l'interaction avec le client et les parties prenantes est essentielle. Ils doivent déterminer le résultat attendu, c'est-à-dire l'objectif du produit logiciel. Outre les exigences des clients, il y a toutes sortes d'autres facteurs à prendre en compte. Ceux-ci inclus:
- Architectural
- Fonctionnel
- Non fonctionnel
- Performance
- Et celles liées au design
Pour réussir cette étape, un document appelé « spécification des exigences logicielles » est élaboré. C'est le fondement de tout ce qui se déroulera à partir de ce moment.
La réussite d'un projet de développement dépend fortement de l'analyse des besoins. L'interprète clé à ce stade est l'analyste d'affaires (BA). Il gère toute la communication pour rassembler les exigences de l'entreprise, effectuer une analyse approfondie et, surtout, traduire ces informations entre les parties prenantes et les développeurs.
Concevoir
La conception du logiciel est basée sur des exigences établies. C'est là que nous déterminons l'environnement de développement, les langages de programmation, le cadre architectural, le matériel, etc. C'est aussi le moment de déterminer la stratégie de test qui sera utilisée. Le rôle de l'architecte système est ici essentiel. Ils doivent prendre en compte toutes les conditions préalables du document de « spécification des exigences » et fournir un document de conception à utiliser à l'étape suivante.
Phase de codage
À l'heure actuelle, les développeurs connaissent déjà bien les spécifications de conception. Le travail est divisé en modules et le codage commence. Le client doit également être impliqué à ce stade. Ils s'assurent que toutes les mesures sont prises pour que le produit réponde à leurs attentes. La production d'un logiciel fonctionnel est le résultat ultime à ce stade.
Essai
Maintenant que nous avons un produit fonctionnel, la phase de test peut commencer. Selon la stratégie de test décrite dans le document de spécification de conception, cela peut se produire de différentes manières.
Les objectifs restent néanmoins les mêmes. Tout d'abord, vérifiez que toutes les exigences initiales sont remplies et, deuxièmement, déterminez s'il y a des bogues dans le code. Les testeurs sont les principaux acteurs ici. Le résultat de leurs efforts est un logiciel entièrement fonctionnel, prêt à être lancé.
Maintenance
Il n'existe pas de logiciel parfait. C'est pourquoi le service client joue un rôle important dans le processus de développement. Une fois livrés au client final, des problèmes en temps réel apparaissent et doivent être résolus. Une maintenance continue est indispensable si vous voulez avoir des clients satisfaits.
La version en 7 étapes
Maintenant, la saveur en 7 étapes de ce processus est un peu différente. Il comporte quelques étapes supplémentaires, qui changent inévitablement la nature des autres également. Nous allons jeter un coup d'oeil:
Planification
Une autre façon de lancer le processus SDLC est une phase de planification. Il précède la collecte des exigences et recherche principalement des commentaires. La contribution des parties prenantes, des partenaires commerciaux, des ingénieurs et des clients finaux façonne la portée du projet. Cette phase répond à des questions telles que :
- Ce qui doit être fait?
- Quelles ressources sont nécessaires ?
- Combien de temps cela prendrait-il ?
- Combien ça coûtera?
Exigences et analyse
Ici, les analystes commerciaux compilent une liste d'exigences, sur la base des commentaires du client. Ensuite, ils les transmettent aux ingénieurs logiciels. La communication est essentielle.
Cette phase devrait produire un document décrivant toutes les exigences et servant de base à la phase suivante.
Conception de systèmes
Les exigences logicielles se retrouvent maintenant dans l'architecture du système. À ce stade, nous pouvons déterminer les moyens fonctionnels et les opérations dont nous avons besoin pour livrer le projet. Une fois préparé, le plan de conception est présenté à l'entreprise. Nous intégrons tous les commentaires avant le début de la programmation proprement dite.
Développement de logiciels
Une fois que les exigences sont claires, les ingénieurs logiciels peuvent commencer à travailler. L'objectif à ce stade est un programme de travail, prêt à être testé. C'est également le début de la production dans le processus SDLC .
Essai
Le rôle de l'équipe d'assurance qualité est de déterminer si les exigences commerciales initiales ont été satisfaites. Ils inspectent la qualité du code logiciel. Les bugs sont corrigés. Il existe toute une liste de méthodes de test de logiciels à suivre : test fonctionnel, d'intégration, de performance, etc.
Les tests d'automatisation sont un moyen d'automatiser le processus d'exécution de tests répétitifs via l'utilisation de logiciels externes, tels que Bamboo et Jenkins.
Mise en œuvre
Une fois que le code a passé la phase de test, il est prêt à être déployé dans l'environnement de production. Selon la politique de l'entreprise, ce processus peut nécessiter une approbation ; cependant, dans la plupart des cas, il s'agit d'une étape automatisée du cycle de vie du développement logiciel .
Entretien et exploitation
Une fois le logiciel sorti en production, toutes sortes de problèmes peuvent survenir. Grâce à la surveillance, ils peuvent être identifiés et résolus. De nouvelles fonctionnalités peuvent également trouver leur place dans le produit. C'est la phase où les performances peuvent être mesurées et améliorées.

Modèles SDLC
Le processus de développement d'un logiciel est largement universel. Il est possible d'ajouter d'autres scènes ou de simplifier celles qui existent déjà, mais c'est presque toujours la même chose.
Ce n'est pas vrai quand on regarde les méthodes de développement . Bien qu'ils observent tous le processus, ils le font de manières très différentes.
Pour choisir celui qui convient le mieux, plusieurs facteurs clés sont à prendre en compte. C'est toujours un équilibre entre les besoins du client et les détails pratiques du développement d'un logiciel. Il existe des facteurs tels que :
- la complexité du projet
- la technologie choisie
- et la taille de l'équipe.
Tous ces éléments déterminent quelle approche peut fonctionner le mieux. Nous allons faire un aperçu de certaines des méthodologies SDLC les plus connues et les plus utilisées .
Cascade
Le modèle en cascade est un processus de conception séquentiel linéaire. C'est la plus ancienne méthodologie connue utilisée en génie logiciel. Il trouve son origine dans les industries manufacturières et de la construction dans les années 1970.
L'avancement d'un projet de développement suivant le modèle de la cascade descend strictement dans le tuyau SDLC. Une progression n'est possible que lorsque la phase précédente du SDLC a été complétée avec succès. Il n'y a pas de processus défini pour revenir en arrière.
La cascade SDLC est une approche très structurée. Cela fonctionne bien quand :
- les exigences et les activités sont bien définies et comprises
- la technologie est fiable
- l'équipe support est disponible et vous estimez un projet à court terme
L'inconvénient de la méthode est lié à son manque de flexibilité. Vous ne pouvez pas mettre en œuvre de nouvelles exigences en cours de route. Étant donné qu'aucun produit tangible n'est fabriqué avant la fin du processus de développement, le risque et l'incertitude sont élevés. Cela pourrait s'avérer être une approche très coûteuse, si vous décidez de modifier les exigences ou la portée du projet à la volée.
Itératif
Cette méthode est basée sur la notion que le logiciel peut être construit à travers une séquence de cycles répétitifs. Cela commence par un simple ensemble d'exigences. À chaque tour, les ingénieurs apprennent du comportement des versions antérieures du logiciel et sont en mesure d'améliorer ses fonctionnalités.
Le plus grand avantage de cette approche est qu'un prototype fonctionnel du logiciel est produit à la fin de chaque cycle. Cela facilite la mise en œuvre des changements, l'identification des risques. Le test SDLC est relativement plus facile lorsqu'il est effectué à chaque itération.
Les inconvénients du modèle itératif de développement logiciel se résument aux ressources et aux coûts. Augmenter le nombre d'itérations consomme plus de ressources. La date limite d'achèvement du projet est indéterminée, tout comme le risque. Par conséquent, pour que cette méthode fonctionne, elle a besoin d'experts hautement qualifiés pour effectuer l'analyse des risques.
La méthodologie n'est pas adaptée aux petits projets.
Agile
L'approche Agile du développement logiciel est relativement nouvelle. Pourtant, il a rapidement gagné en popularité dans le monde entier.
Le SDLC agile est basé sur la livraison de petites portions de logiciels fonctionnels et sur la recherche d'un retour immédiat du client. Au cœur de cette approche se trouve la forte collaboration et la communication continue entre les équipes. Chaque cycle dure environ une à trois semaines, après quoi le module/la fonctionnalité de travail est livré au client. Le processus se répète ensuite.
Des tests sont effectués à chaque itération, ce qui permet de résoudre les problèmes dès le début. Il encourage la démonstration de la fonctionnalité du logiciel et l'acquisition de commentaires. Le modèle offre une visibilité claire des résultats. Il prône le travail d'équipe et donne de la flexibilité aux ingénieurs logiciels.
Puisqu'il n'y a pas d'exigences de documentation lourde, il existe un risque de dépendance vis-à-vis de certaines personnes. Cela peut également être un défi lorsqu'il s'agit de transférer les connaissances aux nouveaux membres de l'équipe.
Maigre
La méthodologie de développement logiciel Lean est considérée comme faisant partie de la méthode de développement logiciel Agile. Le processus SDLC suivant la méthodologie Lean se compose de sept principes :
- Éliminer les déchets
- Amplifier l'apprentissage
- Décidez le plus tard possible
- Livrer le plus vite possible
- Responsabiliser l'équipe
- Construire l'intégrité
- Voir la grande image
La clé pour comprendre ce modèle est à travers ces principes. Cela conduirait à les transformer en pratiques agiles fonctionnelles et à leur mise en œuvre dans le processus de travail.
Les principes lean sont organisés autour de l'idée de produire autant de valeur ajoutée que possible pour les utilisateurs finaux - tout en optimisant la qualité, la vitesse, les coûts et les attentes commerciales. Pour cela, certaines tâches sont supprimées (documentation lourde) et d'autres optimisées (fréquence des réunions).
DevOps
Le modèle DevOps est partiellement basé sur Agile et Lean . Il s'agit d'une approche nouvellement émergente qui lie en étroite collaboration entre les équipes de développement logiciel et d'exploitation tout au long du cycle de vie du développement.
L'aspect clé de cette méthodologie est l'accent mis sur l'automatisation du processus de développement. L'objectif ultime est de raccourcir le SDLC et en même temps de fournir des résultats innovants de haute qualité, alignés sur les exigences de l'entreprise.
Avec cette approche, les développeurs, les équipes d'exploitation et les membres de l'assurance qualité sont tous sur la même longueur d'onde. Ils utilisent les mêmes outils et suivent les mêmes processus. Cela améliore la communication et conduit à des résultats meilleurs et plus rapides.
Spirale
Il s'agit d'une combinaison de développement itératif et de certaines des notions du modèle en cascade. Il permet des releases partielles du logiciel à chaque cycle itératif.
Les quatre étapes et les répétitions sont appelées « spirales ». Les phases SDLC sont : la planification et la collecte des exigences ; conception; développement et tests.
L'analyse des risques a un rôle clé. À chaque spirale, une analyse des risques est effectuée afin que tous les risques potentiels puissent être identifiés et évités ou surmontés. Il convient aux grands projets, bien que la gestion et le processus lui-même puissent être complexes.
Conclure
Choisir la bonne approche pour le développement de logiciels nécessite des recherches importantes. En définissant la portée, les exigences et l'objectif de votre projet, vous pouvez déterminer les phases SDLC que votre produit devrait subir.
Votre méthodologie de choix n'est pas seulement un processus de développement d'un produit fonctionnel. C'est une manière d'aligner les valeurs de votre organisation et de vos équipes pour créer un environnement de travail harmonieux.
FAQ
Selon la méthodologie que vous choisissez, votre logiciel passera par un nombre variable d'étapes. Les activités suivantes devraient en faire partie de toute façon :
- Planification, recueil des besoins et analyse
- Accord sur une conception ou une architecture système
- Génération de code
- Tester le code produit
- Déploiement du code dans un environnement de production
- Maintenance et amélioration continue
Rabotage; Exigences et analyse ; Concevoir; Développement; Essai; Mise en œuvre; Maintenance.
Cela dépend de votre projet ! Votre analyse de l'industrie, l'objectif du projet, les capacités et les ressources disponibles, les mesures de temps et de coût seraient les facteurs directeurs dans la sélection de la meilleure méthodologie SDLC.
