Quels sont les principaux composants d’un logiciel ?


Je suppose qu'il y a plusieurs façons de répondre à cette question..

D'après l'autre réponse "Entrée, structure, action et résultats." C'est correct pour un logiciel individuel, comme une [app]plication.


Il se peut que cela ne vous en dise pas trop. Peut-être que vous recherchez des bibliothèques individuelles, pour une application.

Mais cela s'applique également à une vue globale de l'ordinateur. Alors vous avez grosso modo :

  • Système d'exploitation (OS)
  • Applications

Dans le passé, vous auriez un contrôle complet sur l'entrée et la sortie vers le matériel, n'ayant alors pas "besoin" d'un système d'exploitation (cela s'applique encore aux microcontrôleurs), à cela l'OS était immature par rapport aux normes modernes.

Maintenant, vous passez toujours par le système d'exploitation, pour l'entrée et la sortie, pour deux raisons. Vous aimez être indépendant du matériel (et les "pilotes" fournissent cela, peuvent strictement ne pas faire partie de l'OS, mais souvent, au moins les fondamentaux sont regroupés avec). La deuxième raison est le multi-tâches. Ou même le changement de tâche, qui est plus communément pratiqué dans Android (alors que le multi-fenêtre est aussi disponible, et les notifications aussi dans un sens). Le système d'exploitation doit contrôler qui a accès à l'écran (ou quelle partie à quels moments).

L'interface utilisateur, qui fait partie du système d'exploitation dans Windows et Mac OS, ne'doit pas strictement l'être. Dans Unix/Linux, c'est un composant, appelé X Windows (ou Wayland ou Mir). Pour cette raison, il et d'autres choses (comme OpenSSL pour la cryptographie), sont strictement des "logiciels système". Il n'y a pas de limite claire à ce qui devrait faire partie du logiciel système ou du système d'exploitation (voir par exemple United States v. Microsoft Corp. sur la question de savoir si un navigateur web devrait en faire partie, alors les navigateurs où pour afficher des pages, maintenant ils sont une partie centrale de l'interface utilisateur (une des trois options) de tous les principaux systèmes d'exploitation).

Les utilitaires sont également des parties du logiciel système, pas des "apps" régulières, selon la façon dont vous comprenez ce mot, mais pour configurer des parties de l'OS.

Tous ces composants logiciels individuels peuvent être en une seule pièce, mais généralement ils ne le sont pas's, avec un exécutable majeur (".exe"), qui inclut des bibliothèques liées dynamiquement (.dll ou .so), qui peuvent être distribuées avec l'app ou faire partie du logiciel système (comme la bibliothèque C, sorte d'alternative et plus petite à JVM et CLR ci-dessous).

JVM et CLR (partie de .NET) sont des sortes de bibliothèques ou de logiciels système... et avec les parties associées vous donnent une interface utilisateur ou une plateforme qui est d'une certaine manière similaire aux navigateurs web maintenant, un système d'exploitation dans un système d'exploitation..