グラフィカルユーザインタフェース
メニューのうち、利用頻度の高いコマンドを絵で表現し、アプリケーション内に配置したもの。
アプリケーション上におかれるボタンは、普通はメニューの代わりをする。利用頻度の高いものからおかれ、メニューの階層を辿らなくてもその機能が使えるようになっている。ただし、ユーザーによりコマンドの利用頻度は異なるので、この配置を編集できるようになっているのが普通である。
データ(モデル)とUI(View)を結びつけ、片方の変更を暗示的に他方へ伝播する手法をデータバインディングという。宣言的UIと組み合わせることで、モデルの変更が自動的に宣言的UIの更新へと暗示的に反映されるようになる。
GUIは様々な方法・ライブラリを用いて生成される。ユーザーへ提示される視覚的要素はしばしばViewと呼ばれ、ユーザーからの入力を扱う内部要素はしばしばControllerと呼ばれる。
GUIの基本は、ポインティングデバイスによってカーソルを操作し、デバイスに付いたボタン(通常2〜3個)を押すことである。これにより、「位置」と「指示」を明確にし、視覚的な操作を行うことが出来る。
指示の内容は、カーソルの位置によって異なる。データ管理アプリケーションでは、第1ボタンは、カーソルの位置にあるデータを選択し、2回連続で押す(ダブルクリックする)ことによって、データに応じて適宜定義されたアプリケーションを呼び出し、処理を開始する。アプリケーションのメニュー、ボタン上では、そのコマンドを開始する。データ上では、データにおける操作の位置を指示する。
第2ボタンは、通常、どの場合でも、アプリケーションによって定義されたコンテキストメニューを出力する。このメニューを第一ボタンによって指示することで、そのコマンドを実行することができる。第3ボタンは、X Window Systemではよく使われる。
また、最近は第4ボタン、第5ボタンを装備したマウスや、第3ボタンがウィンドウに直接機能するホイール機能を兼ねているものがあり、適宜、アプリケーション又はOSによって定義された機能を提供する。