Analyse systémiqueL'analyse systémique est l'analyse faite selon les principes interdisciplinaires de la systémique, étude d'objets complexes par leurs échanges, qu'il s'agisse d'êtres vivants, d'organisations sociales, ou d'objets techniques. Face à ce type de problème, il est nécessaire d'adopter une démarche globale : en s'attachant davantage aux échanges entre les parties du système qu'à l'analyse de chacune d'elles, en raisonnant par rapport à l'objectif du système (téléologie), en établissant les états stables possibles du système.
Exigence (ingénierie)Une est, dans le domaine de l'ingénierie, un besoin, une nécessité, une attente auquel un produit ou un service doit répondre ou une contrainte qu'il doit satisfaire. L'exigence peut être exprimée par une partie prenante (utilisateur, client, commercial, analyste de marchés, gestionnaire de produits, etc.) ou déterminée par les processus d'ingénierie et en particulier les activités d'études. L'approche commune à tous les domaines d'ingénierie est de définir les besoins, d'envisager des solutions, et de livrer la solution la plus appropriée.
Requirements engineeringRequirements engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It is a common role in systems engineering and software engineering. The first use of the term requirements engineering was probably in 1964 in the conference paper "Maintenance, Maintainability, and System Requirements Engineering", but it did not come into general use until the late 1990s with the publication of an IEEE Computer Society tutorial in March 1997 and the establishment of a conference series on requirements engineering that has evolved into the International Requirements Engineering Conference.
Cas d'utilisationUn cas d'utilisation, bloc fonctionnel ou cas d'usage (« use-case » en anglais), définit en génie logiciel et en ingénierie des systèmes une manière d'utiliser un système qui a une valeur ou une utilité pour les acteurs impliqués. Le cas d'utilisation correspond à un ensemble d'actions réalisées par le système en interaction avec les acteurs en vue d'une finalité. L'ensemble des cas d'utilisation permet ainsi de décrire les exigences fonctionnelles d'un système en adoptant le point de vue et le langage de l'utilisateur final.
Génie logicielLe génie logiciel, l'ingénierie logicielle ou l'ingénierie du logiciel (en software engineering) est une science de génie industriel qui étudie les méthodes de travail et les bonnes pratiques des ingénieurs qui développent des logiciels. Le génie logiciel s'intéresse en particulier aux procédures systématiques qui permettent d'arriver à ce que des logiciels de grande taille correspondent aux attentes du client, soient fiables, aient un coût d'entretien réduit et de bonnes performances tout en respectant les délais et les coûts de construction.
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.
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.
Non-functional requirementIn systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with functional requirements that define specific behavior or functions. The plan for implementing functional requirements is detailed in the system design. The plan for implementing non-functional requirements is detailed in the system architecture, because they are usually architecturally significant requirements.
Architecture d'un systèmeL'architecture d'un système est un modèle conceptuel d'un système qui décrit ses propriétés externes et internes et la manière dont elles se projettent dans ses éléments, leurs relations et les principes de conception et d'évolution du système .
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.
Méthode agilevignette|Daily stand-up, rituel quotidien des méthodes agiles. En ingénierie logicielle, les mettent en avant la collaboration entre des équipes auto-organisées et pluridisciplinaires et leurs clients. Elles s'appuient sur l'utilisation d'un cadre méthodologique léger mais suffisant centré sur l'humain et la communication. Elles préconisent une planification adaptative, un développement évolutif, une livraison précoce et une amélioration continue, et elles encouragent des réponses flexibles au changement.
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).
Cycle de vie d'un logicielvignette| Le cycle de vie d'un logiciel (à traduire) Le cycle de vie d'un logiciel désigne l'ensemble des étapes de développement d'un logiciel, du début de son développement jusqu'à la fin de vie. Ces étapes incluent également les potentielles mises à jour du logiciel, une fois une version publiée (à des fins de perfectionnement ou de correction de bugs encore présents dans le logiciel) L'utilisation de la terminologie de test alpha / bêta a commencé chez IBM.
Spécification fonctionnelleLa spécification fonctionnelle est la description des fonctions d'un logiciel en vue de sa réalisation. La spécification fonctionnelle décrit dans le détail la façon dont les exigences seront prises en compte. Un exemple d'exigence est l'adaptation d'un progiciel à l'utilisateur en ce qui concerne la langue (le français dans les pays francophones). Une spécification fonctionnelle est indépendante de la façon dont sera réalisé le logiciel en question. Elle doit être exprimée en termes de fonctions et non pas en termes de solutions.