Logiciel
Un logiciel est l'ensemble des éléments informatiques qui permettent d'assurer une tâche ou une fonction (exemple : logiciel de comptabilité, logiciel de gestion des prêts).
Le terme logiciel est souvent employé pour programme informatique et inversement. Un logiciel peut être composé d'un seul, ou d'une suite de programmes. Ce dernier cas est d'autant plus fréquent que la capacité réduite de calcul de l'ordinateur oblige à une segmentation des tâches en plusieurs modules séparés ; cependant, les énormes capacités des micro-ordinateurs actuels en regard des applications typiques de bureautique ont permis la réalisation d'applications monolithiques. Généralement, les programmes sont accompagnés d'un ensemble de données permettant de les faire fonctionner (par exemple, un jeu viendra avec de nombreuses images, animations, sons...).
| Sommaire |
Diverses présentations des logiciels
Les programmes peuvent être de différentes formes :
- exécutables : ils peuvent être exécutés directement par l'ordinateur ;
- généralement, ils ne peuvent être exécutés que sur un type de machine et de système d'exploitation particulier (exemple : Microsoft Windows sur un compatible PC) ;
- cependant, il existe des exécutables (en bytecode) exécutables sur une variété de plate-formes (comme ceux du langage Java) ; ils visent en fait l'exécution pour une machine virtuelle, qui est elle-même un logiciel disponible sur les diverses plates-formes.
- fichiers sources : il s'agit généralement d'un texte respectant les règles d'écriture d'un langage de programmation particulier ; à titre indicatif, l'ordre de grandeur de la taille d'un logiciel comme Microsoft Word est d'un million de lignes de code ;
- pour un langage compilé : ils doivent être traduits en un exécutable par un compilateur ;
- pour un interpréteur : ils sont exécutés directement à la lecture (par exemple des scripts Perl ou PHP).
- bibliothèques : il s'agit de programmes exécutables ou source qui, en eux-mêmes, ne sont pas exécutables directement et n'offrent pas de fonctionnalité à l'utilisateur, mais fournissent des services à d'autres programmes (par exemple, on trouvera des bibliothèques permettant à un programme de charger des animations ou de jouer des sons) ; on trouve en particulier des bibliothèques dynamiques (dll Windows ou so GNU/Linux).
Les données associées au logiciel peuvent également être de différents formats : fichiers classiques, bases de données (relationnelles, hiérarchiques, etc.). Les données du logiciel peuvent être éclatées en un grand nombre de fichiers, ou tout le logiciel peut être rassemblé en un seul fichier ; par exemple, sous Windows, la définition de l'interface utilisateur, le dessin des icônes etc., sont souvent intégrés dans le même fichier que l'application principale.
Développement de logiciels
Article détaillé : Développement de logiciel
Les logiciels, suivant leur taille, peuvent être développés par une personne seule, une petite équipe, ou un ensemble d'équipes coordonnées. Le développement de grands logiciels par de grandes équipes pose de grands problèmes de coordination, en raison de la quantité importante d'informations à communiquer entre les intervenants : documentation, réunions. Pour ces raisons, le développement de logiciels dans un contexte professionnel suit souvent des règles strictes permettant le travail en groupe et la maintenance du code ; en effet, souvent, les personnes qui doivent opérer des modifications ultérieures dans le code ne sont plus les personnes qui l'ont développé.
Bugs
Article détaillé : bug
Des erreurs de conception dans les logiciels peuvent causer des comportements incorrects, souvent appelés bugs (ou bogues). La gravité de ceux-ci peut aller de très mineure (p.ex., apparence légèrement incorrecte d'un élément d'interface graphique), à des évènements catastrophiques (explosion de la fusée Ariane vol 501, irradiation incorrecte de patients par une machine de traitement...) en passant par des pertes plus ou moins grandes de données, et, rarement, par une détérioration du matériel.
Il est difficile, pour des raisons fondamentales, de produire des logiciels sans bugs ; cependant, il existe des mécanismes par lesquels on peut limiter la quantité de bugs, voire les supprimer. Citons d'une part des préceptes d'organisation des équipes de programmation et leur méthodologie, d'autre part les technologies de recherche de bugs dans les logiciels. La recherche en informatique a développé un domaine d'étude, la vérification formelle, dont l'objectif est de certifier la qualité des logiciels et de garantir leur fiabilité. Dans l'ensemble, l'obtention de logiciels complexes peu bogués est coûteuse en hommes et en temps.
Ouverture du code source
On classe les logiciels d'après la disponibilité du code source et de la licence qui régit la distribution du programme :
- code ouvert : tout le monde peut lire le code source. Ce terme n'est pas synonyme de logiciel libre ;
- code fermé : le code source n'est disponible que pour une minorité de personnes ;
- logiciel libre : tout le monde peut étudier, copier, distribuer, modifier et distribuer des versions modifiées du logiciel (définition de la free software foundation). Les logiciels libres sont protégés pour la plupart par une licence d'utilisation ;
- logiciel propriétaire : au moins un de ces droits n'est pas rempli pour les utilisateurs. La plupart du temps, acquérir une licence d'utilisation nécessite le paiement d'une certaine somme aux créateurs du logiciel ;
- logiciel commercial : logiciel destiné à la vente, il peut être libre ou propriétaire, même s'il est souvent propriétaire.
Voir aussi
- Génie logiciel
- Spécification
- Brevet logiciel
- Brevet logiciel en Europe
- Matériel informatique
- Firmware
- Logiciel libre
- Progiciel
- Noms et utilisation de logiciels
- Version simple:Software
