Logiciel : Définition et Catégories
Le logiciel désigne un ensemble d’instructions, de données ou de programmes utilisés pour faire fonctionner les ordinateurs et exécuter des tâches spécifiques. Contrairement au matériel, qui décrit les aspects physiques d’un ordinateur, le logiciel est un terme générique englobant les applications, les scripts et les programmes qui s’exécutent sur un appareil.
Les logiciels se divisent en deux principales catégories : les logiciels d’application et les logiciels système. Les applications remplissent des besoins spécifiques ou effectuent des tâches, tandis que les logiciels système font fonctionner le matériel de l’ordinateur et fournissent une plateforme pour les applications.
D’autres types de logiciels incluent les logiciels de programmation, qui fournissent les outils nécessaires aux développeurs de logiciels ; les logiciels intermédiaires, qui se situent entre les logiciels système et les applications ; et les logiciels de pilotes, qui contrôlent les périphériques et les accessoires informatiques.
Évolution du Logiciel
À ses débuts, le logiciel était écrit pour des ordinateurs spécifiques et vendu avec le matériel sur lequel il fonctionnait. Dans les années 1980, le logiciel a commencé à être vendu sur des disquettes, puis sur des CD et des DVD. Aujourd’hui, la plupart des logiciels sont achetés et téléchargés directement via internet, disponibles sur les sites des fournisseurs ou des prestataires de services d’applications.
Exemples et Types de Logiciels
Parmi les différentes catégories de logiciels, voici les types les plus courants
Logiciels d’Application
Les logiciels d’application sont les plus courants. Ils sont conçus pour effectuer une fonction spécifique pour un utilisateur, voire pour une autre application. Un logiciel d’application peut être autonome ou être un groupe de programmes qui exécutent une application pour l’utilisateur. Les exemples d’applications modernes incluent les suites bureautiques, les logiciels graphiques, les bases de données et les programmes de gestion de bases de données, les navigateurs Web, les traitements de texte, les outils de développement logiciel, les éditeurs d’images et les plateformes de communication.
Logiciels Système
Ces programmes sont conçus pour exécuter les programmes d’application et le matériel d’un ordinateur. Ils coordonnent les activités et les fonctions du matériel et des logiciels, contrôlent les opérations du matériel informatique et fournissent un environnement ou une plateforme pour tous les autres types de logiciels. Le système d’exploitation (OS) en est le meilleur exemple ; il gère tous les autres programmes informatiques. D’autres exemples de logiciels système incluent le micrologiciel, les traducteurs de langage informatique et les utilitaires système.
Logiciels de Pilotes
Également appelés pilotes de périphériques, ces logiciels sont souvent considérés comme un type de logiciel système. Les pilotes de périphériques contrôlent les périphériques connectés à un ordinateur, leur permettant d’effectuer leurs tâches spécifiques. Chaque périphérique connecté à un ordinateur nécessite au moins un pilote de périphérique pour fonctionner. Les exemples incluent les logiciels fournis avec tout matériel non standard, y compris les contrôleurs de jeu spéciaux, ainsi que les logiciels qui permettent aux périphériques standard, tels que les périphériques de stockage USB, les claviers, les écouteurs et les imprimantes, de fonctionner.
Middleware
Le terme middleware désigne les logiciels qui interviennent entre les logiciels d’application et les logiciels système, ou entre deux types différents de logiciels d’application. Par exemple, le middleware permet à Microsoft Windows de communiquer avec Excel et Word. Il est également utilisé pour envoyer une demande de travail à distance d’une application dans un ordinateur ayant un type de système d’exploitation à une application dans un ordinateur avec un système d’exploitation différent. Il permet également aux nouvelles applications de fonctionner avec les anciennes.
Logiciels de Programmation
Les programmeurs informatiques utilisent des logiciels de programmation pour écrire du code. Les logiciels de programmation et les outils de programmation permettent aux développeurs de développer, écrire, tester et déboguer d’autres programmes logiciels. Les exemples de logiciels de programmation incluent les assembleurs, les compilateurs, les débogueurs et les interprètes.
Comment fonctionnent les Logiciels?
Tout logiciel fournit les instructions et les données dont les ordinateurs ont besoin pour fonctionner et répondre aux besoins des utilisateurs. Cependant, les deux types différents – les logiciels d’application et les logiciels système – fonctionnent de manière distincte.
Logiciels d’Application
Les logiciels d’application se composent de nombreux programmes qui effectuent des fonctions spécifiques pour les utilisateurs finaux, telles que la rédaction de rapports et la navigation sur des sites Web. Ils peuvent également effectuer des tâches pour d’autres applications.
Les applications sur un ordinateur ne peuvent pas fonctionner seules ; elles nécessitent le système d’exploitation de l’ordinateur, ainsi que d’autres programmes logiciels système de soutien, pour fonctionner.
Ces applications de bureau sont installées sur l’ordinateur de l’utilisateur et utilisent la mémoire de l’ordinateur pour effectuer des tâches. Elles occupent de l’espace sur le disque dur de l’ordinateur et n’ont pas besoin d’une connexion Internet pour fonctionner.
Cependant, les applications de bureau doivent respecter les exigences des périphériques matériels sur lesquels elles s’exécutent.
En revanche, les applications Web ne nécessitent qu’un accès Internet pour fonctionner ; elles ne dépendent pas du matériel et des logiciels système pour s’exécuter. Par conséquent, les utilisateurs peuvent lancer des applications Web à partir d’appareils équipés d’un navigateur Web.
Comme les composants responsables de la fonctionnalité de l’application sont sur le serveur, les utilisateurs peuvent lancer l’application à partir de Windows, Mac, Linux ou tout autre système d’exploitation.
Logiciels Système
Les logiciels système se situent entre le matériel informatique et les logiciels d’application. Les utilisateurs n’interagissent pas directement avec les logiciels système car ils s’exécutent en arrière-plan, gérant les fonctions de base de l’ordinateur.
Ce logiciel coordonne le matériel et les logiciels d’un système afin que les utilisateurs puissent exécuter des logiciels d’application de haut niveau pour effectuer des actions spécifiques.
Les logiciels système s’exécutent lorsque le système d’ordinateur démarre et continuent de fonctionner tant que le système est allumé.
Conception et Implémentation
Le cycle de développement logiciel est un cadre utilisé par les chefs de projet pour décrire les étapes et les tâches associées à la conception de logiciels. Les premières étapes du cycle de conception consistent à planifier l’effort, puis à analyser les besoins des utilisateurs du logiciel et à créer des exigences détaillées. Après l’analyse initiale des exigences, la phase de conception vise à spécifier comment répondre à ces exigences utilisateur.
La prochaine étape est l’implémentation, où le travail de développement est effectué, suivi des tests logiciels. La phase de maintenance comprend toutes les tâches nécessaires pour maintenir le système en fonctionnement.
La conception logicielle comprend une description de la structure du logiciel qui sera implémenté, des modèles de données, des interfaces entre les composants du système et éventuellement les algorithmes que l’ingénieur logiciel utilisera.
Le processus de conception logicielle transforme les exigences utilisateur en une forme que les programmeurs informatiques peuvent utiliser pour coder et implémenter le logiciel. Les ingénieurs logiciels développent la conception logicielle de manière itérative, en ajoutant des détails et en corrigeant la conception au fur et à mesure de son développement.
Les différents types de conception logicielle incluent :
Conception Architecturale :
C’est la conception fondamentale qui identifie la structure globale du système, ses principaux composants et leurs relations entre eux à l’aide d’outils de conception architecturale.
Conception de Haut Niveau :
Il s’agit de la deuxième couche de conception qui se concentre sur la manière dont le système, avec tous ses composants, peut être mis en œuvre sous forme de modules pris en charge par une pile logicielle. Une conception de haut niveau décrit les relations entre le flux de données et les différents modules et fonctions du système.
Conception Détaillée :
Cette troisième couche de conception se concentre sur tous les détails de mise en œuvre nécessaires pour l’architecture spécifiée.
Comment Maintenir la Qualité Logicielle?
La qualité logicielle mesure si le logiciel répond à la fois à ses exigences fonctionnelles et non fonctionnelles.
Exigences Fonctionnelles
Les exigences fonctionnelles identifient ce que le logiciel devrait faire. Elles comprennent les détails techniques, la manipulation et le traitement des données, les calculs ou toute autre fonction spécifique qui spécifie ce que vise à accomplir une application.
Exigences Non Fonctionnelles
Les exigences non fonctionnelles – également connues sous le nom d’attributs de qualité – déterminent comment le système devrait fonctionner. Elles comprennent la portabilité, la reprise après sinistre, la sécurité, la confidentialité et la convivialité.
Test Logiciel
Les tests logiciels détectent et résolvent les problèmes techniques dans le code source du logiciel et évaluent l’utilisabilité globale, les performances, la sécurité et la compatibilité du produit pour garantir qu’il répond à ses exigences.
Dimensions de la Qualité Logicielle
- Accessibilité
- Compatibilité
- Efficacité
- Fonctionnalité
- Installabilité
- Localisation
- Maintenabilité
- Performance
- Portabilité
- Fiabilité
- Scalabilité
- Sécurité
- Testabilité
- Utilisabilité
Maintenir la Qualité Logicielle après le Déploiement
Une fois déployé, pour maintenir la qualité logicielle, les développeurs doivent constamment l’adapter pour répondre aux nouveaux besoins des clients et résoudre les problèmes identifiés par ces derniers.
Cela comprend l’amélioration de la fonctionnalité, la correction des bugs et l’ajustement du code pour prévenir les problèmes. La durée de vie d’un produit sur le marché dépend de la capacité des développeurs à répondre à ces exigences de maintenance.
En ce qui concerne l’exécution de la maintenance, il existe quatre types de modifications que les développeurs peuvent apporter :
- Corrective : Les utilisateurs identifient souvent et signalent des bugs que les développeurs doivent corriger, y compris les erreurs de codage et autres problèmes empêchant le logiciel de répondre à ses exigences.
- Adaptative : Les développeurs doivent régulièrement apporter des modifications à leur logiciel pour s’assurer qu’il est compatible avec les environnements matériels et logiciels changeants, comme lorsqu’une nouvelle version du système d’exploitation est disponible.
- Perfective : Ce sont des changements qui améliorent la fonctionnalité du système, tels que l’amélioration de l’interface utilisateur ou l’ajustement du code pour améliorer les performances.
- Préventive : Ces changements sont effectués pour éviter que le logiciel ne tombe en panne et incluent des tâches telles que la restructuration et l’optimisation du code.
Histoire du Logiciel
Le terme « logiciel » n’a été utilisé que vers la fin des années 1950. Pendant cette période, bien que différents types de logiciels de programmation aient été créés, ils n’étaient généralement pas disponibles commercialement. Par conséquent, les utilisateurs – principalement des scientifiques et de grandes entreprises – devaient souvent écrire leurs propres logiciels.
Chronologie de l’Histoire du Logiciel
- Juin 1948 : Tom Kilburn, un informaticien, écrit le premier logiciel pour l’ordinateur Manchester Baby à l’Université de Manchester, en Angleterre.
Début des années - 1950 : General Motors crée le premier système d’exploitation pour l’IBM 701 Electronic Data Processing Machine, appelé General Motors Operating System, ou GM OS.
- 1958 : Le statisticien John Tukey invente le mot « logiciel » dans un article sur la programmation informatique.
- Fin des années 1960 : Les disquettes sont introduites et sont utilisées dans les années 1980 et 1990 pour distribuer des logiciels.
- 3 novembre 1971 : AT&T publie la première édition du système d’exploitation Unix.
- 1977 : Apple sort l’Apple II et les logiciels grand public décollent.
- 1979 : VisiCorp sort VisiCalc pour l’Apple II, le premier logiciel de tableur pour ordinateurs personnels.
- 1981 : Microsoft sort MS-DOS, le système d’exploitation sur lequel fonctionnaient de nombreux premiers ordinateurs IBM. IBM commence à vendre des logiciels, et les logiciels commerciaux deviennent disponibles pour le consommateur moyen.
- Années 1980 : Les disques durs deviennent la norme sur les PC, et les fabricants commencent à regrouper des logiciels dans les ordinateurs.
- 1983 : Le mouvement du logiciel libre est lancé avec le projet GNU (GNU n’est pas Unix) de Richard Stallman pour créer un système d’exploitation de type Unix avec du code source pouvant être librement copié, modifié et distribué.
- 1984 : Mac OS est publié pour faire fonctionner la gamme Macintosh d’Apple.
Milieu des années - 1980 : Des applications logicielles clés, telles que AutoDesk AutoCAD, Microsoft Word et Microsoft Excel, sont publiées.
- 1985 : Microsoft sort Windows 1.0.
- 1989 : Les CD-ROM deviennent la norme et peuvent contenir beaucoup plus de données que les disquettes. Les grands programmes logiciels peuvent être distribués rapidement, facilement et relativement peu coûteux.
- 1991 : Le noyau Linux, base du système d’exploitation Linux open source, est publié.
- 1997 : Les DVD sont introduits et peuvent contenir plus de données que les CD, ce qui permet de regrouper des programmes, tels que la suite Microsoft Office, sur un seul disque.
- 1999 : Salesforce.com utilise le cloud computing pour pionnier la livraison de logiciels via Internet.
- 2000 : Le terme « logiciel en tant que service » (SaaS) devient à la mode.
- 2007 : L’iPhone est lancé et les applications mobiles commencent à se développer.
- 2010 à aujourd’hui : Les DVD deviennent obsolètes alors que les utilisateurs achètent et téléchargent des logiciels depuis Internet et le cloud. Les fournisseurs adoptent des modèles basés sur l’abonnement et le SaaS devient courant.