Le développement logiciel fait référence à un ensemble d’activités informatiques dédiées au processus de création, de conception, de déploiement et de support de logiciels.
Le logiciel lui-même est l’ensemble des instructions ou des programmes qui indiquent à un ordinateur ce qu’il doit faire. Il est indépendant du matériel et rend les ordinateurs programmables. Il en existe trois types de base :
Logiciel système pour fournir des fonctions de base telles que les systèmes d’exploitation, la gestion des disques, les utilitaires, la gestion du matériel et d’autres besoins opérationnels.
Logiciel de programmation pour fournir aux programmeurs des outils tels que des éditeurs de texte, des compilateurs, des éditeurs de liens, des débogueurs et d’autres outils pour créer du code.
Logiciel d’application (applications) pour aider les utilisateurs à effectuer des tâches. Les suites bureautiques, les logiciels de gestion des données, les lecteurs multimédia et les programmes de sécurité en sont des exemples. Les applications font également référence à des applications Web et mobiles comme celles utilisées pour faire des achats sur Amazon.com, pour échanger sur Facebook ou pour publier des photos sur Instagram.1
Un quatrième type possible est celui des logiciels embarqués. Les logiciels systèmes embarqués sont utilisés pour contrôler des machines et des appareils qui ne sont généralement pas considérés comme des ordinateurs, tels que des réseaux de télécommunications, des voitures, des robots industriels et autres. Ces appareils, ainsi que leurs logiciels, peuvent être connectés dans le cadre de l’Internet des objets (IdO).2
Le développement logiciel est principalement effectué par des programmeurs, des ingénieurs logiciels et des développeurs de logiciels. Ces rôles interagissent et se recoupent, et la dynamique entre eux varie considérablement d’un service de développement à l’autre et d’une communauté à l’autre.
Les programmeurs, aussi appelés codeurs, écrivent du code source pour programmer des ordinateurs afin qu’ils effectuent des tâches spécifiques telles que la fusion de bases de données, le traitement des commandes en ligne, le routage des communications, la réalisation de recherches ou l’affichage de texte et de graphismes. Les programmeurs interprètent généralement les instructions des développeurs et des ingénieurs logiciels et utilisent des langages de programmation comme C++ ou Java pour les exécuter.
Les ingénieurs logiciels appliquent les principes de l’ingénierie pour créer des logiciels et des systèmes afin de résoudre des problèmes. Ils utilisent le langage de modélisation et d’autres outils pour concevoir des solutions qui peuvent souvent être appliquées à des problèmes d’ordre général, et non simplement appliquées à des fins de résolution pour un cas ou un client spécifique. Les solutions d’ingénierie logicielle adhèrent à la méthode scientifique et doivent fonctionner dans le monde réel, comme pour les ponts ou les ascenseurs. Leur responsabilité s’est accrue à mesure que les produits ont gagné en intelligence avec l’ajout de microprocesseurs, de capteurs et de logiciels. Non seulement de plus en plus de produits s’appuient sur des logiciels pour se différencier sur le marché, mais leur développement logiciel doit être coordonné avec le travail de développement mécanique et électrique du produit.
Les développeurs logiciels ont un rôle moins formel que les ingénieurs et peuvent être étroitement impliqués dans des domaines de projet spécifiques, comprenant l’écriture de code. Dans le même temps, ils pilotent le cycle de vie global du développement logiciel, notamment en travaillant avec les équipes fonctionnelles pour transformer les exigences en fonctionnalités, gèrent les équipes et les processus de développement, et effectuent les tests et la maintenance logiciels.3
Le travail de développement logiciel ne se limite pas aux codeurs ou aux équipes de développement. Les professionnels tels que les scientifiques, les fabricants d’appareils et les fabricants de matériel créent également du code logiciel, même s’ils ne sont pas principalement développeurs logiciels. Il ne se limite pas non plus aux secteurs traditionnels des technologies de l’information tels que les entreprises de logiciels ou de semi-conducteurs. En réalité, selon le Brookings Institute (lien externe à ibm.com), ces entreprises « représentent moins de la moitié des sociétés réalisant le développement logiciel ».
Il est important de distinguer le développement de logiciels personnalisés et le développement de logiciels commerciaux. Le développement de logiciels personnalisés est le processus de conception, de création, de déploiement et de maintenance d’un logiciel pour un ensemble spécifique d’utilisateurs, de fonctions ou d’organisations. En revanche, les logiciels commerciaux prêts à l’emploi (COTS) sont conçus pour répondre à un large éventail d’exigences, ce qui leur permet d’être packagés, commercialisés et distribués.
Découvrez comment le DaaS (Desktop as a service) permet aux entreprises d'atteindre le même niveau de performance et de sécurité qu'en déployant les applications sur site.
Obtenir le guide sur le cloud hybride
Le développement d’un logiciel implique généralement les étapes suivantes :
Les étapes du processus de développement logiciel s’inscrivent dans la gestion du cycle de vie des applications (ALM). La solution IBM Engineering Management est un sur-ensemble d’ALM qui permet de gérer le développement parallèle mécanique, électrique et logiciel.
Les étapes du processus de développement logiciel peuvent être regroupées en phases du cycle de vie, mais l’importance du cycle de vie réside dans le fait qu’il se recycle pour permettre une amélioration continue. Par exemple, les problèmes des utilisateurs qui surviennent lors de la phase de maintenance et de support peuvent devenir des exigences au début du cycle suivant.
Le développement logiciel est également important parce qu’il est omniprésent. Comme le souligne Dibbe Edwards, vice-présidente d’IBM et autrice d’articles de blog : « Les logiciels sont devenus un facteur de différenciation clé dans de nombreux produits, des voitures aux machines à laver en passant par les thermostats, connectés par un Internet des objets en pleine expansion. »
Voici quelques exemples :
L’utilisation du développement logiciel pour différencier les marques et obtenir un avantage concurrentiel nécessite de maîtriser les techniques et la technologie capables d’accélérer le déploiement, la qualité et l’efficacité des logiciels.
Cette solution éprouvée pour les activités de modélisation et de conception vous aide à distribuer plus rapidement des systèmes et des logiciels de meilleure qualité.
Le contrôle avancé des versions de logiciels, la gestion de l’espace de travail, le contrôle des sources distribuées et la prise en charge du développement parallèle pour les particuliers et les équipes améliorent la productivité en suivant automatiquement les modifications apportées aux artefacts. Le logiciel permet une fonctionnalité de suspension et de reprise pratiquement illimitée pour gérer les interruptions de travail.
Fournit des connexions entre les outils IBM Engineering Lifecycle Management et des outils tiers tels que Git, GitLib et GitHub pour la gestion du contrôle des versions logicielles.
Du code, du contenu, une communauté et plus encore.
Inscrivez-vous pour consulter les sujets essentiels.
Répondez aux besoins complexes de votre entreprise avec rapidité et agilité en vous connectant à vos outils de développement logiciel.
Aujourd’hui, nos recherches en informatique visent à percer dans les domaines de l’automatisation, du traitement de l’information et du calcul.
1 Logiciel, Techopedia (lien externe à ibm.com)
2 Logiciel embarqué, Wikipedia (lien externe à ibm.com)
3 Software Engineer vs. Software Developer – What’s the Difference? Fullstack Academy (lien externe à ibm.com)
4 The Forrester Wave™: Low-Code development Platforms for AD&D Pros, Q4 2017 John R. Rymer, Forrester Research, Inc. 23 octobre , 2017 (lien externe à ibm.com)