Développement de logiciel

Page d'aide sur l'homonymie Pour les articles homonymes, voir Développement.

Le développement de logiciel consiste à étudier, concevoir, construire, transformer, mettre au point, maintenir et améliorer des logiciels.

Ce travail est effectué par les employés d' éditeurs de logiciels, de sociétés de services et d'ingénierie informatique (SSII), des travailleurs indépendants (freelance) et des membres de la communauté du logiciel libre.

Un logiciel est créé petit à petit par une équipe d'ingénieurs conformément à un cahier des charges établi par un client demandeur ou une équipe interne. Le logiciel est décomposé en différents modules et un chef de projet, ou architecte, se charge de la cohérence de l'ensemble.

Différentes activités permettent de prendre connaissance des attentes de l'usager, créer un modèle théorique du logiciel, qui servira de plan de construction, puis construire le logiciel, contrôler son bon fonctionnement et son adéquation au besoin. La planification et la répartition des travaux permet d'anticiper le délai et le coût de fabrication.

Le logiciel est accompagné d'une procédure d'installation, d'une procédure de vérification de bonne installation, de documentation (parfois créé automatiquement à partir de commentaires placés à cet effet dans le code source) et d'une équipe d'assistance au déploiement et à la maintenance, désignée sous le nom de support.

Outre les travaux d'analyse, de conception, de construction et de tests, une procédure de recette - simulacre d'acquisition, permettra de déterminer si le logiciel peut être considéré comme utilisable.

Les activités clés

La phase préliminaire avant tout commencement des travaux de développement est une étude précisant les besoins, les scénarios d'interaction des utilisateurs avec le poste de travail, le but visé, et le retour sur investissement du futur logiciel. Cette phase comporte souvent une analyse rapide, destinée à obtenir une estimation empirique du coût de fabrication du logiciel [1]. Un barème — établi par expérience — est typiquement utilisé pour estimer le temps prévu de conception, codage et test de transactions-type : consultation simple, mise à jour, listage simple, listage complexe, etc [2].

Analyse

Article détaillé : Analyse fonctionnelle (conception).

L' analyste recense et documente chaque fonctionnalité que devra offrir le logiciel, et crée les documents de spécification explicitant de manière plus approfondie le cahier des charges défini par le client (le plus souvent non familiarisé avec le métier du développement logiciel). Dans le cas d'une interface graphique d'un logiciel [1], on peut créer par la suite une maquette qui sera approuvée et le plus souvent approfondie par le client ou les utilisateurs.

Le cahier des charges détaillé permet au chef de projet de calculer le détail du coût de fabrication du logiciel, lui-même fonction du temps estimé nécessaire.

Conception

Le travail de conception consiste à déterminer les solutions techniques qui permettent de satisfaire le cahier des charges et donc répondre aux attentes de l'usager. L'ingénieur se base sur son expérience, ainsi que sur les patrons de conception, modèles de solutions déjà éprouvés. Il en résulte des diagrammes d' architecture, une description du modèle de données et le diagramme de classes. Les diagrammes utilisent souvent la notation UML [1].

Construction

Article détaillé : Programmation informatique.

La construction est la principale activité, qui occupe plus de la moitié de la durée totale du développement. Durant cette étape le ou les programmeurs rédigent le code source du logiciel, puis utilisent un compilateur pour le transformer et obtenir les différents composants du logiciel proprement dit. Le programmeur effectue également de nombreux tests en vue de déceler un maximum de bugs — des erreurs de programmation. Des tests de non-régression permettent de vérifier que l'ajout de nouvelles fonctionnalités ne compromet pas les anciennes. L'un des soucis du procédé est que des tests peuvent démontrer la présence d'erreurs, mais jamais leur absence.

Les différents modules du logiciels sont programmés un par un, puis rassemblés, et de nouveaux tests sont effectués en vue de vérifier le fonctionnement de l'ensemble ( test d'intégration).

Le produit de cette phase est le livrable, c'est-à-dire l'ensemble des fichiers mis à disposition de l'utilisateur final : non seulement les programmes, mais le mode d'emploi et les fichiers de configuration. Le livrable peut être une application informatique complète, un composant, ou un patch [1].

Recette

Article détaillé : Recette (informatique).

Durant la recette, divers contrôles sont effectués avant que le logiciel soit mis sur le marché. Un examen approfondi, composé d'une suite de tests, est effectué en vue de vérifier l'alignement du produit avec le cahier des charges. Une version bêta (présérie) du logiciel est mise à disposition d'un nombre limité d'usagers en vue de leur permettre d'évaluer l'adéquation du logiciel avec leurs attentes [3].

Other Languages
Bahasa Melayu: Pembangunan perisian
Simple English: Software development
српски / srpski: Развој софтвера
中文: 软件开发
粵語: 軟件開發