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.
Software verification and validationIn software project management, software testing, and software engineering, verification and validation (V&V) is the process of checking that a software system meets specifications and requirements so that it fulfills its intended purpose. It may also be referred to as software quality control. It is normally the responsibility of software testers as part of the software development lifecycle.
Vérification formelleIn the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code.
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 ».
Développement de logicielLe développement de logiciel consiste à étudier, concevoir, construire, transformer, mettre au point, maintenir et améliorer des logiciels. Ce travail est effectué par les employés d'éditeurs de logiciels, des entreprises de services du numérique (ESN), des travailleurs indépendants (freelance) et des membres de la communauté du logiciel libre. Un logiciel est créé petit à petit par une équipe d'ingénieurs conformément à un cahier des charges établi par un client demandeur ou une équipe interne.
Système de positionnement par satellitesUn système de positionnement par satellites également désigné sous le sigle GNSS (pour Géolocalisation et Navigation par un Système de Satellites) est un ensemble de composants reposant sur une constellation de satellites artificiels permettant de fournir à un utilisateur par l’intermédiaire d'un récepteur portable de petite taille sa position 3D, sa vitesse 3D et l'heure. Cette catégorie de système de géopositionnement se caractérise par une précision métrique, sa couverture mondiale et la compacité des terminaux, mais également par sa sensibilité aux obstacles présents entre le terminal récepteur et les satellites.
Science appliquéevignette|Lancement d’une fusée de vecteur La science appliquée est l'ensemble des connaissances rationnelles permettant de réaliser des objectifs pratiques. Les sciences appliquées sont les différentes disciplines de la science appliquée : physique appliquée, mathématiques appliquées La science appliquée et les sciences appliquées complètent la science fondamentale et les sciences fondamentales, qui sont les connaissances rationnelles sur le fonctionnement et l'histoire du monde physique, biologique et humain, indépendamment des considérations pratiques pouvant en résulter.
Bug (informatique)vignette|upright=1|Le Mac triste : écran indiquant un code erreur sur les premières versions du MacIntosh d'Apple. En informatique, un bug (prononcé en français : ) ou bogue est un défaut de conception d'un programme informatique à l'origine d'un dysfonctionnement. La gravité du dysfonctionnement peut aller de bénigne, causant par exemple des défauts d'affichage mineurs à majeure, tels un plantage du système pouvant entraîner de graves accidents, par exemple la destruction en vol de la première fusée Ariane 5, en 1996.
Récepteur GPSLe système de navigation et de positionnement par satellite capte et analyse les signaux émis par une constellation de satellites. Les systèmes les plus connus sont GPS, GLONASS, Galileo et Beidu. Malgré la simplicité apparente de la technique, le traitement des signaux et le calcul de la position d'un récepteur sont complexes. Le récepteur décrit ici concerne le système GPS, mais la description est généralisable aux autres systèmes. Les satellites émettent en permanence sur deux fréquences L1 () et L2 ().
Prototypage logicielLe prototypage logiciel (ou « software prototyping » en anglais) désigne l'ensemble des activités de création de prototypes pour les logiciels, c'est-à-dire des versions incomplètes du programme en cours de développement. Cette activité est donc assez proche de la création et la validation de prototypes, telle qu'on la pratique dans l'industrie. Ainsi, un prototype permet d'explorer de façon interactive des scénarios d'utilisation du produit pour en valider les orientations.
Méthode formelle (informatique)En informatique, les méthodes formelles sont des techniques permettant de raisonner rigoureusement, à l'aide de logique mathématique, sur un programme informatique ou du matériel électronique numérique, afin de démontrer leur validité par rapport à une certaine spécification. Elles reposent sur les sémantiques des programmes, c'est-à-dire sur des descriptions mathématiques formelles du sens d'un programme donné par son code source (ou, parfois, son code objet).
Ingénierie des systèmesL'ingénierie des systèmes ou ingénierie système est une approche scientifique interdisciplinaire, dont le but est de formaliser et d'appréhender la conception et la validation de systèmes complexes. L'ingénierie des systèmes a pour objectif de maîtriser et de contrôler la conception de systèmes dont la complexité ne permet pas le pilotage simple. Par système, on entend un ensemble d'éléments humains ou matériels en interdépendance les uns les autres et qui inter-opèrent à l'intérieur de frontières ouvertes ou non sur l'environnement.
Systems Modeling Languagevignette|Collage des diagrammes SysML Systems Modeling Language - SysML en abrégé - est un langage de modélisation spécifique au domaine de l'ingénierie système. Il permet la spécification, l'analyse, la conception, la vérification et la validation de nombreux systèmes et systèmes-de-systèmes. À l'origine, SysML a été développé dans le cadre d'un projet de spécification open source, et inclut une licence open source pour sa distribution et son utilisation.
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.
Software development effort estimationIn software development, effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input. Effort estimates may be used as input to project plans, iteration plans, budgets, investment analyses, pricing processes and bidding rounds. Published surveys on estimation practice suggest that expert estimation is the dominant strategy when estimating software development effort.
Plan d'expériencesOn nomme plan d'expériences (en anglais, design of experiments ou DOE) la suite ordonnée d'essais d'une expérimentation, chacun permettant d'acquérir de nouvelles connaissances en maîtrisant un ou plusieurs paramètres d'entrée pour obtenir des résultats validant un modèle avec une bonne économie de moyens (nombre d'essais le plus faible possible, par exemple). Un exemple classique est le « plan en étoile » où en partant d'un jeu de valeurs choisi pour les paramètres d'un essai central, on complète celui-ci par des essais où chaque fois un seul des facteurs varie « toutes choses égales par ailleurs ».
Gestion de projetLa gestion de projet, est l'ensemble des activités visant à organiser le bon déroulement d’un projet et à en atteindre les objectifs en temps et en heures selon les objectifs visés. Elle consiste à appliquer les méthodes, techniques, et outils de gestion spécifiques aux différentes étapes du projet, de l'évaluation de l'opportunité jusqu'à l'achèvement du projet. Cette activité porte également le nom de conduite de projet, pilotage de projet, ingénierie de projet, ou encore management de projet.
GNSS augmentationAugmentation of a global navigation satellite system (GNSS) is a method of improving the navigation system's attributes, such as precision, reliability, and availability, through the integration of external information into the calculation process. There are many such systems in place, and they are generally named or described based on how the GNSS sensor receives the external information.
Software verificationSoftware verification is a discipline of software engineering, programming languages, and theory of computation whose goal is to assure that software satisfies the expected requirements. A broad definition of verification makes it related to software testing. In that case, there are two fundamental approaches to verification: Dynamic verification, also known as experimentation, dynamic testing or, simply testing. - This is good for finding faults (software bugs).
Analyse statique de programmesEn informatique, la notion d’analyse statique de programmes couvre une variété de méthodes utilisées pour obtenir des informations sur le comportement d'un programme lors de son exécution sans réellement l'exécuter. C'est cette dernière restriction qui distingue l'analyse statique des analyses dynamiques (comme le débugage ou le profiling) qui s'attachent, elles, au suivi de l’exécution du programme. L’analyse statique est utilisée pour repérer des erreurs formelles de programmation ou de conception et pour déterminer la facilité ou la difficulté à maintenir le code.