Logiciel librethumb|200px|Logo du projet GNU, initiateur du mouvement du logiciel libre.|alt=Gnou du projet GNU Un logiciel libre est un logiciel dont l'utilisation, l'étude, la modification et la duplication par autrui en vue de sa diffusion sont permises, techniquement et juridiquement, ceci afin de garantir certaines libertés induites, dont le contrôle du programme par l'utilisateur et la possibilité de partage entre individus. Ces droits peuvent être simplement disponibles ou bien établis par une licence, dite « libre », basée sur le droit d'auteur.
Apache HTTP ServerLe logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. Jusqu'en avril 2019, ce fut le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Apache est apparu en . Au début, il s'agissait d'une collection de correctifs et d'additions au serveur NCSA HTTPd 1.2, qui était dans le domaine public et le serveur HTTP alors le plus répandu. De cette origine, de nombreuses personnes affirment que le nom Apache vient de a patchy server, soit « un serveur rafistolé ».
Logiciel propriétaireUn logiciel propriétaire, logiciel non libre ou parfois logiciel privatif voire logiciel privateur, est un logiciel qui ne permet pas légalement ou techniquement, ou par quelque autre moyen que ce soit, d'exercer simultanément les quatre libertés logicielles que sont l'exécution du logiciel pour tout type d'utilisation, l'étude de son code source (et donc l'accès à ce code source), la distribution de copies, ainsi que la modification du code source.
Serveur webvignette|Serveurs de la Wikimedia Foundation. Un serveur web est soit un logiciel de service de ressources web (serveur HTTP), soit un serveur informatique (ordinateur) qui répond à des requêtes du World Wide Web sur un réseau public (Internet) ou privé (intranet), en utilisant principalement le protocole HTTP. Un serveur informatique peut être utilisé à la fois pour servir des ressources du Web et pour faire fonctionner en parallèle d'autres services liés, comme l'envoi de courriers électroniques, l'émission de flux en streaming, le stockage de données dans des bases de données, le transfert de fichiers par .
Logicielthumb|Démarche de construction d'un logiciel. En informatique, un logiciel est un ensemble de séquences d’instructions interprétables par une machine et d’un jeu de données nécessaires à ces opérations. Le logiciel détermine donc les tâches qui peuvent être effectuées par la machine, ordonne son fonctionnement et lui procure ainsi son utilité fonctionnelle. Les séquences d’instructions appelées programmes ainsi que les données du logiciel sont ordinairement structurées en fichiers.
Test (informatique)vignette|Une programmeuse écrivant du code Java avec JUnit. En informatique, un test désigne une procédure de vérification partielle d'un système. Son objectif principal est d'identifier un nombre maximal de comportements problématiques du logiciel. Il permet ainsi, dès lors que les problèmes identifiés seront corrigés, d'en augmenter la qualité. D'une manière plus générale, le test désigne toutes les activités qui consistent à rechercher des informations quant à la qualité du système afin de permettre la prise de décisions.
Licence de logicielUne licence de logiciel est un contrat par lequel le titulaire des droits d'auteur sur un programme informatique définit avec son cocontractant (exploitant ou utilisateur) les conditions dans lesquelles ce programme peut être utilisé, diffusé ou modifié. Une licence de logiciel est un contrat « par lequel le titulaire des droits du logiciel autorise un tiers à poser des gestes qui autrement les enfreindraient. » Pour avoir le droit d'utiliser un logiciel, il faut que le titulaire des droits l'autorise.
JettyEclipse Jetty est un serveur HTTP et un moteur de servlet entièrement fondé sur la technologie Java. Jetty est un logiciel libre distribué selon les termes de la licence Apache 2.0. Il est utilisé par plusieurs autres projets populaires comme les serveurs d'applications JBoss et Geronimo. En raison de sa petite taille, il convient parfaitement pour fournir des services web une fois embarqué dans une application Java. Depuis 2009, le développement du noyau est hébergé par la fondation Eclipse.
Craquage (informatique)La craquage d'un logiciel (en anglais, cracking ou breaking dans les années 1980) est la modification d'un logiciel pour supprimer ou désactiver des fonctionnalités jugées indésirables par la personne qui craque le logiciel, en particulier les fonctions de protection contre la violation de droit d'auteur, l'affichage de publicité et l'affichage de propositions d'acheter la version payante du logiciel. Une crack désigne l'outil qui permet de réaliser le craquage. Ces outils peuvent être des générateurs de clés, des patches ou des loaders.
Génie logicielLe génie logiciel, l'ingénierie logicielle ou l'ingénierie du logiciel (en software engineering) est une science de génie industriel qui étudie les méthodes de travail et les bonnes pratiques des ingénieurs qui développent des logiciels. Le génie logiciel s'intéresse en particulier aux procédures systématiques qui permettent d'arriver à ce que des logiciels de grande taille correspondent aux attentes du client, soient fiables, aient un coût d'entretien réduit et de bonnes performances tout en respectant les délais et les coûts de construction.
Métrique (logiciel)Une métrique logicielle est une compilation de mesures issues des propriétés techniques ou fonctionnelles d'un logiciel. Il est possible de classer les métriques logicielles en trois catégories : Maintenance applicative Qualité applicative Respect des processus de développement Elles peuvent être simples ou plus complexes. Elles se composent toujours de mesures dites « de base », par exemple le nombre de lignes de code, la complexité cyclomatique, le nombre de commentaires.
Fichier de configurationEn informatique, un fichier de configuration contient des informations de configuration utilisées par un programme informatique pour adapter ou personnaliser son fonctionnement. Les fichiers de configuration définissent des réglages (affichage, langue, vitesse de transmission, protocoles de communication, prise en compte de certains périphériques, etc.) dans les applications, les services d'un serveur informatique ou les systèmes d'exploitation.
Architecture logicielleL’architecture logicielle décrit d’une manière symbolique et schématique les différents éléments d’un ou de plusieurs systèmes informatiques, leurs interrelations et leurs interactions. Contrairement aux spécifications produites par l’analyse fonctionnelle, le modèle d'architecture, produit lors de la phase de conception, ne décrit pas ce que doit réaliser un système informatique mais plutôt comment il doit être conçu de manière à répondre aux spécifications. L’analyse décrit le « quoi faire » alors que l’architecture décrit le « comment le faire ».
Web Server Gateway InterfaceLa Web Server Gateway Interface (WSGI) est une spécification qui définit une interface entre des serveurs et des applications web pour le langage Python. def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/plain')]) yield 'Hello World\n' Remarques : le paramètre environ est un dictionnaire contenant les variables d'environnement CGI. Common Gateway Interface Simple Common Gateway Interface FastCGI Variables d'environnement CGI NCSA HTTPd ISAPI serveur HTTP serveur com
Système logicielUn système logiciel est un ensemble de composants logiciels (programmes, documentations, fichiers de configuration). Un système logiciel est partie intégrante d'un système informatique, ce dernier étant composé de systèmes matériels et de systèmes logiciels. On doit distinguer le terme système logiciel des termes logiciel (incluant logiciel applicatif) et programme informatique.
Programmation fonctionnelleLa programmation fonctionnelle est un paradigme de programmation de type déclaratif qui considère le calcul en tant qu'évaluation de fonctions mathématiques. Comme le changement d'état et la mutation des données ne peuvent pas être représentés par des évaluations de fonctions la programmation fonctionnelle ne les admet pas, au contraire elle met en avant l'application des fonctions, contrairement au modèle de programmation impérative qui met en avant les changements d'état.
Application (informatique)Une application, un applicatif ou encore une appli, une app est, dans le domaine informatique, un programme (ou un ensemble logiciel) directement utilisé pour réaliser une tâche, ou un ensemble de tâches élémentaires d'un même domaine ou formant un tout. Typiquement, un éditeur de texte, un navigateur web, un lecteur multimédia, un jeu vidéo, sont des applications. Les applications s'exécutent en utilisant les services du système d'exploitation pour utiliser les ressources matérielles.
Ingénierie de fiabilitéL'ingénierie de fiabilité est un domaine de l'ingénierie, qui traite de l'étude, de l'évaluation et du Product Lifecycle Management de la fiabilité : l'habilité d'un système ou d'un composant à remplir ses fonctions exigées dans des conditions déterminées pour une période de temps déterminé. L'ingénierie de fiabilité est une sous-discipline au sein de l'ingénierie des systèmes. La fiabilité est souvent mesurée en probabilité de défaillance, fréquence de défaillance, ou en termes de disponibilité, une probabilité dérivée de la fiabilité et de la maintenabilité.
Fichier INIEn informatique, un fichier INI est un fichier de configuration dans un format de données introduit par les systèmes d'exploitation Windows en 1985. Par convention les noms de ces fichiers portent l'extension « .ini ». Le format a été introduit par Microsoft avec le système d'exploitation Windows 1.0 en 1985. L'utilisation de ce format de fichier s'est tout d'abord répandue parmi les logiciels qui fonctionnent sur ce système d'exploitation, puis plus tard sur des logiciels fonctionnant sur d'autres systèmes d'exploitation, tels que ceux de la famille Unix.
Software development processIn software engineering, a software development process is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.