Logiciel

Un article de Wikipédia, l'encyclopédie libre
Aller à la navigation Aller à la recherche

Diagramme montrant comment l' utilisateur interagit avec le logiciel d'application sur un ordinateur de bureau type . La couche logicielle d'application s'interface avec le système d'exploitation , qui à son tour communique avec le matériel . Les flèches indiquent le flux d'informations.

Un logiciel est un ensemble d' instructions et de données qui indiquent à un ordinateur comment fonctionner. Cela contraste avec le matériel physique , à partir duquel le système est construit et effectue réellement le travail. En informatique et en génie logiciel , le logiciel informatique est l'ensemble des informations traitées par les systèmes informatiques , y compris les programmes et les données . Les logiciels informatiques comprennent les programmes informatiques , les bibliothèques et les données non exécutables associées , telles que la documentation en ligne oumédias numériques . Le matériel informatique et les logiciels ont besoin l'un de l'autre et aucun d'eux ne peut être utilisé de manière réaliste seul.

Au niveau de programmation le plus bas , le code exécutable se compose d' instructions en langage machine prises en charge par un processeur individuel , généralement une unité centrale de traitement (CPU) ou une unité de traitement graphique (GPU). Un langage machine est constitué de groupes de valeurs binaires signifiant des instructions du processeur qui modifient l'état de l'ordinateur par rapport à son état précédent. Par exemple, une instruction peut modifier la valeur stockée dans un emplacement de stockage particulier de l'ordinateur, un effet qui n'est pas directement observable pour l'utilisateur. Une instruction peut également invoquer l' une des nombreuses opérations d'entrée ou de sortie, par exemple afficher du texte sur un écran d'ordinateur ; provoquant des changements d'état qui devraient être visibles pour l' utilisateur . Le processeur exécute les instructions dans l'ordre dans lequel elles sont fournies, à moins qu'il ne reçoive l'instruction de "sauter" à une instruction différente ou qu'il ne soit interrompu par le système d'exploitation. Depuis 2015 , la plupart des ordinateurs personnels , des smartphones et des serveurs sont équipés de processeurs dotés de plusieurs unités d'exécution ou de plusieurs processeurs effectuant des calculs ensemble, et l'informatique est devenue une activité beaucoup plus simultanée que par le passé.

La majorité des logiciels sont écrits dans des langages de programmation de haut niveau . Ils sont plus faciles et plus efficaces pour les programmeurs car ils sont plus proches des langages naturels que des langages machine. [1] Les langages de haut niveau sont traduits en langage machine à l'aide d'un compilateur ou d'un interpréteur ou d'une combinaison des deux. Le logiciel peut également être écrit dans un langage assembleur de bas niveau , qui a une forte correspondance avec les instructions du langage machine de l'ordinateur et est traduit en langage machine à l'aide d'un assembleur .

Histoire

Un aperçu ( algorithme ) de ce qui aurait été le premier logiciel a été écrit par Ada Lovelace au 19ème siècle, pour le moteur analytique prévu . [2] Elle a créé des preuves pour montrer comment le moteur calculerait les Nombres de Bernoulli . [2] En raison des preuves et de l'algorithme, elle est considérée comme la première programmeuse informatique. [3] [4]

La première théorie sur les logiciels – avant la création des ordinateurs tels que nous les connaissons aujourd'hui – a été proposée par Alan Turing dans son essai de 1935, On Computable Numbers, with an Application to the Entscheidungsproblem (problème de décision).

Cela a finalement conduit à la création des domaines académiques de l' informatique et du génie logiciel ; Les deux domaines étudient le logiciel et sa création. L'informatique est l'étude théorique de l'informatique et des logiciels (l'essai de Turing est un exemple d'informatique), tandis que le génie logiciel est l'application de l'ingénierie et le développement de logiciels.

Cependant, avant 1946, les logiciels n'étaient pas encore les programmes stockés dans la mémoire des ordinateurs numériques à programmes stockés, tels que nous les comprenons maintenant. Les premiers appareils informatiques électroniques ont plutôt été recâblés afin de les « reprogrammer ».

En 2000, Fred Shapiro, bibliothécaire à la Yale Law School, a publié une lettre révélant que l'article de 1958 de John Wilder Tukey "The Teaching of Concrete Mathematics" [5] [6] contenait le premier usage connu du terme "logiciel". trouvé lors d'une recherche dans les archives électroniques de JSTOR , avant la citation de l' OED de deux ans. [7] Cela a conduit beaucoup à créditer Tukey d'avoir inventé le terme, en particulier dans les nécrologies publiées cette même année, [8] bien que Tukey n'ait jamais revendiqué de crédit pour une telle monnaie. En 1995, Paul Niquette a affirmé qu'il avait initialement inventé le terme en octobre 1953, bien qu'il n'ait pu trouver aucun document à l'appui de sa demande. [9]La première publication connue du terme "logiciel" dans un contexte d'ingénierie était en août 1953 par Richard R. Carhart, dans un mémorandum de recherche de la Rand Corporation . [dix]

Les types

Blender , un logiciel libre programme

Sur pratiquement toutes les plates-formes informatiques, les logiciels peuvent être regroupés en quelques grandes catégories.

Finalité ou domaine d'utilisation

En fonction de l'objectif, les logiciels informatiques peuvent être divisés en :

  • Logiciel d'application
    qui est un logiciel qui utilise le système informatique pour exécuter des fonctions spéciales ou fournir des fonctions de divertissement au-delà du fonctionnement de base de l'ordinateur lui-même. Il existe de nombreux types de logiciels d'application, car l'éventail des tâches qui peuvent être effectuées avec un ordinateur moderne est très large—voir la liste des logiciels .
  • Logiciel système
    qui est un logiciel pour gérer le comportement du matériel informatique , afin de fournir les fonctionnalités de base requises par les utilisateurs, ou pour que d'autres logiciels fonctionnent correctement, le cas échéant. Le logiciel système est également conçu pour fournir une plate-forme pour l'exécution de logiciels d'application, [11] et comprend les éléments suivants :
    • Systèmes d'exploitation
      qui sont des ensembles essentiels de logiciels qui gèrent les ressources et fournissent des services communs à d'autres logiciels qui s'exécutent "par dessus". Les programmes de supervision , les chargeurs de démarrage , les shells et les systèmes de fenêtres sont des éléments essentiels des systèmes d'exploitation. Dans la pratique, un système d'exploitation est livré avec des logiciels supplémentaires (y compris des logiciels d'application) afin qu'un utilisateur puisse potentiellement travailler avec un ordinateur qui n'a qu'un seul système d'exploitation.
    • Pilotes de périphérique
      qui exploitent ou contrôlent un type particulier de périphérique connecté à un ordinateur. Chaque périphérique a besoin d'au moins un pilote de périphérique correspondant ; étant donné qu'un ordinateur possède généralement au moins au moins un périphérique d'entrée et au moins un périphérique de sortie, un ordinateur a généralement besoin de plusieurs pilotes de périphérique.
    • Utilitaires
      qui sont des programmes informatiquesconçus pour aider les utilisateurs dans la maintenance et l'entretien de leurs ordinateurs.
  • Logiciel malveillant ou malware
    qui est un logiciel développé pour endommager et perturber les ordinateurs. En tant que tel, les logiciels malveillants sont indésirables. Les logiciels malveillants sont étroitement associés aux délits informatiques, même si certains programmes malveillants peuvent avoir été conçus comme des farces .

Nature ou domaine d'exécution

  • Les applications de bureau telles que les navigateurs Web et Microsoft Office , ainsi que les applications pour smartphones et tablettes (appelées « applications »). (Il y a une poussée dans certaines parties de l'industrie du logiciel pour fusionner les applications de bureau avec les applications mobiles, dans une certaine mesure. Windows 8 , et plus tard Ubuntu Touch , a essayé de permettre au même style d'interface utilisateur d'application d'être utilisé sur les ordinateurs de bureau, les ordinateurs portables et mobiles.)
  • Les scripts JavaScript sont des logiciels traditionnellement intégrés dans des pages Web qui s'exécutent directement dans le navigateur Web lorsqu'une page Web est chargée sans avoir besoin d'un plug-in de navigateur Web. Les logiciels écrits dans d'autres langages de programmation peuvent également être exécutés dans le navigateur Web si le logiciel est traduit en JavaScript ou si un plug-in de navigateur Web prenant en charge ce langage est installé ; l'exemple le plus courant de ce dernier est les scripts ActionScript , qui sont pris en charge par le plug-in Adobe Flash .
  • Logiciel serveur , comprenant :
    • Applications Web , qui s'exécutent généralement sur le serveur Web et génèrent des pages Web générées dynamiquement vers des navigateurs Web, en utilisant par exemple PHP , Java , ASP.NET ou même JavaScript qui s'exécute sur le serveur . À l'époque moderne, ceux-ci incluent généralement du JavaScript à exécuter dans le navigateur Web, auquel cas ils s'exécutent généralement en partie sur le serveur, en partie dans le navigateur Web.
  • Les plugins et extensions sont des logiciels qui étendent ou modifient les fonctionnalités d'un autre logiciel et nécessitent que le logiciel soit utilisé pour fonctionner ;
  • Le logiciel embarqué réside sous forme de micrologiciel dans les systèmes embarqués , les appareils dédiés à un usage unique ou à quelques usages tels que les voitures et les téléviseurs (bien que certains appareils embarqués tels que les chipsets sans fil puissent eux-mêmes faire partie d'un système informatique ordinaire non embarqué tel qu'un PC ou smartphone). [12] Dans le contexte du système embarqué, il n'y a parfois pas de distinction claire entre le logiciel système et le logiciel d'application. Cependant, certains systèmes embarqués exécutent des systèmes d'exploitation embarqués, et ces systèmes conservent la distinction entre logiciel système et logiciel d'application (bien qu'il n'y ait généralement qu'une seule application fixe qui est toujours exécutée).
  • Le microcode est un type de logiciel embarqué spécial et relativement obscur qui indique au processeur lui-même comment exécuter le code machine, il s'agit donc en fait d'un niveau inférieur à celui du code machine. Il appartient généralement au fabricant du processeur et toutes les mises à jour logicielles correctives nécessaires sont fournies aux utilisateurs (ce qui est beaucoup moins cher que l'expédition de matériel de processeur de remplacement). Ainsi, un programmeur ordinaire ne s'attendrait pas à avoir à s'en occuper.

Outils de programmation

Les outils de programmation sont également des logiciels sous la forme de programmes ou d'applications que les développeurs de logiciels (également appelés programmeurs, codeurs, pirates informatiques ou ingénieurs logiciels ) utilisent pour créer, déboguer , maintenir (c'est-à-dire améliorer ou corriger) ou prendre en charge des logiciels.

Le logiciel est écrit dans un ou plusieurs langages de programmation ; il existe de nombreux langages de programmation, et chacun a au moins une implémentation, dont chacun se compose de son propre ensemble d'outils de programmation. Ces outils peuvent être des programmes relativement autonomes tels que des compilateurs , des débogueurs , des interpréteurs , des éditeurs de liens et des éditeurs de texte , qui peuvent être combinés pour accomplir une tâche ; ou ils peuvent former un environnement de développement intégré(IDE), qui combine une grande partie ou la totalité des fonctionnalités de ces outils autonomes. Les IDE peuvent le faire soit en invoquant les outils individuels pertinents, soit en réimplémentant leurs fonctionnalités d'une nouvelle manière. Un IDE peut faciliter l'exécution de tâches spécifiques, telles que la recherche dans les fichiers d'un projet particulier. De nombreuses implémentations de langage de programmation offrent la possibilité d'utiliser à la fois des outils individuels ou un IDE.

Les sujets

Architecture

Les utilisateurs voient souvent les choses différemment des programmeurs. Les personnes qui utilisent des ordinateurs modernes à usage général (par opposition aux systèmes embarqués , aux ordinateurs analogiques et aux superordinateurs ) voient généralement trois couches de logiciels accomplir diverses tâches : plate-forme, application et logiciel utilisateur.

  • Logiciel de
    la plate-forme La plate-forme comprend le micrologiciel , les pilotes de périphérique , un système d'exploitation et généralement une interface utilisateur graphique qui, au total, permettent à un utilisateur d'interagir avec l'ordinateur et ses périphériques (équipements associés). Le logiciel de la plate-forme est souvent fourni avec l'ordinateur. Sur un PC, on aura généralement la possibilité de changer le logiciel de la plate-forme.
  • Logiciel d'
    application Les logiciels d' application ou les applications sont ce à quoi la plupart des gens pensent lorsqu'ils pensent à un logiciel. Les exemples typiques incluent les suites bureautiques et les jeux vidéo. Les logiciels d'application sont souvent achetés séparément du matériel informatique. Parfois, les applications sont fournies avec l'ordinateur, mais cela ne change rien au fait qu'elles s'exécutent en tant qu'applications indépendantes. Les applications sont généralement des programmes indépendants du système d'exploitation, bien qu'elles soient souvent adaptées à des plates-formes spécifiques. La plupart des utilisateurs considèrent les compilateurs, les bases de données et autres « logiciels système » comme des applications.
  • Logiciel écrit
    par l'utilisateur Le développement par l'utilisateur final adapte les systèmes pour répondre aux besoins spécifiques des utilisateurs. Le logiciel utilisateur comprend des modèles de feuilles de calcul et des modèles de traitement de texte . Même les filtres de messagerie sont une sorte de logiciel utilisateur. Les utilisateurs créent eux-mêmes ce logiciel et négligent souvent son importance. Selon la compétence avec laquelle le logiciel écrit par l'utilisateur a été intégré dans les packages d'application par défaut, de nombreux utilisateurs peuvent ne pas être conscients de la distinction entre les packages d'origine et ce qui a été ajouté par des collègues.

Exécution

Le logiciel informatique doit être "chargé" dans le stockage de l' ordinateur (comme le disque dur ou la mémoire ). Une fois le logiciel chargé, l'ordinateur est capable d' exécuter le logiciel. Cela implique de transmettre des instructions du logiciel d'application , via le logiciel système, au matériel qui reçoit finalement l'instruction sous forme de code machine . Chaque instruction amène l'ordinateur à effectuer une opération : déplacer des données , effectuer un calcul ou modifier le flux de contrôle des instructions.

Le mouvement des données se fait généralement d'un endroit de la mémoire à un autre. Parfois, cela implique de déplacer des données entre la mémoire et les registres qui permettent un accès aux données à grande vitesse dans le processeur. Le déplacement de données, en particulier de grandes quantités, peut être coûteux. Ainsi, cela est parfois évité en utilisant des "pointeurs" vers des données à la place. Les calculs incluent des opérations simples telles que l'incrémentation de la valeur d'un élément de données variable. Des calculs plus complexes peuvent impliquer de nombreuses opérations et éléments de données ensemble.

Qualité et fiabilité

La qualité du logiciel est très importante, en particulier pour les logiciels commerciaux et système comme Microsoft Office , Microsoft Windows et Linux . Si le logiciel est défectueux (bogue), il peut supprimer le travail d'une personne, faire planter l'ordinateur et faire d'autres choses inattendues. Les défauts et les erreurs sont appelés « bogues » qui sont souvent découverts lors des tests alpha et bêta. Les logiciels sont également souvent victimes de ce que l'on appelle le vieillissement des logiciels , la dégradation progressive des performances résultant d'une combinaison de bogues invisibles.

De nombreux bogues sont découverts et éliminés (débogués) grâce à des tests logiciels . Cependant, les tests de logiciels éliminent rarement, voire jamais, tous les bogues ; certains programmeurs disent que « chaque programme a au moins un bogue de plus » (loi de Lubarsky). [13] Dans la méthode de développement logiciel en cascade , des équipes de test distinctes sont généralement employées, mais dans les approches plus récentes, collectivement appelées développement logiciel agile , les développeurs effectuent souvent tous leurs propres tests et présentent régulièrement le logiciel aux utilisateurs/clients pour obtenir des commentaires. Le logiciel peut être testé via des tests unitaires , des tests de régressionet d'autres méthodes, qui sont effectuées manuellement, ou le plus souvent, automatiquement, car la quantité de code à tester peut être assez importante. Par exemple, la NASA a des procédures de test de logiciels extrêmement rigoureuses pour de nombreux systèmes d'exploitation et fonctions de communication. De nombreuses opérations basées sur la NASA interagissent et s'identifient par le biais de programmes de commande. Cela permet à de nombreuses personnes qui travaillent à la NASA de vérifier et d'évaluer les systèmes fonctionnels dans leur ensemble. Les programmes contenant un logiciel de commande permettent à l'ingénierie matérielle et aux opérations système de fonctionner ensemble beaucoup plus facilement.

Licence

La licence du logiciel donne à l'utilisateur le droit d'utiliser le logiciel dans l'environnement sous licence, et dans le cas des licences de logiciel libre , accorde également d'autres droits tels que le droit de faire des copies.

Les logiciels propriétaires peuvent être divisés en deux types :

  • freeware , qui comprend la catégorie des logiciels « d'essai gratuit » ou « freemium » (dans le passé, le terme shareware était souvent utilisé pour désigner un logiciel d'essai gratuit/freemium). Comme son nom l'indique, les logiciels gratuits peuvent être utilisés gratuitement, bien que dans le cas d'essais gratuits ou de logiciels freemium, cela ne soit parfois vrai que pour une période limitée ou avec des fonctionnalités limitées.
  • un logiciel payant, souvent appelé à tort « logiciel commercial », qui ne peut être utilisé légalement que sur achat d'une licence.

Les logiciels open source , quant à eux, sont livrés avec une licence de logiciel libre , accordant au destinataire les droits de modifier et de redistribuer le logiciel.

Brevets

Les brevets logiciels, comme d'autres types de brevets, sont théoriquement censés donner à un inventeur une licence exclusive et limitée dans le temps pour une idée détaillée (par exemple un algorithme) sur la façon de mettre en œuvre un logiciel ou un composant d'un logiciel. Idées de choses utiles que le logiciel pourrait faire et exigences des utilisateurs, ne sont pas censés être brevetables, et les implémentations concrètes (c'est-à-dire les progiciels réels mettant en œuvre le brevet) ne sont pas non plus censées être brevetables - ces dernières sont déjà couvertes par le droit d'auteur, généralement automatiquement. Ainsi, les brevets logiciels sont censés couvrir la zone intermédiaire, entre les exigences et la mise en œuvre concrète. Dans certains pays, l'exigence selon laquelle l'invention revendiquée doit avoir un effet sur le monde physique peut également faire partie des conditions requises pour qu'un brevet logiciel soit valide, bien que, étant donné que tous les logiciels utiles ont des effets sur le monde physique, cette exigence peut être ouvert au débat. Pendant ce temps, la loi américaine sur le droit d'auteur a été appliquée à divers aspects de l'écriture du code du logiciel. [14]

Les brevets logiciels sont controversés dans l'industrie du logiciel, de nombreuses personnes ayant des opinions différentes à leur sujet. L'une des sources de controverse est que la séparation susmentionnée entre les idées initiales et le brevet ne semble pas être respectée dans la pratique par les avocats en brevets - par exemple le brevet pour la programmation orientée aspect (AOP), qui prétendait revendiquer des droits sur toutoutil de programmation mettant en œuvre l'idée de l'AOP, quelle que soit sa mise en œuvre. Une autre source de controverse est l'effet sur l'innovation, de nombreux experts et entreprises éminents affirmant que le logiciel est un domaine en évolution si rapide que les brevets logiciels ne font que créer d'énormes coûts et risques de litige supplémentaires, et retardent en fait l'innovation. Dans le cas des débats sur les brevets logiciels en dehors des États-Unis, l'argument a été avancé que les grandes entreprises américaines et les avocats en brevets sont probablement les principaux bénéficiaires de l'autorisation ou du maintien des brevets logiciels.

Conception et mise en œuvre

La conception et la mise en œuvre du logiciel varient en fonction de la complexité du logiciel. Par exemple, la conception et la création de Microsoft Word ont pris beaucoup plus de temps que la conception et le développement du Bloc - notes Microsoft, car ce dernier a des fonctionnalités beaucoup plus basiques.

Le logiciel est généralement conçu et créé (c'est-à-dire codé/écrit/programmé) dans des environnements de développement intégrés (IDE) comme Eclipse , IntelliJ et Microsoft Visual Studio qui peuvent simplifier le processus et compiler le logiciel (le cas échéant). Comme indiqué dans une section différente, le logiciel est généralement créé au-dessus du logiciel existant et de l' interface de programmation d'application (API) fournie par le logiciel sous-jacent, comme GTK+ , JavaBeans ou Swing . Les bibliothèques (API) peuvent être classées selon leur objectif. Par exemple, Spring Framework est utilisé pour la mise en œuvre d'applications d'entreprise, la bibliothèque Windows Forms est utilisée pour concevoir des applications d'interface utilisateur graphique (GUI) telles que Microsoft Word , et Windows Communication Foundation est utilisé pour concevoir des services Web . Lorsqu'un programme est conçu, il s'appuie sur l'API. Par exemple, une application de bureau Microsoft Windows peut appeler des fonctions API dans la bibliothèque .NET Windows Forms comme Form1.Close() et Form1.Show() [15] pour fermer ou ouvrir l'application. Sans ces API, le programmeur doit écrire ces fonctionnalités entièrement lui-même. Des entreprises comme Oracle et Microsoftfournissent leurs propres API afin que de nombreuses applications soient écrites à l'aide de leurs bibliothèques logicielles qui contiennent généralement de nombreuses API.

Les structures de données telles que les tables de hachage , les tableaux et les arbres binaires , ainsi que les algorithmes tels que quicksort , peuvent être utiles pour créer des logiciels.

Les logiciels informatiques ont des caractéristiques économiques particulières qui rendent leur conception, leur création et leur distribution différentes de la plupart des autres biens économiques. [ précisez ] [16] [17]

Une personne qui crée un logiciel s'appelle un programmeur , un ingénieur logiciel ou un développeur logiciel, des termes qui ont tous un sens similaire. Des termes plus informels pour programmeur existent également, tels que "codeur" et " hacker " - bien que l'utilisation de ce dernier mot puisse prêter à confusion, car il est plus souvent utilisé pour désigner quelqu'un qui s'introduit illégalement dans les systèmes informatiques .

Industrie et organisations

Une grande variété d'éditeurs de logiciels et de programmeurs dans le monde constitue une industrie du logiciel. Le logiciel peut être une industrie assez rentable : Bill Gates , le co-fondateur de Microsoft était la personne la plus riche du monde en 2009, en grande partie en raison de sa détention d'un nombre important d'actions de Microsoft, la société responsable de Microsoft Windows et Microsoft Office. produits logiciels - les deux leaders du marché dans leurs catégories de produits respectives.

Les organisations de logiciels à but non lucratif comprennent la Free Software Foundation , le GNU Project et la Mozilla Foundation . Les organisations de normalisation logicielle telles que le W3C , l' IETF développent des normes logicielles recommandées telles que XML , HTTP et HTML , afin que les logiciels puissent interagir via ces normes.

Parmi les autres grandes sociétés de logiciels bien connues figurent Google , IBM , TCS , Infosys , Wipro , HCL Technologies , Oracle , Novell , SAP , Symantec , Adobe Systems , Sidetrade et Corel , tandis que les petites entreprises innovent souvent.

Voir également

Les références

  1. ^ "Construction du compilateur" . Archivé de l'original le 2 novembre 2013.
  2. ^ un b Evans 2018 , p. 21.
  3. ^ Fuegi, J.; Francis, J. (2003). « Lovelace & Babbage et la création des 'notes ' de 1843 » (PDF) . Annales de l'histoire de l'informatique . 25 (4) : 16-26. doi : 10.1109/MAHC.2003.1253887 . S2CID 40077111 . Archivé de l'original (PDF) le 15 février 2020.  
  4. ^ "Ada Lovelace honorée par Google doodle" . Le Gardien . 10 décembre 2012 . Consulté le 25 novembre 2018 .
  5. ^ Tukey, John Wilder (janvier 1958). « L'enseignement des mathématiques concrètes ». Mensuel mathématique américain . Taylor & Francis, Ltd. / Association mathématique d'Amérique . 65 (1) : 1–9, 2. doi : 10.2307/2310294 . ISSN 0002-9890 . JSTOR 2310294 . CODEN AMMYAE . […] Aujourd'hui, le « logiciel » comprenant les routines d'interprétation soigneusement planifiées, les compilateurs et d'autres aspects de la programmation automatique sont au moins aussi importants pour la calculatrice électronique moderne que son « matériel » de tubes, transistors, fils, bandes, etc. . […]   
  6. ^ Beebe, Nelson HF (22 août 2017). "Chapitre I - Arithmétique des nombres entiers". Le manuel de calcul des fonctions mathématiques - Programmation à l'aide de la bibliothèque de logiciels portable MathCW (1 éd.). Salt Lake City, UT, États-Unis : Springer International Publishing AG . p. 969, 1035. doi : 10.1007/978-3-319-64110-2 . ISBN 978-3-319-64109-6. LCCN  2017947446 . S2CID  30244721 .
  7. ^ Shapiro, Fred (2000). "Origine du terme Logiciel: Preuve des archives du journal électronique JSTOR" (PDF) . IEEE Annales de l'histoire de l'informatique . 22 (2) : 69-71. doi : 10.1109/mahc.2000.887997 . Archivé de l'original (PDF) le 5 juin 2003 . Consulté le 25 juin 2013 .
  8. ^ Leonhardt, David (28 juillet 2000). « John Tukey, 85 ans, statisticien ; a inventé le mot « logiciel » » . Le New York Times . Consulté le 24 septembre 2012 .
  9. ^ Niquette, R. Paul (2006), Softword: Provenance for the Word 'Software , ISBN 1-58922-233-4, archivé à partir de l'original le 8 août 2019 , récupéré le 18 août 2019
  10. ^ Carhart, Richard (1953). Une enquête sur l'état actuel du problème de fiabilité électronique (PDF) . Santa Monica, Californie : Rand Corporation . p. 69. […] Il sera rappelé de la Sec. 1.6 que le terme personnel a été défini pour inclure les personnes qui entrent en contact direct avec le matériel, de la production à l'utilisation sur le terrain, c'est-à-dire les personnes qui assemblent, inspectent, emballent, expédient, manipulent, installent, exploitent et entretiennent l'équipement électronique. Dans n'importe laquelle de ces phases, les défaillances du personnel peuvent entraîner un équipement non opérationnel. Comme pour les facteurs matériels, il n'y a presque pas de données quantitatives concernant ces facteurs logiciels ou humains en matière de fiabilité : combien de défauts sont causés par le personnel, pourquoi ils se produisent et ce qui peut être fait pour supprimer les erreurs. […]
  11. ^ "Logiciel système" . L'Université du Mississippi. Archivé de l'original le 30 mai 2001.
  12. ^ "Logiciel intégré—Technologies et tendances" . Société informatique IEEE. Mai–juin 2009. Archivé de l'original le 28 octobre 2013 . Consulté le 6 novembre 2013 .
  13. ^ "exemples de livres d'intelligence de script" . 9 mai 2018. Archivé de l'original le 6 novembre 2015.
  14. ^ Gerardo Con Díaz, "Le texte dans la machine: loi américaine sur le droit d'auteur et les nombreuses natures du logiciel, 1974-1978", Technologie et culture 57 (octobre 2016), 753-79.
  15. ^ "Bibliothèque MSDN" . Archivé de l' original le 11 juin 2010 . Récupéré le 14 juin 2010 .
  16. ^ v. Engelhardt, Sebastian (2008). "Les propriétés économiques du logiciel" . Documents de recherche économique d'Iéna . 2 (2008-045). Archivé de l'original le 5 janvier 2016.
  17. ^ Kaminsky, Dan (1999). "Pourquoi l'Open Source est le paradigme économique optimal pour les logiciels" . Archivé de l'original le 22 mai 2012.

Sources

Liens externes