Logiciel
7870
31717370
2008-07-19T22:29:27Z
66.131.80.237
/* Développement de logiciels */
Un '''logiciel''' est un ensemble de [[programme informatique|programmes]] qui permet à un [[ordinateur]] ou à un [[système informatique]] d'assurer une tâche ou une fonction en particulier (exemple : logiciel de [[gestion de la relation client]], logiciel de [[production]], logiciel de [[comptabilité]], logiciel de gestion des prêts).
On distingue en général, dans un [[système informatique]], la partie [[matériel informatique|matérielle]] (l'[[ordinateur]] et ses [[Périphérique informatique|périphérique]]s) et la partie logicielle, immatérielle (les [[programme informatique|programmes]] « écrits » sur le [[disque dur]]).
Le logiciel est un bien immatériel, mais surtout c'est un bien non-rival, c’est-à-dire qu'il ne s'use pas ; c'est un bien dont la consommation par un individu donné n'empêche pas d'autres consommateurs d'en jouir simultanément.
Le terme logiciel est souvent employé pour désigner un [[programme informatique]], et inversement, bien qu'un logiciel puisse ê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âche]]s en plusieurs modules séparés ; cependant, les énormes capacités des [[micro-ordinateur]]s actuels en regard des applications typiques de la [[bureautique]] ont permis la réalisation d'applications monolithiques.
Il existe un autre amalgame avec [[application (informatique)|application]] : l'application est un ensemble de logiciels nécessaire pour une tâche donnée (par exemple, un [[navigateur web]] est une application alors que [[Firefox]] est un logiciel).
Généralement, les programmes sont accompagnés d'un ensemble de [[donnée]]s permettant de les faire fonctionner (par exemple, un jeu viendra avec de nombreuses [[image]]s, animations, sons, etc.).
Pour fonctionner, un logiciel nécessite l'utilisation d'un [[ordinateur]] ([[micro-ordinateur]], station de calcul, [[mainframe]], [[supercalculateur]], [[console de jeu vidéo|consoles de jeu]], etc.) sur lequel existe à l'origine un « logiciel-moteur » ([[système d'exploitation]]) qui accepte le « logiciel-application ».
Le tout a besoin d'une alimentation [[électrique]].
== Les licences ==
Le droit d'utilisation du logiciel est généralement règlementé par une [[Licence de logiciel|licence d'utilisation]] et le [[droit d'auteur]].
Les grandes familles de licences les plus connues sont :
* les licences autour du [[logiciel libre]] (''free software'') ;
* le [[graticiel]] (''freeware'') ;
* le [[partagiciel]] (''shareware'') ;
* d'autres types de licences, telles que les licences monoposte ou multipostes ;
* certains logiciels enfin sont internes à des entreprises et leur diffusion est interdite.
== Diverses présentations de 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 plates-formes (comme ceux du langage [[Java (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 (langage)|Perl]] ou [[PHP: Hypertext Preprocessor|PHP]]).
* [[Bibliothèque logicielle|bibliothèques]] : il s'agit d'un ensemble de fonctions qui, en elles-mêmes, ne sont pas exécutables directement et n'offrent pas de fonctionnalités à 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èque dynamique|bibliothèques dynamiques]] (''dll'' [[Microsoft Windows|Windows]], ''Dylib'' Machintosh ou ''so'' [[GNU/Linux]]).
Les [[donnée]]s associées au logiciel peuvent également être de différents [[format]]s : 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ône (informatique)|icône]]s 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é.
Un nouveau modèle de développement tend cependant à se répandre : le [http://www.linux-france.org/article/these/cathedrale-bazar/cathedrale-bazar.html bazar] (modèle utilisé pour la conception de [[GNU]]/[[Linux]])
Un logiciel en version béta (ou béta-test) est un logiciel non finalisé, pour lequel on effectue une série de tests jusqu'à ce qu'une stabilité relative soit atteinte. Les personnes qui cherchent les dernières failles de ces versions de logiciels sont appelés des béta-testeurs.
Un logiciel qui est opérationnel sera maintenu. La [[maintenance du logiciel]] désigne les modifications apportées à un logiciel, après sa mise en œuvre, pour en corriger les fautes, en améliorer l'efficacité ou autres caractéristiques, ou encore adapter celui-ci à un environnement modifié (ISO/IEC 14764).
== ''Coquilles ("Bugs")'' ==
{{Article détaillé|bogue (informatique)}}
Des erreurs de conception dans les logiciels peuvent causer des comportements incorrects, souvent appelés bogues. La gravité de ceux-ci peut aller de très mineure (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 bogue ; cependant, il existe des mécanismes par lesquels on peut limiter la quantité de bogues, 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 bogues dans les logiciels. La recherche en informatique a développé un domaine d'étude, la [[Méthode formelle (informatique)|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 temps et en main d'œuvre. Plus les anomalies sont détectées tôt au long du développement du logiciel, moins leur correction est difficile.
== Ouverture du code source ==
On classe les logiciels d'après la disponibilité du [[code source]] et de la [[licence (juridique)|licence]] qui régit la distribution du programme :
* [[Open Source|code ouvert]] (''Open Source'') : 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, 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, mais cela ne signifie pas pour autant que le logiciel est gratuit.
* [[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.
== Développeurs ==
{{Article détaillé|amorce=Voir ou créer l'article|Liste d'éditeurs de logiciels bureautiques}}
{{Article détaillé|Liste des éditeurs de jeux vidéo}}
== Logiciels critiques ==
{{Article détaillé|Profil d'application}}
Pour la [[sécurité des systèmes d'information|sécurité globale des systèmes d'information]] d'une entité, il peut être nécessaire de définir des [[profils d'application]], afin d'identifier les [[logiciels critiques]] sur lesquels il est nécessaire de porter une attention particulière du point de vue de la [[sécurité informatique|sécurité]].
== Voir aussi ==
{{Wiktionnaire}}
* [[:Catégorie:Logiciel applicatif]]
* [[Programme informatique]]
* [[Micrologiciel]] ou ''firmware''
* [[Génie logiciel]]
* [[Brevet logiciel]]
* [[Progiciel]]
* [[Installateur (informatique)]]
{{lien marques secteur}}
{{Portail|Informatique|Droit}}
[[Catégorie:Logiciel| ]]
[[Catégorie:Gestion de projet]]
[[af:Sagteware]]
[[ar:برمجيات]]
[[ast:Programa d'ordenador]]
[[bg:Програмно осигуряване]]
[[bs:Softver]]
[[ca:Programari]]
[[cs:Software]]
[[da:Computerprogram]]
[[de:Software]]
[[en:Computer software]]
[[eo:Programaro]]
[[es:Software]]
[[et:Tarkvara]]
[[eu:Software]]
[[fa:نرمافزار]]
[[fi:Tietokoneohjelma]]
[[gl:Programa informático]]
[[gu:સૉફ્ટવેર]]
[[he:תוכנה]]
[[hr:Programska podrška]]
[[hu:Szoftver]]
[[ia:Software]]
[[id:Perangkat lunak]]
[[is:Hugbúnaður]]
[[it:Software]]
[[iu:ᐊᕿᑦᑐᖅ ᖃᕆᑕᐅᔭᐅᑉ ᑎᑎᕋᕐᕕᖓ/aqittuq qaritaujaup titirarvinga]]
[[ja:ソフトウェア]]
[[ko:컴퓨터 소프트웨어]]
[[ku:Nermalav]]
[[lt:Programinė įranga]]
[[lv:Programmatūra]]
[[nds:Software]]
[[nl:Software]]
[[nn:Programvare]]
[[no:Dataprogram]]
[[pl:Oprogramowanie]]
[[pt:Software]]
[[ro:Software]]
[[ru:Программное обеспечение]]
[[scn:Software]]
[[simple:Software]]
[[sk:Softvér]]
[[sl:Programska oprema]]
[[sq:Software]]
[[sv:Programvara]]
[[th:ซอฟต์แวร์]]
[[tl:Software]]
[[tr:Yazılım]]
[[tt:Sanaq programı]]
[[uk:Програмне забезпечення]]
[[vec:Software]]
[[vi:Phần mềm]]
[[zh:软件]]
[[zh-min-nan:Nńg-thé]]