Selon les principes de la machine de Turing et l'architecture de von Neumann, un appareil informatique est une machine qui effectue des traitements en fonction d'instructions et de données. Les instructions et les données sont contenues dans un logiciel. Un appareil informatique contient toujours au minimum un seul logiciel, nécessaire pour mettre en activité l'appareil.
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é.
Il existe de nombreux modèles ou méthodologies de développement. Un exemple d'un nouveau modèle de développement est le 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).
En tant qu'œuvre intellectuelle, les logiciels sont soumis au droit d'auteur à même titre que toute œuvre littéraire ou artistique - livre, brochure, œuvre musicale ou théâtrale.
Le droit d'auteur autorise l'auteur du logiciel de décider sous quelles conditions le logiciel peut être diffusé, modifié, et utilisé. La licence d'utilisation est un contrat dans lequel l'auteur stipule les conditions sous lesquelles une personne (physique ou morale) est autorisée à utiliser le logiciel.
Les types de logiciels les plus courants sont:
Quelle que soit sa classification, un logiciel peut ou non être commercial, c'est-à-dire destiné à la vente.
Un logiciel est un produit qui ne se détériore pas. La qualité d'un logiciel dépend entièrement de sa construction. L'appréciation globale de la qualité d'un logiciel se fonde sur de nombreux facteurs tels que la complétude des fonctionnalités, la précision des résultats, la fiabilité, la tolérance de pannes, la facilité et la flexibilité de son utilisation.... Les facteurs de qualité peuvent être directement observables par l'utilisateur, ou alors constatable par les ingénieurs lors des revue de code ou des travaux de maintenance.
Un consortium s'est créé le 6 octobre 2009 aux États-Unis pour établir un standard mondial de la qualité des logiciels. Ce consortium s'appelle le Consortium for IT Software Quality (CISQ).