Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
Une interface définit la frontière de communication entre deux entités, comme des éléments de logiciel, des composants de matériel informatique, ou un utilisateur. Elle se réfère généralement à une image abstraite qu'une entité fournit d'elle-même à l'extérieur. Cela permet de distinguer les méthodes de communication avec l'extérieur et les opérations internes, et autorise à modifier les opérations internes sans affecter la façon dont les entités externes interagissent avec elle, en même temps qu'elle en fournit des abstractions multiples. On appelle aussi interfaces des dispositifs fournissant un moyen de traduction entre des entités qui n'utilisent pas le même langage, comme entre un être humain et un ordinateur. Étant donné que ces interfaces réalisent des traductions et des adaptations, elles entraînent des coûts de développement supplémentaires par rapport à des communications directes. Variétés : Une interface humain-machine permet des échanges entre un humain et une machine ; Une interface de programmation permet des échanges entre plusieurs logiciels ; L’interface qui est présentée à l’utilisateur est nommée interface utilisateur ; Les interfaces entre des composants de matériel informatique sont des interfaces physiques. Un élément de logiciel fournit l'accès aux ressources informatiques (comme la mémoire, le processeur, le stockage, etc.) par son système informatique sous-jacent ; laisser ces ressources accessibles par d'autres logiciels peut avoir des ramifications majeures — quelquefois désastreuses — pour ses fonctionnalités et sa stabilité. Un principe clé de conception est d'interdire l'accès à toutes les ressources par défaut, en autorisant l'accès seulement à travers des points d'entrée bien définis, i.e. les interfaces (voir encapsulation). Les types d'accès que les interfaces fournissent entre les composants logiciels peuvent inclure : constantes, types de données, types de procédures, exception spécifications et signatures de méthodes. Dans certains cas, il peut être utile de définir dans l'interface des variables.
Nicola Marzari, Giovanni Pizzi, Sara Bonella, Kristjan Eimre, Andrius Merkys, Casper Welzel Andersen, Gian-Marco Rignanese, Ji Qi
Alfio Quarteroni, Andrea Manzoni