統合開発環境

統合開発環境(とうごうかいはつかんきょう、英:Integrated development environment、略称:IDE)は、ソフトウェア開発のための統合的なプログラミング環境であり、様々な開発ツールの集合からなる。一般的には、ソースコードエディタ、ビルド自動化機能、デバッガを中核とし、コンパイラやインタプリタ、バージョン管理システム、テスト、ソースコード解析などの機能を、同一の操作環境から利用できるようにする。ただし、IDEと呼ぶための構成要件が厳密に定められているわけではなく、搭載される機能や各ツールの統合の度合いは製品によって異なる。

NetBeansの画面

IDEが普及する以前、またはIDEを用いない開発では、プログラムのコーディング、コンパイル、ビルド、デバッグといった作業を行うために、テキストエディタ、コンパイラ、リンカ、デバッガなどの各ツールを個別に、しばしばコマンドラインから利用する。IDEは、これらのツールを一つの対話型操作環境(多くはGUI)から、連続的に利用できるように統合したものである。

IDEでは、ソースコードの編集からビルド、実行、デバッグまでを同一の画面から操作できるため、ツール間の切り替えや定型的な操作を減らすことができる。また、ソースコード補完、構文の強調表示、入力中のエラー検出などによって、開発作業を支援する。GUIアプリケーションの開発に用いられるIDEには、画面を視覚的に設計する機能やソースコード生成機能を備え、迅速なアプリケーション開発(RAD)を支援するものもある。ソフトウェアテストの実行や結果の確認をIDE内から行えるものもある。

IDEとソースコードエディタとの境界は必ずしも明確ではない。比較的単純なエディタであっても、拡張機能によってソースコード補完、デバッグ、ビルド、バージョン管理などの機能を追加することで、IDEに近い開発環境を構成できる場合がある。

2010年代後半頃からは、ローカルのコンピュータにIDE本体や開発用ツール一式をインストールせず、ウェブブラウザなどから遠隔の実行環境に接続して、コーディング、ビルド、テスト、デバッグを行う「クラウドIDE」(または「オンラインIDE」、「Web IDE」)も広く提供されている。

クラウドIDEでは、開発に必要なコンパイラ、ライブラリ、実行環境などをサーバー側にあらかじめ用意できるため、利用者ごとのローカル環境の構築を減らし、チーム内で開発環境を統一しやすい。また、ローカルのコンピュータより多くの計算資源を持つ遠隔環境で、ビルドやテストを実行することもできる。また、クラウドIDEには、ブラウザ上のソースコードエディタ、ターミナル、デバッグ機能、共有ワークスペース、他の利用者による編集の通知など、遠隔での共同開発を支援する機能を備えるものがある。

統合開発環境の特徴

モジュール管理

Eclipseの画面

一つのソフトウェアを作成するには、プログラミング言語のソースコードを記述したソースファイル、アイコン画像やローカライズされたテキストなどのリソースファイル、ビルドやコンパイルの設定ファイルなど、複数のファイルが必要になる。IDEやビルドシステムでは、これらのファイルと設定をまとめて「プロジェクト」として扱い、一括して管理できるようにしている。

IDEに表示されるプロジェクトの階層は、開発環境のコンピュータにおけるファイルシステム上のディレクトリ階層と対応する場合もあれば、ファイルシステムとは別に、論理的なフォルダやグループを表示する場合もある。IDEでは、プロジェクトツリー、プロパティ画面、設定画面などを通じて、プロジェクトファイルを直接編集せずにビルド対象、依存関係、出力先などを操作できるものが多い。

より複雑なソフトウェアでは、再利用性や保守性などを考慮して、プログラムを機能ごとに分類された部品(モジュール)に分割して管理する。ビルドシステムやIDEによっては、モジュールごとにプロジェクトを作成し、複数のプロジェクトとその依存関係を「ワークスペース」などの上位単位にまとめる。例えば、Visual Studioでは一つ以上のプロジェクトをまとめるコンテナを「ソリューション」と呼ぶ。

プロジェクトやワークスペースのファイル形式、拡張子、ディレクトリ構成は、ビルドシステムやIDEによって異なる。Gradleのように、設定ファイルやビルドスクリプトが置かれたディレクトリ構造を、ルートプロジェクトと複数のサブプロジェクトからなる構成として扱うビルドシステムもある。IDEでは、このような構成をプロジェクトツリーとして表示し、プロジェクトの新規作成時には、ウィザードやテンプレートを利用して必要なファイル一式を生成できるものがある。

製品によっては、外部のライブラリやフレームワークへの依存関係を扱うパッケージ管理システムも統合される。例えば、Visual StudioのNuGetパッケージマネージャーでは、IDEの画面からパッケージの検索、インストール、更新、削除を行い、パッケージが依存する別のパッケージもあわせて管理できる。

バージョン管理

ソフトウェア開発では、CVS、Subversion、Gitなどのバージョン管理システムを利用して、ソースコードや設定ファイルの変更履歴を管理する。

IDEの多くは、リポジトリの複製またはチェックアウト、ブランチの作成、コミット、リバート、プッシュ、プル、変更差分や履歴の表示、競合の解消などの操作を、IDE内から実行できるようにしている。例えばVisual Studioでは、Gitリポジトリの複製、ブランチ操作、コミット、プッシュ、プル、履歴の表示、マージ競合の解消などをIDEの画面から行える。

ソースコードエディタ上で変更された行を表示したり、ファイルの過去の版と現在の版を比較したりすることで、編集作業とバージョン管理操作を関連付けて確認できるものもある。

チーム開発

IDEの中には、インデント、タブと空白の使い分け、改行コード、文字コードなどのソースコード整形ルールを、プロジェクト単位またはソースツリー単位で管理できるものもある。例えば、EditorConfigに対応するIDEやエディタでは、プロジェクト内の.editorconfigファイルに記述された規則を、複数の開発者や異なる対応エディタの間で共有できる。これにより、チーム内でコーディングスタイルを統一しやすくなる。

製品や拡張機能によっては、タスク管理ツール、課題管理システム、ソースコードレビューシステム、テスト管理ツールなどと連携する。例えば、Visual StudioではGitHubのIssueやAzure DevOpsの作業項目を検索し、コミットと関連付けることができる。また、テストエクスプローラーでは、プロジェクト内のテストを検出し、分類、絞り込み、実行、デバッグすることができる。このように、ソフトウェア開発プロジェクトの進捗や成果物を、IDE上の作業と関連付けて管理するための機能を備えるものもある。

コーディング補助

IDEに統合されたソースコードエディタは、プログラミングに特化した機能を備える。各言語のキーワードや予約語、文字列、コメントなどを色分けして表示する構文強調表示や、入力中の文字列から識別子や構文を提示するソースコード補完が代表的である。

ソースコード補完では、プロジェクト内のソースファイル、ヘッダーファイル、参照されるライブラリなどを解析して得られたシンボル情報をもとに、ユーザー定義のデータ型、変数、関数、メソッドなどの名前を候補として提示する。メソッドの引数や型情報、簡単な説明を表示したり、定義箇所へ移動したりできるものもある。例えばVisual StudioのIntelliSenseは、入力候補の一覧、メンバー一覧、引数情報、簡易情報などを表示する。

また、ソースコードのコメントに「TODO」「HACK」などの特定の文字列を記述しておくと、それらをIDE上で一覧表示できるものもある。

一部のIDEでは、完全なビルドを実行する前からソースコードを解析し、構文エラー、型の不一致、未使用の変数、規約違反などを検出して、該当箇所に下線やアイコンを表示する。解析はソースコードの入力中に継続して実行される場合がある。

リファクタリング機能を備えるIDEもある。識別子の名前変更、メソッドの抽出、ソースコードのインライン化、不要な要素の削除などを行う際に、参照箇所を解析して関連するソースコードを一括して変更する。

人工知能による支援

IDE本体またはIDEの拡張機能として、人工知能、特に生成AIを利用したコーディング支援機能を提供するものがある。代表例の一つであるGitHub Copilotは、2021年6月に技術プレビューが公開された。

生成AIによる支援機能には、入力中のソースコードの補完、自然言語の指示に基づくソースコード生成、既存ソースコードの説明や改善案の提示、単体テストの生成、エラーや不具合の修正案の提示などがある。製品によっては、複数のファイルを編集したり、開発用コマンドを実行したりするエージェント型の機能も提供される。

一方、生成されたソースコードや説明が常に正確または安全であるとは限らない。そのため、生成結果については開発者が内容を確認し、必要なテストを行うことが求められる。

ビルド、デバッグ、テスト補助

IDEはコンパイラ、リンカ、ビルドシステムなどと連携し、作成したソフトウェアのビルドを実行できる。デバッグ用、リリース用など複数のビルド構成を切り替えたり、ビルド時に発生したエラーや警告を一覧表示し、メッセージから該当するソースコードへ移動したりできるものもある。

また、デバッガと連携することにより、ソースコード中に視覚的なブレークポイントを設定してプログラムの動作を一時停止させたり、ソースコードを一行ずつステップ実行したりできる。停止時には、変数の値、呼び出し履歴、実行中のスレッドなどを確認し、問題が発生している箇所を調査できる。

テスト機能を統合するIDEでは、テストコードの検出、実行、分類、結果の表示、失敗したテストのデバッグなどを行うことができる。製品によっては、テストによって実行されたソースコードの割合を示すコードカバレッジも確認できる。

GUIの作成

GUIを持つソフトウェアを開発する際、各ウィジェットの位置、サイズ、表示文字列などのプロパティを、ソースコードまたは専用のレイアウト定義ファイルに記述する。レイアウト定義ファイルには、XML形式やフレームワーク独自の形式などが用いられる。

多くのGUI開発向けIDEは、GUIを視覚的に設計できるように、WYSIWYGに対応したグラフィカルなビジュアルエディタを備える。ツールボックスからウィジェットを選び、フォームや画面上へドラッグ・アンド・ドロップして配置し、プロパティ画面から位置、サイズ、表示内容などを変更できる。

また、ウィジェットを操作したときに発生するイベントに対する処理(イベントハンドラ)のひな型を生成し、ソースコードエディタでの編集内容とGUI設計画面を連携させるものもある。これにより、画面設計、イベント処理、リソースなどを関連付けて管理できる。なお、GUI設計機能をIDE本体には内蔵せず、別の設計ツールや拡張機能として提供する場合もある。

対応言語と拡張機能

IDEには、特定のプログラミング言語や特定のプラットフォームに特化したものと、複数の言語やプラットフォームを扱うものがある。標準で対応していない言語についても、プラグインや拡張機能を追加することによって、構文強調表示、ソースコード補完、ビルド、デバッグなどに対応できる場合がある。

言語固有の解析処理をエディタ本体から分離する仕組みとして、Language Server Protocol(LSP)が用いられることもある。LSPでは、エディタまたはIDEと、言語解析を担当する「言語サーバー」との通信方法を定める。一つの言語サーバーが、ソースコード補完、エラー診断、定義箇所への移動、参照箇所の検索などの機能を、複数の対応エディタへ提供できる。

プラグインやLSPなどを通じて機能を追加できることから、高機能なソースコードエディタが、用途に応じてIDEに近い機能を備えることもある。

ゲーム開発における統合開発環境

家庭用ゲーム機向けの統合開発開発では、プラットフォームごとに、専用のSDK、ライブラリ、文書、検査用ツール、開発用ハードウェアなどが用意される。これらを利用するために、開発者登録や申請が必要となる場合がある。

例えばNintendo Switch向けの開発では、Nintendo Developer Portalへの登録に加えて、開発申請が必要とされている。アカウントの作成、開発用ツール、ライブラリ、文書の利用は無償である一方、開発用ハードウェアは有償とされている。

ゲーム開発では、UnityやUnreal Engineなどのマルチプラットフォーム対応ゲームエンジンに付属するエディタと、ソースコードを扱うIDEとを組み合わせることも多い。ゲームエンジン側のエディタとソースコードIDEの機能には重なる部分もあるが、必ずしも同じソフトウェアとして提供されるわけではない。

Unityは、外部のスクリプトエディタおよびIDEとしてVisual Studio、Visual Studio Code、JetBrains Riderなどをサポートし、プラグインや拡張機能を通じてソースコード補完やデバッグなどの機能を連携させている。Unreal Engineでも、C++による開発に複数のIDEを利用できるよう、開発環境の設定方法が提供されている。

統合開発環境の例

様々な統合開発環境が提供されている。以下はその一例である。

脚注

[脚注の使い方]

注釈

出典

  1. 1 2 3 4 5 6 “統合開発環境(IDE)とは何か”. IBM Think. IBM. 2026年7月22日閲覧。
  2. 1 2 3 4 5 6 7 “IDE(統合開発環境)とは?をわかりやすく解説”. Red Hat. Red Hat. 2026年7月22日閲覧。
  3. 1 2 矢萩寛人. “HTML5を活用した次世代Webベース統合開発環境の開発―チーム開発を手軽に始めて円滑に推進できるWebベースIDE―” (PDF). 情報処理推進機構. 2026年7月22日閲覧。
  4. ↑ “GitHub Codespacesとは”. GitHubドキュメント. GitHub. 2026年7月22日閲覧。
  5. 1 2 3 4 “Visual Studio のソリューションとプロジェクトとは”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  6. ↑ “Structuring and Organizing Gradle Projects” (英語). Gradle User Manual. Gradle. 2026年7月22日閲覧。
  7. ↑ “NuGet Package Managerを使用してVisual Studioにパッケージをインストールして管理する”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  8. 1 2 “Visual Studio の Git について”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  9. ↑ “コード スタイルの基本設定とコードのクリーンアップ”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  10. 1 2 “テスト エクスプローラーを使用して単体テストを実行する”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  11. ↑ “IntelliSense を使用して、迅速な情報と補完を取得する”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  12. ↑ “タスク リストを使用してコード コメントを追跡および使用する”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  13. ↑ “.NET のコード分析を手動で実行する”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  14. ↑ “コードリファクタリング”. IntelliJ IDEA ドキュメント. JetBrains. 2026年7月22日閲覧。
  15. ↑ “Introducing GitHub Copilot: your AI pair programmer” (英語). The GitHub Blog. GitHub (2021年6月29日). 2026年7月22日閲覧。
  16. 1 2 “GitHub Copilot Chat の責任ある使用”. GitHubドキュメント. GitHub. 2026年7月22日閲覧。
  17. ↑ “Visual Studio でのコンパイルとビルド”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  18. ↑ “Visual Studio デバッガーでマネージド コードをデバッグする”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  19. ↑ “フォームにコントロールを追加する”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  20. ↑ “コントロール イベントを処理する方法”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  21. ↑ “言語サーバー プロトコルの概要”. Microsoft Learn. Microsoft. 2026年7月22日閲覧。
  22. ↑ “FAQ”. Nintendo Developer Portal. 任天堂. 2026年7月22日閲覧。
  23. ↑ “統合開発環境(IDE)サポート”. Unity マニュアル. Unity Technologies. 2026年7月22日閲覧。
  24. ↑ “Unreal Engine の C++ 用の開発環境をセットアップする”. Epic Developer Community. Epic Games. 2026年7月22日閲覧。

関連項目