Сучеље или интерфејс (енгл. interface) заједничка је дељена граница, посредством које две или више компоненти рачунарског система врше размену информација. Размена информација може се одвијати између софтвера, хардверских компоненти, периферних уређаја, људи или као комбинација наведених. Поједине рачунарске компоненте, попут екрана осетљивих на додир, могу истовремено и примати и слати податке посредством интерфејса, док неке друге попут микрофона, једино омогућавају пријем података.[1]

Хардверски интерфејс уреди

Хардверски интерфејс је присутан у многим уређајима попут: магистрала, уређаја за складиштење података, улазно-излазних уређаја итд. Технички, хардверски интерфејс описан је механичким, електричним и логичким сигналима који се размењују на физичком међусклопу два уређаја, као и протоколима којима се врши секвенција сигнала (сигнализирање).[2]

Стандардан интерфејс, попут СЦСИ, одваја дизајн и примену једне хардверске компоненте од дизајна и примене других хардверских компоненти унутар истог рачунарског система. Такав модуларни приступ омогућава корисницима и произвођачима хардвера велику флексибилност у имплементацији рачунарског система.[2]

Хардверски интерфејс може бити паралелан или серијски. Код паралелног интерфејса пренос података врши се кроз неколико проводника истовремено, док се код серијског интерфејса пренос података врши бајт по бајт коришћењем једног проводника.

Софтверски интерфејс уреди

Појам софтверског интерфејса, обухвата широки распон различитих типова интерфејса, на различитим нивоима оперативног система.[3] Оперативни систем може посредовати у комуникацији између корисника и хардверских компоненти или програми (апликације) који се покрећу под одређеним оперативним системом могу захтевати комуникацију са другим програмима, нитима истог програма (енгл. threads) или комуникацију са деловима самог оперативног система.

Дизајн и примена софтверског интерфејса у пракси уреди

Кључни принцип приликом дизајна софтверског интерфејса, јесте забрана неконтролисаног приступа рачунарским ресурсима и омогућавање њиховог коришћења искључиво кроз добро дефинисане улазне тачке (енгл. entry points).[4] Поред задовољења безбедносних захтева, коришћење софтверског интерфејса омогућава и једноставније, функционалније коришћење компјутерских ресурса. Софтверски интерфејс омогућава да различити програми (или нити истог програма) деле заједничке: константе, типове података, процедуре, спецификације изузетака и потписе метода. Такође, понекад се јавне варијабле програма дефинишу као део софтверског интерфејса.

У току дизајна и имплементације софтверског интерфејса, треба тежити ка задовољењу принципа модуларности. Интерфејс програмског модула А мора бити дефинисано независно од његове имплементације.


Кориснички интерфејс уреди

Кориснички интерфејс представља тачку интеракције између рачунара и човека што укључује било коју процедуру интеракције (као што су графика, звук, положај, кретање и сл.) где се подаци преносе између корисника и рачунарског система.

Референце уреди

  1. ^ ИЕЕЕ 100 - Тхе Аутхоритативе Дицтионарy Оф ИЕЕЕ Стандардс Термс. НYЦ, НY, УСА: ИЕЕЕ Пресс. 2000. стр. 574—575. ISBN 0-7381-2601-2. 
  2. ^ а б Блаауw, Герритт А.; Броокс, Јр., Фредерицк П. (1997), „Цхаптер 8.6, Девице Интерфацес”, Цомпутер Арцхитецтуре-Цонцептс анд Еволутион, Аддисон-Wеслеy, стр. 489—493, ISBN 0-201-10557-8  Сее алсо: Паттерсон, Давид А.; Хеннессеy, Јохн L. (2005), „Цхаптер 8.5, Интерфацинг I/О Девицес то тхе Процессор, Меморy анд Оператинг Сyстем”, Цомпутер Организатион анд Десигн - Тхе Хардwаре/Софтwаре Интерфаце, Тхирд Едитион, Морган Кауфманн, стр. 588—596, ISBN 1-55860-604-1 
  3. ^ Venners, Bill (6. 6. 2005). „Leading-Edge Java: Design Principles from Design Patterns: Program to an interface, not an implementation - A Conversation with Erich Gamma, Part III”. http://www.artima.com/index.jsp: artima developer. Приступљено 3. 8. 2011. „Once you depend on interfaces only, you're decoupled from the implementation. That means the implementation can vary, and that is a healthy dependency relationship. For example, for testing purposes you can replace a heavy database implementation with a lighter-weight mock implementation. Fortunately, with today's refactoring support you no longer have to come up with an interface up front. You can distill an interface from a concrete class once you have the full insights into a problem. The intended interface is just one 'extract interface' refactoring away. ... 
  4. ^ Gamma; Helm; Johnson; Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley. стр. 17–18.