# Phases principales du Cycle de développement logiciel

Le diagramme suivant présente les phases principales du cycle de vie du développement logiciel : l'analyse et la définition des besoins (Analysis and Requirements), le développement des Jobs et de leurs tests (Development and Tests), la mise en place d'un build automatisé, les tests d'assurance qualité (QA Tests) ainsi que la mise en service et la maintenance du produit (Go Live et Maintenance).

Pour plus d'informations concernant les personnes impliquées dans ces phases, consultez [Profils](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/8.0/profiles).

![](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/Resources/images/sdlc-circular_phases.png)

## Cycle de vie du développement d'un produit

Le cycle de vie du développement d'un produit ou d'une fonctionnalité est un processus vaste comprenant les spécifications, le développement, le test, le déploiement dans les environnements de QA et de Production, la maintenance et la migration.

* Spécifications : elles constituent la partie de conceptualisation du processus (exigences techniques, attributions de tâches, etc). Pour plus d'informations, consultez [Spécifications](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/8.0/specifications "Avant les processus de conception, les personnes en charge de la direction commerciale, de la prise de décision ou du développement doivent écrire leurs spécifications, c'est l'une des fondations du développement basé sur les tests.").
* Développement, tests et déploiement : ils constituent les parties conception et publication du processus. Pour plus d'informations, consultez [Développement et Tests](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/8.0/developing-and-testing "Dans une approche pilotée par les tests, le développement et les tests d'un processus sont étroitement liés. Ainsi, la tâche d'un développeur n'est terminée qu'une fois le processus conçu et testé. Une fois les spécifications définies, l'équipe de développement peut commencer à concevoir les processus appelés Jobs.") et [Construire et déployer](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/8.0/ci-build "Talend propose plusieurs manières de publier vos artefacts de projets dans Talend Cloud, dans des référentiels d'artefacts (Nexus, Artifactory) ou dans Docker et de planifier leurs exécutions. Cela vous permet de choisir la manière qui vous convient le mieux.").
* Déploiement dans les environnements d'assurance qualité (QA) et de Production. Pour plus d'informations, consultez [Déploiement vers les environnements d'Assurance qualité (QA) et de Production](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/8.0/deploying-to-qa-and-production-environments).
* Maintenance : elle est principalement assurée par les tags et la création de branches GIT. Pour plus d'informations, consultez [Maintenance](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/8.0/maintaining "Une fois qu'une fonctionnalité ou un produit est en production, il se peut que les développeurs aient encore besoin de la (le) mettre à jour pour améliorer ses performances, répondre à de nouvelles exigences techniques ou corriger des erreurs découvertes dans le produit.").
* Migration.

## Concepts relatifs au cycle de vie logiciel

* L'intégration continue (CI) est une pratique de développement où les membres d'une équipe intègrent leur travail de manière régulière, chaque intégration étant vérifiée par un système automatisé (un build) afin de détecter des erreurs d'intégration aussi vite que possible.

* Le déploiement continu (Continuous Deployment, CD) est une pratique dans laquelle les modifications de code passant les tests automatisés peuvent être déployées en production rapidement et de manière sûre.

* Le moteur de production (build automation) constitue une bonne pratique suivie lors du cycle de développement logiciel pour compiler et mettre en package le code source à l'aide d'un script.

  Par exemple, les utilisateurs et utilisatrices Talend peuvent exporter les sources d'un Job créé dans le Studio Talend en tant que fichier .zip à l'aide de Maven, puis réutiliser cette archive générée dans Talend Management Console pour programmer les prochaines exécutions du Job.

* Le contrôle de version et la gestion du code source (SCM) vous permettent de gérer et d'identifier les changements effectués sur le produit en affectant des révisions à ces changements. Ceci est réalisé dans les produits Talend grâce à un référentiel et un système de branches centralisés, sur Git. Par exemple, les utilisateur·trices Talend peuvent utiliser le référentiel partagé entre le Studio Talend et les autres applications, ainsi que le système de branche pour les modifications de versions.

## Profils

Exemple des personas principales impliquées dans les phases du cycle de vie d'un produit.

![](https://help.qlik.com/talend/fr-FR/software-dev-lifecycle-best-practices-guide/Resources/images/sdlc-personas.png)

* Alan, Responsable projet (Phase Analyse et besoins / Spécifications) : Alan dirige l'architecture du projet et choisit les technologies utilisées. Il conçoit les spécifications en accord avec les directeurs commerciaux et les développeurs.
* Jim, Développeur (Phase Développement et Tests + Maintenance) : Jim conçoit et implémente les Jobs et les composants dans l'environnement de Développement. Il crée et exécute également les tests des Jobs qu'il a conçus, puis passe ces Jobs à Thomas. Si nécessaire, ils peuvent gérer la maintenance logicielle en corrigeant des erreurs ou en améliorant le logiciel pour répondre à de nouvelles exigences techniques.
* Thomas l'Ingénieur QA (Phase Tests QA) : Thomas crée et exécute des séries de tests sur des fonctionnalités et des produits, ces tests sont à la fois manuels (basés sur des scénarios utilisateur) et automatisés par des builds (en utilisant des Test Cases) dans l'environnement d'Assurance Qualité. Il envoie également des rapports de résultats réguliers à Megan.
* Megan, Exploitante/Responsable de publication (Phase Mise en service) : Megan approuve la version candidate du build (RC) et déploie cette version en Production lorsqu'elle s'est assurée que tous les tests sont passés avec succès.