Terminologies Utiles Du Génie Logiciel

  • Accueil /
  • Terminologies Utiles du Génie Logiciel
Table des matières

Les définitions citées sont en anglais car les sources n’ont pas de version française.

Terminologies de Base

1. Combination of computer instructions and data definitions that enable computer hardware to perform computational or control functions.
2. Syntactic unit that conforms to the rules of a particular programming language and that is composed of declarations and statements or instructions needed for a certain function, task, or problem solution. 1

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

À partir des définitions fournies, nous pouvons voir que :

  • Un programme est composé d’“instructions informatiques et de définitions de données”.
  • Les composants d’un programme créent ensemble une unité d’exécution.
  • Les composants d’un programme sont combinés pour accomplir une tâche particulière sur un ordinateur.
  • Un programme suit la syntaxe d’un langage de programmation.

Voici un aperçu d’un programme sous différents angles :

  • Forme : Un programme peut exister sous deux formes - une forme lisible par l’Homme (code source) ou un code machine (code binaire).
  • Type : Un programme est écrit dans un langage de programmation spécifique2, mais peut être soit compilé en forme binaire pour une exécution sur ordinateur, soit interprété par un programme interpréteur.
  • Utilisation : Un programme peut être exécutable, destiné à être exécuté directement, ou une bibliothèque, conçue pour être utilisée par un autre programme sans être exécutée directement.
  • Portée : Un programme peut être composé de plusieurs programmes plus petits, tels qu’une fonction au sein d’une bibliothèque programme. Il peut également inclure plusieurs fichiers de code source.

Document that describes the structure and functions of a program in sufficient detail to permit programming and to facilitate maintenance. 1

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Un détail des exigences d’un programme indique ce que le programme doit faire et comment il doit être codé. Il décrit la structure du programme et comment son code source est organisé.

1. Language used to express computer programs.
2. Artificial language for expressing programs. 1

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Les langages de programmation ne sont pas comme le Français. Ce sont des langages inventés utilisés pour dire aux ordinateurs quoi faire. Sans les langages de programmation, nous devrions utiliser le code binaire, qui est une longue séquence de 0 et de 1. Cela serait très difficile et prendrait beaucoup de temps.

Les langages de programmation facilitent l’écriture de programmes pour les humains. Au lieu d’utiliser le code binaire, nous pouvons utiliser des mots que nous comprenons. Ces mots peuvent ensuite être traduits en code binaire à l’aide d’un compilateur, ou ils peuvent être lus par un autre programme et exécutés directement (interprétés). C’est pourquoi les langages de programmation peuvent être compilés ou interprétés.

1. Computer programs, procedures and possibly associated documentation and data pertaining to the operation of a computer system. 3
2. All or part of the programs, procedures, rules, and associated documentation of an information processing system. 3 4
3. Program or set of programs used to run a computer. 5

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Selon les définitions fournies, nous pouvons constater que :

  • Un logiciel se compose de programmes, de données, de documentation et d’autres éléments.
  • Un logiciel est constitué d’au moins un programme.

1. Software capability needed by a user to solve a problem or to achieve an objective.
2. Software capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Les exigences logicielles définissent les objectifs précis que le logiciel doit atteindre, englobant sa fonctionnalité, ses performances, ses contraintes de conception et ses caractéristiques.

Le but d’une spécification des exigences logicielles est de documenter les exigences essentielles du logiciel et son intégration avec les systèmes externes.

System for which software is of primary importance to the stakeholders.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

La norme ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire définit un système comme une combinaison d’éléments en interaction organisés pour atteindre un ou plusieurs objectifs déclarés. Par conséquent, nous redéfinissons un système logiciel comme une “combinaison de logiciels en interaction organisés pour atteindre un ou plusieurs objectifs déclarés”.

Il est possible que les logiciels d’un système logiciel soient exécutés à différents endroits, et non pas tous au même endroit. On parle alors de système distribué.

La vision d’un système logiciel peut varier en fonction du niveau de granularité. Les utilisateurs le considèrent comme un logiciel unique, tandis que les développeurs le voient comme un ensemble de logiciels interagissant les uns avec les autres.

1. Software designed to facilitate the operation and maintenance of a computer system and its associated programs.
2. Application-independent software that supports the running of application software. 1
EXAMPLE: operating systems, assemblers, utilities.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Selon la définition, les logiciels systèmes visent à établir une base pour le fonctionnement des logiciels d’application. En outre, les gens utilisent les logiciels systèmes pour les tâches d’administration et de maintenance des ordinateurs.

1. Software designed to help users perform particular tasks or handle particular types of problems, as distinct from software that controls the computer itself.
2. Software or a program that is specific to the solution of an application problem 1.
3. Software designed to fulfill specific needs of a user.
4. Software of an application 6.
Note 1 to entry: Application software is the software that the application management organization produces, services, and maintains. There is also system software: the software to produce and maintain the application software and to run the application software on its platform. The application management organization is one of the users of the system software.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Contrairement au logiciel système, un logiciel d’application est conçu pour résoudre directement les problèmes de l’utilisateur, avec l’aide des logiciels systèmes.

Categories

1. Finite set of well-defined rules for the solution of a problem in a finite number of steps.
2. Sequence of operations for performing a specific task.
3. Finite ordered set of well-defined rules for the solution of a problem. 1
EXAMPLE:a complete specification of a sequence of arithmetic operations for evaluating sine x to a given precision.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Lorsqu’un ordinateur résout un problème, il suit une séquence d’étapes appelée algorithme. En général, cet algorithme prend des données d’entrée et génère des données de sortie.

Un problème algorithmique est un problème qui peut être résolu par un ordinateur. Trouver une solution à un problème algorithmique revient essentiellement à trouver un algorithme.

1. Fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution. 7 8 9
2. Set of rules to define the structure of a system and the interrelationships between its parts. 10

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

L’architecture logicielle décrit les modèles qui dictent la manière dont le logiciel doit être structuré en parties et comment ces parties doivent être reliées et interagir. Chaque modèle défini est appelé un patron d’architecture logicielle et est également connu sous le nom de style d’architecture logicielle par certains praticiens. Plusieurs modèles peuvent être combinés pour former un autre modèle.

Les exigences et les attributs de qualité du logiciel jouent un rôle important dans la détermination du modèle d’architecture logicielle à utiliser. Ces attributs de qualité comprennent la maintenabilité (capacité à maintenir le logiciel), la testabilité (capacité à tester le logiciel) et la débogabilité (capacité à déboguer le logiciel).

Certains patron d’architecture, comme la programmation orientée objet, se concentrent sur l’architecture au niveau du code source. Ceux-ci sont appliqués à l’intérieur d’un seul programme et sont catégorisés comme des patron d’architecture intra-programme.

D’autre part, des patron d’architecture tels que l’architecture de microservices sont axés sur l’architecture au niveau du système plus large, dictant comment les programmes au sein d’un système sont organisés. Ceux-ci sont catégorisés comme des modèles architecturaux inter-programmes.

Certains modèles, comme le patron d’architecture filtres et tubes, peuvent servir à la fois de modèles inter-programmes et intra-programmes. Par exemple, un filtre pourrait être une fonction au sein d’un seul programme exécutable ou un programme exécutable entier au sein d’un système plus large.

1. Type of computer or hardware device and/or associated operating system, or a virtual environment, on which software can be installed or run. 11
2. A collection of hardware and software components that are needed for a CASE tool to operate. 12
3. Combination of an operating system and hardware that makes up the operating environment in which a program runs. 13
Note 1 to entry: A platform is distinct from the unique instances of that platform, which are typically referred to as devices or instances.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Une plateforme logicielle fournit un environnement où les programmes peuvent s’exécuter sans nécessiter de configuration supplémentaire d’un administrateur. Elle englobe les logiciel système ainsi que le matériel ou les environnements virtuels.

De nos jours, plusieurs plateformes logicielles peuvent coexister sur le même ordinateur physique.

1. General activity of software development.
2. Designing, writing, modifying, and testing of programs. 1

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Les termes “programmation”, “développement de logiciels” et “codage” sont souvent utilisés de manière interchangeable.

1. Capability of software product to satisfy stated and implied needs when used under specified conditions. 14
2. Degree to which a software product satisfies stated and implied needs when used under specified conditions. 15
3. Degree to which a software product meets established requirements. 16
Note 1 to entry: Quality depends upon the degree to which the established requirements accurately represent stakeholder needs, wants, and expectations. In SQuaRE standards software quality has the same meaning as software product quality.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

La qualité logicielle fait référence à la manière dont le logiciel fonctionne comme prévu. Elle reflète également l’efficacité de sa surveillance, de son débogage et de sa maintenance.

Physical or logical relationship among data elements, designed to support specific data manipulation functions.
Note 1 to entry: The data structures are usually documented in technical and logical data models.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

Programs use data structures to represent and manipulate data.

Les structures de données sont définies par leurs propriétés internes, qui régissent l’interaction de leurs éléments. Elles sont également définies par les fonctions utilisées pour manipuler les données.

Lors du choix d’une structure de données pour un programme, il est essentiel de considérer le coût, ou la complexité, des fonctions de manipulation des données dans le contexte du problème à résoudre. Ce coût est étroitement lié aux propriétés de la structure de données. Même si deux structures de données ont des fonctions de manipulation de données identiques, l’une peut être préférée à l’autre dans un contexte spécifique en raison de ses propriétés internes. Par exemple, une liste tableau est préférée à une liste chaînée pour les opérations de lecture et de mise à jour de données basées sur l’index.

Collection of software, firmware, and hardware elements that controls the execution of computer programs and provides such services as computer resource allocation, job control, input/output control, and file management in a computer system.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

La définition d’un système d’exploitation comprend non seulement le logiciel, mais aussi le firmware (micrologiciel ou microprogramme) et le matériel. Cependant, le terme “système d’exploitation” est couramment utilisé de manière vague pour désigner spécifiquement le composant logiciel, également appelé logiciel de système d’exploitation. Linux et Microsoft Windows en sont des exemples.

Le logiciel de système d’exploitation gère l’exécution des programmes informatiques sur le matériel. Il offre des services à ces programmes en s’interfaçant avec le matériel par l’intermédiaire du firmware. Les composants matériels et firmware du système d’exploitation fournissent les ressources essentielles au composant logiciel pour gérer et servir les programmes en cours d’exécution.

Dans nos articles, nous utilisons le terme système d’exploitation (SE, en Anglais abrégé OS) au sens large pour parler du logiciel de système d’exploitation.

Distributed computing: spreading of computation and data across a number of computers connected by a network.

ISO/IEC/IEEE 24765:2017 Ingénierie des systèmes et du logiciel — Vocabulaire

En ce qui concerne les logiciels, un système distribué fait référence à un système logiciel qui effectue du calcul distribué. Il est composé de sous-systèmes répartis sur plusieurs ordinateurs connectés par un réseau. Chaque sous-système est constitué d’un ou de plusieurs logiciels.

Avec les plateformes logicielles légères modernes, il est courant d’avoir plusieurs plateformes logicielles sur un seul ordinateur physique. Ainsi, les sous-systèmes d’un système distribué peuvent être répartis sur diverses plateformes logicielles connectées par un réseau, fonctionnant sur un ou plusieurs ordinateurs physiques.


  1. ISO/IEC 2382:2015, Information technology — Vocabulary ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. Bien que ce ne soit pas idéal, parfois un programme peut être composé de plusieurs petits programmes écrits dans différents langages de programmation. Cela est rendu possible grâce à des technologies telles que l’Interface Binaire d’Application (ABI) and l’Interface de Fonction Étrangère (FFI)↩︎

  3. IEEE 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering, 2.1 ↩︎ ↩︎

  4. ISO/IEC 19770-1:2012 Information technology — Software asset management — Part 1: Processes and tiered assessment of conformance, 3.14 ↩︎

  5. ISO/IEC 26514:2008 Systems and software engineering — requirements for designers and developers of user documentation, 4.46 ↩︎

  6. ISO/IEC 16350-2015 Information technology — Systems and software engineering — Application management, 4.6 ↩︎

  7. ISO/IEC TS 24748-1:2016 Systems and software engineering — Life cycle management — Part 1: Guide for life cycle management, 2.6 ↩︎

  8. ISO/IEC/IEEE 15288:2015 Systems and software engineering — System life cycle processes, 4.1.5 ↩︎

  9. ISO/IEC/IEEE 42010:2011 Systems and software engineering — Architecture description, 3.2 ↩︎

  10. ISO/IEC 10746-2:2009 Information technology — Open Distributed Processing — Reference Model: Foundations, 6.6 ↩︎

  11. ISO/IEC 19770-1:2012 Information technology — Software asset management — Part 1: Processes and tiered assessment of conformance, 3.9 ↩︎

  12. IEEE 1175.2-2006 IEEE Recommended Practice for CASE Tool Interconnection — Characterization of Interconnections, 3.11 ↩︎

  13. ISO/IEC 26513:2009 Systems and software engineering — Requirements for testers and reviewers of user documentation, 3.26 ↩︎

  14. ISO/IEC 25000:2014 Systems and software Engineering — Systems and software product Quality Requirements and Evaluation (SQuaRE) — Guide to SQuaRE, 4.33 ↩︎

  15. ISO/IEC 25010:2011 Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models, 4.3.13 ↩︎

  16. IEEE 730-2014 IEEE Standard for Software Quality Assurance Processes, 3.2 ↩︎