Prototypevignette|Photographie d'un prototype BMW : la BMW Nazca C2 Dans le domaine de l'industrie et plus généralement de la recherche et développement (R&D), un prototype est selon la définition de l'OCDE , mais il s'agit aussi parfois d'un exemplaire incomplet (et non définitif) de ce que pourra être un produit (éventuellement de type logiciel, ou de type « service »Djellal, F., Gallouj, C., Gallouj, F., Francoz, D., & Jacquin, Y. (2001).
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.
Prototypage rapideLe prototypage rapide est une méthode de fabrication commandée par ordinateur, généralement par superposition, qui regroupe un ensemble d’outils, lesquels, agencés entre eux, permettent d’aboutir à des projets de représentation intermédiaire de la conception de produits : les modèles numériques (au sens géométrie du modèle), les maquettes, les prototypes et les préséries. Le prototypage rapide peut se définir comme . Le prototypage rapide peut désigner la fabrication additive (couramment appelée « impression 3D »), des méthodes soustractives (par exemple fraisage ou tournage) ou de thermoformage.
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.
Cycle de développement (logiciel)Il existe différents types de cycles de développement entrant dans la réalisation d'un logiciel. Ces cycles prennent en compte toutes les étapes de la conception d'un logiciel. Ce cycle de développement est aussi utilisé dans l'industrie aéronautique et spatiale pour définir des systèmes, ou des sous systèmes embarqués ou au sol qu'ils incluent ou pas de l'informatique. vignette|Évolution des cycles basiques vignette|Modèle en cascade Modèle en cascade Le modèle en cascade est issu du développement de logiciels.
Processus unifiéLe processus unifié (PU), ou « unified process (UP) » en anglais, ou « Unified Software Development Process (USDP) » est une famille de méthodes de développement de logiciels orientés objets. Elle se caractérise par une démarche itérative et incrémentale, pilotée par les cas d'utilisation, et centrée sur l'architecture et les modèles UML. Elle définit un processus intégrant toutes les activités de conception et de réalisation au sein de cycles de développement composés d'une phase de création, d'une phase d'élaboration, d'une phase de construction et d'une phase de transition, comprenant chacune plusieurs itérations.
Développement rapide d'applicationsLa méthode de développement rapide d'applications, dite méthode RAD (acronyme de l'anglais rapid-application development), est la première méthode de développement de logiciels où le cycle de développement est en rupture fondamentale par rapport à celui des méthodes antérieures dites « en cascade ». Ce nouveau cycle qualifié d'itératif, d'incrémental et d'adaptatif, se retrouvera dans toutes les méthodes dites « agiles » publiées par la suite.
Rational unified processThe rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.
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.
Iterative and incremental developmentIterative and incremental development is any combination of both iterative design or iterative method and incremental build model for development. Usage of the term began in software development, with a long-standing combination of the two terms iterative and incremental having been widely suggested for large development efforts. For example, the 1985 DOD-STD-2167 mentions (in section 4.1.2): "During software development, more than one iteration of the software development cycle may be in progress at the same time.
Production en sérievignette|Chaîne de production dans une usine Hyundai. La production en série est un mode de production caractérisé par une organisation telle que les produits passent linéairement de poste à poste jusqu'à prendre leur forme finale. La production en série permet d'assurer une augmentation des économies d'échelle par la spécialisation des postes de travail. Il est cependant possible de critiquer cette spécialisation qui entraîne une baisse de la flexibilité nuisible en cas de changement d'activité.
Test de validationUn test de validation est un type de test informatique qui permet de vérifier si toutes les exigences client, décrites dans le document de spécification du logiciel, sont respectées. Les tests de validation se décomposent généralement en plusieurs phases : Validation fonctionnelle : les tests fonctionnels assurent que les différents modules ou composants implémentent correctement les exigences client. Ces tests peuvent être de type valide, invalide, inopportuns, etc.
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.
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.
Cahier des charges fonctionnelLe cahier des charges fonctionnel (CdCF) est un document formalisant un besoin, en détaillant les fonctionnalités attendues d'un système, d'un produit ou d'un service ainsi que les contraintes (techniques, réglementaires, budgétaires, etc.) auxquelles il est soumis. Pour la bonne compréhension de ces trois mots, une forme d'écriture peut être d'écrire fonctionnelles pour qualifier les charges en termes de fonctions qui seront formulées en utilisant des verbes à l'infinitif pour confirmer qu'il s'agit d'actions.
Test de régressionUn test de régression, ou test de non-régression, est un test ayant pour but de détecter les régressions introduites dans un logiciel après un changement effectué dans celui-ci. Une régression est un défaut qui se produit après une modification d'un logiciel lorsque des fonctionnalités existantes ne sont plus réalisées aussi bien qu'avant.
Machine-outilUne machine-outil est un équipement mécanique destiné à exécuter un usinage, ou autre tâche répétitive, avec une précision et une puissance adaptées. Elle imprime à un outil, qu'il soit fixe, mobile, ou tournant, un mouvement permettant d'usiner ou de déformer une pièce ou un ensemble fixés sur un plateau mobile ou non. Le tour et notamment le tour à métaux a joué un rôle de premier plan au cours de la révolution industrielle. C'est la machine élémentaire de la mécanique industrielle, celle sans laquelle aucune autre machine ne peut voir le jour.
Modèle en spiraleLe modèle en spirale (spiral model) est un modèle de Cycle de développement logiciel qui reprend les différentes étapes du cycle en V. Par l'implémentation de versions successives, le cycle recommence en proposant un produit de plus en plus complet et dur. Le cycle en spirale met cependant plus l'accent sur la gestion des risques que le cycle en V. Le modèle en spirale a été défini par Barry Boehm en 1988 dans son article "A Spiral Model of Software Development and Enhancement".
Outilthumb|Une boîte à outils en bois des années 1950. Un outil est un objet physique utilisé par un être vivant directement, ou par l'intermédiaire d'une machine, afin d'exercer une action le plus souvent mécanique, ou thermique, sur un élément d'environnement à traiter (matière brute, objet fini ou semi-fini, être vivant, etc). Il améliore l'efficacité des actions entreprises ou donne accès à des actions impossibles autrement. Beaucoup procurent un avantage mécanique en fonctionnant selon le principe d'une machine simple, comme la pince-monseigneur, qui exploite le principe du levier.
Dynamic systems development methodDynamic systems development method (DSDM) est une méthode de gestion de projet de la catégorie des méthodes agiles. Cette méthode a été développée en Grande-Bretagne à partir de 1994. La méthode DSDM s'appuie sur 9 principes de base : Implication des utilisateurs durant tout le cycle de développement. Ils sont considérés comme des membres à part entière de l'équipe projet ; Autonomie. L'équipe projet doit avoir un pouvoir de prise de décision concernant l'évolution des besoins ; Visibilité du résultat.