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.
Langage de programmation de haut niveauEn programmation informatique, un langage de programmation à haut niveau d'abstraction généralement appelé langage de haut niveau est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l'anglais) et des symboles mathématiques familiers. Un langage de haut niveau fait abstraction des caractéristiques techniques du matériel utilisé pour exécuter le programme, tels que les registres et les drapeaux du processeur.
Programmation informatiquevignette|Liste d'instructions sur le Commodore 64 La programmation, appelée aussi codage dans le domaine informatique, désigne l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante du développement de logiciels (voire de matériel). L'écriture d'un programme se fait dans un langage de programmation. Un logiciel est un ensemble de programmes (qui peuvent être écrits dans des langages de programmation différents) destiné à la réalisation de certaines tâches par un (ou plusieurs) utilisateurs du logiciel.
Programmation orientée composantthumb|Représentation graphique de composants informatiques. La programmation orientée composant (POC) consiste à utiliser une approche modulaire de l'architecture d'un projet informatique, ce qui permet d'assurer au logiciel une meilleure lisibilité et une meilleure maintenance. Les développeurs, au lieu de créer un exécutable monolithique, se servent de briques réutilisables. La POC n'est pas sans similitudes avec la POO, puisqu'elle revient à utiliser une approche objet, non pas au sein du code, mais au niveau de l'architecture générale du logiciel.
Base de données relationnellethumb|upright=1.2|Structure générale d'une base de données relationnelle. En informatique, une base de données relationnelle (en anglais: relational database management system (RDBMS)) est une base de données où l'information est organisée dans des tableaux à deux dimensions appelés des relations ou tables, selon le modèle introduit par Edgar F. Codd en 1960. Selon ce modèle relationnel, une base de données consiste en une ou plusieurs relations. Les lignes de ces relations sont appelées des nuplets ou enregistrements.
Application-specific integrated circuitvignette|Un ASIC. Un ASIC (acronyme de l'anglais application-specific integrated circuit, littéralement « circuit intégré propre à une application ») est un circuit intégré spécialisé. En général, il regroupe sur la même puce un ou sur mesure. thumb|Autre exemple de puce ASIC. L'intérêt de l'intégration est de réduire les coûts de production et d'augmenter la fiabilité. Avantage pour le maître d'œuvre : un contrôle total du produit et un coût de production réduit.
Microprocesseurvignette|Un Intel 4004 dans son boîtier à seize broches, premier microprocesseur commercialisé. vignette|Architecture de l'Intel 4004. vignette|L'intérieur d'un Intel 80486DX2. Un microprocesseur est un processeur dont tous les composants ont été suffisamment miniaturisés pour être regroupés dans un unique boîtier. Fonctionnellement, le processeur est la partie d'un ordinateur qui exécute les instructions et traite les données des programmes.
DebuggingIn computer programming and software development, debugging is the process of finding and resolving bugs (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, , monitoring at the application or system level, memory dumps, and profiling. Many programming languages and software development tools also offer programs to aid in debugging, known as debuggers.
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.
Conception de logicielLa conception de logiciel met en œuvre un ensemble d'activités qui à partir d'une demande d'informatisation d'un processus (demande qui peut aller de la simple question orale jusqu'au cahier des charges complet) permettent la conception, l'écriture et la mise au point d'un logiciel (et donc de programmes informatiques) jusqu'à sa livraison au demandeur. En règle générale, la fabrication d'un logiciel va suivre trois grandes phases : Phase d'analyse (fonctionnelle) ou de conceptionDurant cette phase, on effectue simultanément l'étude des données et l'étude des traitements à effectuer.
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.
Management de la qualitévignette|La roue de Deming illustre le processus d'amélioration continue, l'un des principes fondamentaux du management de la qualité. Le management de la qualité, ou gestion de la qualité, est une discipline du management regroupant l'ensemble des concepts et méthodes visant à satisfaire les clients d'un organisme (en général les entreprises, associations, organismes publics) et à fournir des produits et services correspondant à leurs attentes.
Business Process ManagementLe Business Process Management (BPM), ou Gestion des Processus Métiers, permet d’avoir une vue d’ensemble de processus métiers de l’organisation et de leurs interactions pour les optimiser et les automatiser autant que possible. Pour ce faire, il faut analyser le fonctionnement réel de l'entreprise afin de le modéliser informatiquement, par exemple avec le formalisme BPMN et les outils associés. Dans une deuxième étape, les processus automatisés, même partiellement, font l'objet d'un monitoring (Cf.
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.
Interactions homme-machinethumb|Personne plongée dans la réalité virtuelle grâce à un visiocasque et un gant électronique. thumb|L'interface homme-machine d'un des ordinateurs de bord des missions Apollo. L'interaction Homme-machine (ou interaction humain-machine), appelée IHM, s’intéresse à la conception et au développement de systèmes interactifs en prenant en compte ses impacts sociétaux et éthiques. Les humains interagissent avec les ordinateurs qui les entourent et cette interaction nécessite des interfaces qui facilitent la communication entre l'humain et la machine.
Architecture matériellevignette|Architecture matérielle d'un processeur Intel Core2. vignette|Architecture matérielle d'un Cyclops64 (BlueGene/C). L’architecture matérielle décrit l’agencement interne de composants électroniques ainsi que leurs interactions. Le terme interne employé ici permet de bien faire la différence avec l’architecture (externe) de processeur (ou architecture de jeu d'instruction), qui s'intéresse à la spécification fonctionnelle d'un processeur, du point de vue du programmeur en langage machine.
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.
Système d'exploitationEn informatique, un système d'exploitation (souvent appelé OS — de l'anglais operating system — ou parfois SE — en français) est un ensemble de programmes qui dirige l'utilisation des ressources d'un ordinateur par des logiciels applicatifs. Il reçoit des demandes d'utilisation des ressources de l'ordinateur de la part des logiciels applicatifs. Le système d'exploitation gère les demandes ainsi que les ressources nécessaires évitant les interférences entre les logiciels.
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.
Théorie des langages de programmationvignette|La lettre grecque minuscule λ (lambda) est un symbole non officiel de la théorie des langages de programmation. Cet usage dérive du lambda-calcul, un modèle de calcul introduit par Alonzo Church dans les années 1930 et largement utilisé par les chercheurs en langage de programmation. Il orne la couverture du texte classique Structure et interprétation des programmes informatiques, et apparaît dans le titre des fameux Lambda Papers de 1975 à 1980, écrits par Gerald Jay Sussman et Guy Steele, les développeurs du langage de programmation Scheme.