Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. WeltenzyklopÀdie
  2. Interface (informatique)
Interface (informatique) 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources (août 2022).

Si vous disposez d'ouvrages ou d'articles de rĂ©fĂ©rence ou si vous connaissez des sites web de qualitĂ© traitant du thĂšme abordĂ© ici, merci de complĂ©ter l'article en donnant les rĂ©fĂ©rences utiles Ă  sa vĂ©rifiabilitĂ© et en les liant Ă  la section « Notes et rĂ©fĂ©rences Â».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
Page d’aide sur l’homonymie

Pour les articles homonymes, voir interface.

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.

Cet article traite des interfaces logicielles qui existent entre diffĂ©rents composants logiciels et fournissent un mode de programmation par lequel ces composants peuvent communiquer.[pas clair]

7 types d’interfaces en informatique.

Interfaces en pratique

[modifier | modifier le code]

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. On y spĂ©cifie souvent aussi la fonctionnalitĂ© des procĂ©dures et des mĂ©thodes incluses, soit par des commentaires ou (dans certains langages expĂ©rimentaux) par des assertions formelles logiques.

L'interface d'un module logiciel A {\displaystyle A} {\displaystyle A} est intentionnellement gardĂ©e rigoureusement sĂ©parĂ©e de l'implĂ©mentation de celui-ci. Ce dernier contient le code proprement dit des procĂ©dures et mĂ©thodes dĂ©crites dans l'interface (aux cĂŽtĂ©s du code des variables et procĂ©dures « privĂ©es Â»). Un module logiciel B {\displaystyle B} {\displaystyle B} qui utilise A {\displaystyle A} {\displaystyle A} (autrement dit un client de A) n'y accĂšde pas directement, il y accĂšde uniquement par le travers de l'interface de A {\displaystyle A} {\displaystyle A}. L'utilisation d'interfaces offre ainsi l'avantage qu'un remplacement d'implĂ©mentation de A {\displaystyle A} {\displaystyle A} par une autre, rĂ©pondant aux mĂȘmes spĂ©cifications de l'interface, ne peut causer de dĂ©faillance d'un module client B {\displaystyle B} {\displaystyle B} — si tant est bien sĂ»r que son utilisation de A {\displaystyle A} {\displaystyle A} se conforme aux spĂ©cifications de l'interface (voir aussi principe de substitution de Liskov).

Utilisation des interfaces

[modifier | modifier le code]

Le concept d'interface est la pierre angulaire de la programmation modulaire, un prĂ©curseur et un Ă©lĂ©ment standard de la programmation orientĂ©e objet. Dans la programmation orientĂ©e objet, l'interface d'un objet consiste en un ensemble de mĂ©thodes que l'objet doit suivre. C'est le « contrat de service Â» du composant. Les variables d'instance de l'objet ne font pas partie de l'interface - on y accĂšde spĂ©cifiquement via des accesseurs.

Certains langages orientĂ©s-objet nĂ©cessitent de dĂ©finir sĂ©parĂ©ment l'interface et l'implĂ©mentation. Par exemple, en Objective-C, l'interface est dĂ©finie dans un fichier d'en-tĂȘte et l'implĂ©mentation dans un fichier source. Par exemple, de par le typage et le chargement dynamique d'Objective-C, il est possible d'envoyer un message Ă  n'importe quel objet, l'interface spĂ©cifiant quelle mĂ©thode doit y rĂ©pondre (parmi les mĂ©thodes de la classe de l'objet et les mĂ©thodes des classes parentes).

Les interfaces sont historiquement dĂ©rivĂ©es des fichiers d'entĂȘte C avec un contexte et un contenu restreints, devenant une partie de la sĂ©mantique du langage (par opposition aux fonctionnalitĂ©s du prĂ©processeur C).

Le langage Java adopte une approche différente du concept d'interface qui existe normalement dans d'autres langages orientés objet (ie., que l'interface spécifiée est l'interface avec la classe), en ce qu'une interface spécifie un ensemble de méthodes qui implémente des fonctionnalités spécifiques, communes à un ensemble de classes. Voir protocole (programmation orientée objet).

Certains langages de programmation (e.g. D, Java, Logtalk) autorisent la définition de hiérarchies d'interface. Ceci autorise une définition de, par exemple, à la fois la version minimale et étendue d'une interface.

Certains langages de programmation (e.g. Logtalk) supportent une implémentation privée et protégée d'une interface. Ainsi, les méthodes (publiques) déclarées dans une interface peuvent facilement devenir des méthodes privées ou protégées d'une classe qui implémente l'interface.

Le langage Eiffel inclut dans l'interface d'une classe son invariant et la prĂ©- et postconditions des mĂ©thodes de la classe. Ceci est essentiel Ă  la mĂ©thodologie de conception par contrat, et peut ĂȘtre considĂ©rĂ© comme une extension des conditions imposĂ©es par les types d'arguments. Ces rĂšgles peuvent ĂȘtre spĂ©cifiĂ©es dans l'implĂ©mentation d'une classe ou dans un ancĂȘtre qui peut quitter les mĂ©thodes non implĂ©mentĂ©es.

Ces rĂšgles peuvent ĂȘtre extraites dans l'environnement de dĂ©veloppement par l'analyseur syntaxique afin de fournir Ă  l'utilisateur une vue de l'interface de ces classes. Au niveau de la compilation, elles permettent de dĂ©finir des assertions c'est-Ă -dire des conditions dĂ©clenchant des exceptions ; on parle de contrat de la mĂ©thode.

Exemple de contrat d'une fonction « division(numĂ©rateur, diviseur) Â» recevant numĂ©rateur et diviseur en paramĂštres : si le diviseur est Ă©gal Ă  zĂ©ro, je dĂ©clenche une assertion sinon j'effectue une division.

Les assertions peuvent avoir des comportements diffĂ©rents selon le mode debug ou release : gĂ©nĂ©ralement en mode debug l'application s'arrĂȘte ce qui permet de repĂ©rer l'erreur contrairement au mode release qui favorise la continuitĂ© de service.

Dans l'exemple de la division, l'assertion provoquerait en mode debug l'arrĂȘt du programme et en release renverrait la valeur zĂ©ro.

Le langage assure aussi que les classes dĂ©rivĂ©es obĂ©issent aux contrats de leurs ancĂȘtres.

Langages qui fournissent des facilités d'interfaçage

[modifier | modifier le code]

Certains langages de programmation ont diffĂ©rentes mĂ©thodologies pour permettre la rĂ©alisation d'interfaces. En gĂ©nĂ©ral, tout langage de programmation peut implĂ©menter une interface, mais les langages de programmation suivants offrent des facilitĂ©s d'interfaçage spĂ©cifiques d'une façon ou d'une autre :

ActionScript in Flash, Ada, C#, C (langage), D, Delphi, Eiffel, Java, Logtalk, Mesa, ML, Modula, Modula-2, Modula-3, Oberon, Objective-C, PHP, Ocaml, Python, REALbasic, Unified Modeling Language, Visual Basic

Interfaces de programmation

[modifier | modifier le code]

Une interface de programmation (Application Programming Interface ou API) définit les fonctions publiées par une bibliothÚque logicielle, utilisables par les applications clientes.

En science de la communication

[modifier | modifier le code]

En sciences de l'information et de la communication, l’interface est un empilement de couches, depuis le support physique de l'information jusqu'Ă  sa diffusion dans la sociĂ©tĂ©.

En électronique

[modifier | modifier le code]

Dans le cas de l’électronique, il est utile de dĂ©tailler la couche physique prĂ©cĂ©demment dĂ©crite et commode de rĂ©unir les suivantes. L’interface peut alors ĂȘtre dĂ©finie par quatre couches :

  1. Physique : dĂ©finition des broches de connexion (nombre, disposition), configuration mĂ©canique des connecteurs (NB : cette couche peut ĂȘtre absente de certaines dĂ©finitions relĂąchĂ©es d’une interface)
  2. Électrique : mode de pilotage (tension/courant) des signaux, niveaux de tension (ou de courant) dĂ©finissant les Ă©tats de chaque signal, vitesses minimale et maximale de commutation, temps d’établissement et/ou de maintien (par rapport Ă  d’autres signaux), etc.
  3. Logique : nom des signaux et alimentations vĂ©hiculĂ©s par les broches du/des connecteur(s), sens de distribution (ou Ă©ventuellement bidirectionnalitĂ©)
  4. Protocolaire : rapport des signaux entre eux, signification des successions d’évĂ©nements sur un signal ou un groupe de signaux, interdits, etc.

Notes et références

[modifier | modifier le code]

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • HĂ©ritage
  • Programmation orientĂ©e composant
  • ModularitĂ©
  • Application binary interface
  • Bus informatique
  • Interface description language, ou 'IDL'

Liens externes

[modifier | modifier le code]

  • Notices dans des dictionnaires ou encyclopĂ©dies gĂ©nĂ©ralistesVoir et modifier les donnĂ©es sur Wikidata :
    • Britannica
    • Den Store Danske EncyklopĂŠdi
    • Gran EnciclopĂšdia Catalana
  • Notices d'autoritĂ©Voir et modifier les donnĂ©es sur Wikidata :
    • GND
    • IsraĂ«l
    • TchĂ©quie
v Â· m
ÉlĂ©ments de programmation informatique
BibliothĂšque logicielle
  • BibliothĂšque standard
  • Espace de noms
  • Framework
  • Gabarit
  • Interface
  • Interface de programmation (API)
Vocabulaire
  • Algorithme
  • Expression
  • Indentation
  • Instruction
  • Ligne de code
  • OpĂ©rateur
  • Pseudo-code
  • Ramasse-miettes
Fonctions
  • Dispatch multiple
  • Factorisation
  • Fonction imbriquĂ©e
  • Fonction de rappel
  • Fonction d'ordre supĂ©rieur
  • Fonction rĂ©cursive
  • GĂ©nĂ©ricitĂ©
  • OpĂ©rande
  • ParamĂštre
  • Polymorphisme
  • ProcĂ©dure
  • Signature de type
  • Surcharge
Objet
  • Classe
  • Constructeur
  • Destructeur
  • Encapsulation
  • HĂ©ritage
  • HĂ©ritage multiple
  • Instance
  • MĂ©thode
ÉvĂ©nementiel Inversion de contrĂŽle
Code source
Structures de données
  • Arbre
  • Enregistrement
  • Ensemble
  • File
  • Liste
  • Liste chaĂźnĂ©e
  • Pile
  • SĂ©maphore
  • Tableau
  • Tas
  • Type abstrait
  • Vecteur
Déclarations
  • Affectation
  • Convention de nommage
  • Pointeur
  • PortĂ©e
  • RĂ©fĂ©rence
  • Tableau associatif
  • Type Ă©numĂ©rĂ©
  • Type rĂ©cursif
  • Typage statique
  • Variable
  • Variable globale
  • Variable locale
Structures de contrĂŽle
  • Case
  • Eval
  • For
  • Goto
  • Switch
  • While
Fonctions usuelles
  • ConcatĂ©nation
  • IncrĂ©mentation
  • malloc
  • printf
Outil de développement
  • Environnement de dĂ©veloppement
  • GĂ©nĂ©rateur de documentation
  • Gestion de versions
  • ModĂšle
  • Patch
  • SpĂ©cification
Folklore
  • Hello world
  • Principe KISS
  • Langage de programmation exotique
CatĂ©gories :
  • Programmation informatique
  • DĂ©veloppement logiciel
  • icĂŽne dĂ©corative Portail de la programmation informatique
  • icĂŽne dĂ©corative Portail de l’informatique
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Interface_(informatique)&oldid=230894699 Â».
CatĂ©gorie :
  • Terminologie de l'informatique
CatĂ©gories cachĂ©es :
  • Article manquant de rĂ©fĂ©rences depuis aoĂ»t 2022
  • Article manquant de rĂ©fĂ©rences/Liste complĂšte
  • Page utilisant un modĂšle Bases inactif
  • Page utilisant P1417
  • Page utilisant P8313
  • Page utilisant P1296
  • Page pointant vers des bases externes
  • Page pointant vers des dictionnaires ou encyclopĂ©dies gĂ©nĂ©ralistes
  • Article de WikipĂ©dia avec notice d'autoritĂ©
  • Portail:Programmation informatique/Articles liĂ©s
  • Portail:Informatique/Articles liĂ©s
  • Portail:Technologies/Articles liĂ©s

  • indonesia
  • Polski
  • Ű§Ù„Ű±ÙŠŰ©
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • Ù…Ű”Ű±
  • Nederlands
  • æœŹèȘž
  • PortuguĂȘs
  • Sinugboanong Binisaya
  • Svenska
  • ĐŁĐșŃ€Đ°Ń—ĐœŃĐșа
  • Tiáșżng Việt
  • Winaray
  • äž­æ–‡
  • РуссĐșĐž
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id