Comment créer de bons logiciels en 2019

L'industrie du développement de logiciels est en plein essor. Nous continuons à produire des quantités énormes de code chaque année.

Au cœur de l'industrie se trouve le cycle de vie du développement logiciel (SDLC) – processus qui guide les équipes de logiciels dans la structuration et la planification de leur travail.

Faisons donc un voyage à travers le terrain perfide du développement logiciel.

Nous examinerons ce qu'est réellement SDLC et retracerons son évolution. Nous verrons quels sont les principaux modèles utilisés par l'industrie.

Nous allons découvrir les phases SDLC, au cours desquelles un logiciel passe avant de voir le jour – et les principaux interprètes de chacune d’elles.

En fin de compte, nous vous donnerons un aperçu de l’ensemble du processus.

Comprendre le processus SDLC

Le logiciel de construction est un processus. En tant que tel, il a besoin d'un objectif bien défini, de moyens pour le réaliser et de moyens pour mesurer, maintenir et améliorer les résultats. Les différentes approches du développement logiciel fournissent tout cela. Ils ne sont pas tous coupés du même tissu, cependant. En fonction de votre situation, vous devrez peut-être opter pour des approches extrêmement 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 est que chaque logiciel suit un certain Déroulement du processus SDLC.

Ce cadre regroupe les phases nécessaires à l'achèvement, les ressources nécessaires et les tâches à effectuer en cours de route.

le Processus SDLC est finalement 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ées.

Le SDLC est souvent considéré comme un sous-ensemble du terme plus large de «cycle de vie du développement de systèmes» – le cadre le plus ancien pour le développement de systèmes d’information.

Il est apparu au début des années 1960 en réponse à la nécessité de disposer de systèmes d’entreprise capables de traiter de grandes quantités de données. Le premier bien documenté Cadre SDLC est le paradigme de la programmation structurée de 1969.

Une variété de méthodologies de développement de logiciels ont vu le jour dans les années 90. Certains d'entre eux sont la programmation orientée objet, Scrum et le processus unifié rationnel. Le processus unifié agile est apparu en 2005.

Structure du processus de développement logiciel

Le développement d'un logiciel est une séquence d'étapes bien coordonnées. En fonction de l’approche de développement choisie, le nombre de É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 présente comme suit:

Exigences et analyse

C'est 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 logiciel. Outre les exigences des clients, de nombreux autres facteurs doivent être pris en compte. Ceux-ci inclus:

  • Architectural
  • Fonctionnel
  • Non fonctionnel
  • Performance
  • Et ceux liés au design

Pour réussir cette étape, un document appelé «spécification des exigences logicielles» est développé. C'est la base de tout ce qui se passera à partir de ce moment.

Le succès d’un projet de développement dépend fortement de l’analyse des besoins. Le principal intervenant à cette étape est l’analyste commercial. Il gère toutes les communications pour rassembler les exigences de l'entreprise, effectuer une analyse approfondie et, surtout, traduire ces informations entre les parties prenantes et les développeurs.

Conception

La conception du logiciel est basée sur les exigences établies. C’est ici que nous définissons l’environnement de développement, les langages de programmation, le cadre architectural, le matériel, etc. Il est également temps de déterminer la stratégie de test qui sera utilisée. Le rôle de l'architecte système est essentiel ici. 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

A ce jour, les développeurs sont déjà bien conscients des 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. Produire un logiciel fonctionnel est le résultat ultime à ce stade.

Essai

Maintenant que nous avons un produit utilisable, la phase de test peut commencer. En fonction de 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 existe des bogues dans le code. Les testeurs sont les interprètes clés ici. Le résultat de leurs efforts est un logiciel entièrement fonctionnel, prêt à être lancé.

Entretien

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 ils doivent être résolus. Une maintenance continue est indispensable si vous souhaitez avoir des clients satisfaits.

La version en 7 étapes

Maintenant le 7 étapes la saveur de ce processus est un peu différente. Il comporte quelques étapes supplémentaires, qui changent inévitablement la nature des autres. Nous allons jeter un coup d'oeil:

Planification

Une autre façon de lancer le Processus SDLC est avec une phase de planification. Il précède la collecte des exigences et cherche principalement à obtenir des commentaires. Les commentaires des parties prenantes, des partenaires commerciaux, des ingénieurs et des clients finaux déterminent 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 métiers établissent une liste d’exigences en fonction 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 nécessaires pour mener à bien 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.

Développement de logiciels

Une fois les exigences définies, les ingénieurs logiciels peuvent commencer à travailler. L'objectif à ce stade est un programme de travail, prêt à être testé. C’est aussi le début de la production dans le Processus SDLC.

Essai

L’équipe d’assurance qualité a pour rôle de déterminer si les exigences initiales de l’entreprise ont été satisfaites. Ils inspectent la qualité du code du logiciel. Les bugs sont corrigés. Il existe toute une liste de méthodes de test de logiciel à appliquer: tests fonctionnels, d’intégration, de performance, etc.

Les tests d'automatisation permettent d'automatiser le processus d'exécution de tests répétitifs à l'aide de logiciels externes tels que Bamboo et Jenkins.

la mise en oeuvre

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 cycle de vie du développement logiciel.

Maintenance et exploitation

Une fois que le logiciel est sorti en production, toutes sortes de problèmes peuvent surgir. Grâce à la surveillance, ils peuvent être identifiés et résolus. De nouvelles fonctionnalités peuvent également se retrouver 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 en grande partie universel. Il est possible d’ajouter d’autres étapes ou de simplifier les étapes existantes, mais c’est essentiellement la même chose.

Cela n’est pas vrai quand on regarde le développement les méthodes. 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 doivent être pris en compte. C’est toujours un équilibre entre les besoins du client et les détails pratiques du développement de logiciels. Il y a 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 ferons un aperçu de certaines des technologies les plus connues et les plus utilisées. Méthodologies SDLC.

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 provient des industries de la fabrication et de la construction dans les années 1970.

L'avancement d'un projet de développement suivant le modèle en cascade se fait 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’existe pas de processus défini pour revenir en arrière.

le SDLC cascade 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 de soutien est disponible et vous estimez un projet à court terme

L'inconvénient de la méthode est liée à son manque de flexibilité. Vous ne pouvez pas implémenter de nouvelles exigences en cours de route. Comme il n’ya pas de produit tangible fabriqué jusqu’à la fin du processus de développement, le risque et l’incertitude sont élevés. Cette approche peut s'avérer 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 qu'un 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 tirent des enseignements du comportement des versions précédentes du logiciel et sont en mesure d’améliorer ses fonctionnalités.

Le principal 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 à effectuer à 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, de même que le risque. Par conséquent, pour que cette méthode fonctionne, il faut des experts hautement qualifiés effectuant l'analyse de risque.

La méthodologie ne convient pas 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 parties d’un logiciel fonctionnel et sur l’obtention d’un retour immédiat de la part du client. La collaboration étroite et la communication continue entre les équipes sont au cœur de cette approche. Chaque cycle dure environ une à trois semaines, moment auquel le module / la fonctionnalité de travail est livré au client. Le processus se répète ensuite.

Les tests sont effectués à chaque itération, ce qui permet de résoudre les problèmes rapidement. 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éconise le travail d'équipe et offre une flexibilité aux ingénieurs en logiciel.

Comme il n’ya pas d’exigence 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 des connaissances à de 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 La méthodologie Lean comprend sept principes:

  • Éliminer le gaspillage
  • Amplifier l'apprentissage
  • Décidez le plus tard possible
  • Livrer aussi vite que possible
  • Habiliter l'équipe
  • Construire l'intégrité
  • Voir la grande image

La clé pour comprendre ce modèle passe par ces principes. Cela conduirait à les transformer en pratiques agiles fonctionnelles et à les mettre en œuvre dans le processus de travail.

Les principes Lean s'articulent autour de l'idée de générer autant de valeur ajoutée que possible pour les utilisateurs finaux, tout en optimisant la qualité, la rapidité, les coûts et les attentes de l'entreprise. À cette fin, certaines tâches sont éliminées (documentation lourde) et d’autres optimisées (fréquence des réunions).

DevOps

Le modèle DevOps est partiellement basé à la fois sur Agile et Lean. Il s’agit d’une nouvelle approche qui associe étroitement 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. Le but ultime est de raccourcir le code SDLC et, dans le même temps, d’obtenir des résultats novateurs de haute qualité, conformes aux exigences de l’entreprise.

Avec cette approche, les développeurs, les équipes opérationnelles et les membres de l’assurance qualité sont tous sur la même page. 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

C'est une combinaison de développement itératif et de certaines notions du modèle de cascade. Il permet des versions partielles du logiciel à chaque cycle itératif. Il comporte quatre étapes et les répétitions sont appelées "spirales". le Phases SDLC sont: la planification et la collecte des exigences; conception; développement et test.

L'analyse des risques a un rôle clé. À chaque spirale, une analyse de risque 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.

Emballer

Choisir la bonne approche pour le développement de logiciels nécessite des recherches approfondies. En définissant la portée, les exigences et l’objectif de votre projet, vous pouvez déterminer le Phases SDLC votre produit devrait subir.

Votre méthodologie de choix n'est pas seulement un processus de développement d'un produit fonctionnel. C’est un moyen d’aligner les valeurs de votre organisation et de vos équipes pour créer un environnement de travail harmonieux.

questions – réponses

Quelles sont les phases du cycle de vie du développement logiciel (SDLC)?

En fonction de la méthodologie choisie, votre logiciel passera par un nombre variable d'étapes. Les activités suivantes devraient en faire partie de toute façon:

  • Planification, regroupement des besoins et analyse
  • S'accorder sur un design ou une architecture système
  • Génération de code
  • Tester le code produit
  • Déploiement du code dans un environnement de production
  • Maintenance continue et amélioration

Quelles sont les 5 étapes de SDLC?

Rassemblement des besoins et analyse; Conception; Développement; Essai; Entretien.

Quelles sont les 7 phases de SDLC?

Rabotage; Besoins et analyse; Conception; Développement; Essai; La mise en oeuvre; Entretien.

Quel modèle SDLC est le meilleur?

Cela dépend de votre projet! Votre analyse de l’industrie, l’objectif du projet, les capacités et les ressources disponibles, les métriques de temps et de coûts seraient les facteurs déterminants pour la sélection de la meilleure méthodologie SDLC.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.