統合開発環境

ソフトウェアの統合的な開発環境

(とうごうかいはつかんきょう)、IDE[注 1]は、ソフトウェア開発のための統合的なプログラミング環境であり、様々なツールの集合からなる。

NetBeans

従来、ソフトウェアプログラムのコーディングコンパイルビルドデバッグといった作業を行なう際に、テキストエディタコンパイラリンカデバッガなどの各ツールを個別にコマンドラインから利用していたものを、ひとつの対話型操作環境(多くはGUI)から直感的かつシームレスに利用できるように統合したもの。IDEには、GUIアプリケーション開発のための迅速なプロトタイピング (Rapid Application Development: RAD) が可能なものが多い。統合開発環境を使うことによって、開発者の学習や作業負担を大幅に低減することが可能になり、特に巨大かつ複雑なソフトウェアの開発に効果を発揮する。ソフトウェアテストのためのツールが統合されてシームレスに連携できるようになっているものもある。

統合開発環境の特徴 編集

モジュール管理 編集

 
Eclipse (統合開発環境)

ひとつのソフトウェアを作成するには、プログラミング言語のソースコードを記述したソースファイルや、アイコン画像やローカライズされたテキストなどのリソースファイル、そしてビルド(コンパイル&リンク)設定管理用ファイルなど、複数のファイルが必要になる。自動化されたビルドシステムでは、これらをまとめて「プロジェクト」として扱い、一括して管理できるようにしている。開発環境のコンピュータにおけるファイルシステム上のディレクトリ階層と自動的に同期するビルドシステムもあれば、ファイルシステムとは無関係に論理的なディレクトリ階層を使用するビルドシステムもあるが、ビルドシステムのプロジェクトファイルの管理は一般的に煩雑であり、大規模なソフトウェアになるほど困難となる。IDEでは、対応するビルドシステムのプロジェクトファイルを直接編集することなく視覚的かつ直感的に操作・管理することが可能となっている。

より複雑なソフトウェアでは、再利用性やメンテナンス性などを考慮してプログラムを機能ごとに分類された部品(モジュール)に分割して管理する。一般的なビルドシステムでは、そのモジュールごとにプロジェクトファイルを作成し、さらに複数のプロジェクトファイルとそれらの依存関係をまとめて管理することのできる「ワークスペースファイル」[注 2]をサポートする。プロジェクトファイルやワークスペースファイルは、個々のビルドシステムによって、ファイルフォーマット拡張子が異なる[注 3]Gradleなどのようにファイルシステム上でビルドスクリプトが置かれたディレクトリ構造そのものをプロジェクトやワークスペースとして扱うビルドシステムもあるが、IDEではそういった詳細仕様を意識することなく直感的にモジュールを管理できるようになっており、またプロジェクトの新規作成時もウィザードの指示に従っていけば簡単にファイル一式を自動生成できるようになっている。

バージョン管理 編集

ソフトウェア開発においては、ソースコード管理にCVSSubversionGitなどのバージョン管理システムを使うことが多い。IDEの多くはチェックアウト、コミット、リバート(バージョンの巻き戻し)などのバージョン管理システムに対する操作が簡単に実行可能となっている。

チーム開発 編集

IDEの中にはコード整形ルールをプロジェクト単位あるいはソースツリー単位で管理できるものもある[1]。チームで開発を行なう際、同じIDEと同じルール設定ファイルを各開発者が利用することによって、コーディングスタイルの統一を図りやすくなる。

タスク管理ツールやテストケース管理ツールなどと連携して、ソフトウェア開発プロジェクトの進捗管理を含めた総合的なチーム開発をサポートするエンタープライズ向け機能を持ったIDEもある。

コーディング補助 編集

IDEに統合されたコードエディターは、プログラミングに特化されており、各言語のキーワード(予約語)をハイライト(色分け)したり、またプロジェクト内のソースファイルやヘッダーファイルから抽出した解析済みシンボル情報のデータベースをもとに、ユーザー定義のデータ型や変数サブルーチン(関数/メソッド)の名前(識別子)を補完したり、といったことができるようになっている。これにより、ソースコードの記述効率が上がり、またコーディングミスなどを防ぎやすくなる。また、ソースコードのコメント先頭に「TODO」などといった特定の文字列を入れておくと、それをIDE上で一覧表示して確認できるようになる機能をサポートするものもある[2]。さらに、一部のIDEでは実際にコンパイルすることなくリアルタイムでソースコードを解析して構文エラーや警告を検出し、当該部分に下線を引くなどしてプログラマに知らせるものもある。

ビルド、デバッグ補助 編集

コンパイラやリンカなどと連携しているため、作成したソフトウェアのビルドを簡単に実行できる。また、デバッガと連携しているため、ソースコード中に視覚的なブレークポイントを置いてソフトウェアの動作を一時停止させたり、変数の中身を確認しながらソースコードを1行ずつステップ実行させて問題のある個所を探したり、といったことが直感的にできる。

GUIの作成 編集

GUIを持つソフトウェアを開発する際、一般的に各ウィジェット(部品)の位置やサイズといったプロパティ情報の指定は、専用のレイアウト設定ファイルを使用して記述する。レイアウト設定ファイルは通例XML形式であったり独自の階層構造テキスト形式であったりするが、テキストエディターを使ってGUIの定義を記述するのは手間がかかる。さらにプログラムをビルドして実行してみなければ画面表示結果が確認できないのであれば、直感性に欠け、効率も悪い。そこで、多くのIDEは、GUIの作成をIDE上で視覚的かつ直感的に行なえるように、WYSIWYGに対応したグラフィカルなビジュアルエディターを統合している。また、ウィジェットを操作したときに発生するイベントに対する処理(イベントハンドラー)の記述も、コードエディターと連携・同期できるようになっている。これにより、簡単にGUIを持つソフトウェアを開発できるようになり、また、管理も一括して行なえる。なお、一部のIDEは、GUIの作成を行なうソフトウェアを分離しているものもある。

IDEの例 編集

ゲームの標準開発環境 編集

コンシューマーゲームコンソールの公式開発環境は独自開発のものが多く分断化されている。開発環境の価格にライセンス料が含まれることもある。

ハードウェア 開発環境 コンパイラ
PlayStation 3 ProDG SNC
Wii CodeWarrior CodeWarrior Compiler
Xboxシリーズ Visual Studio VC++

ゲーム機の性能が向上し、またスマートフォンなどのモバイル端末もゲームプラットフォームとして台頭してきたことで、UnityUnreal Engineといったマルチプラットフォームに対応したミドルウェアゲームエンジン)もサードパーティ製の統合開発環境として普及している。インディーズの参入障壁も下がっている。

脚注 編集

注釈 編集

  1. ^ : integrated development environment
  2. ^ Visual Studio .NET以降のMSBuildでは「ソリューションファイル」と呼ばれている。
  3. ^ Visual Studioのように、プログラミング言語ごとにプロジェクトファイルの拡張子が異なるものもある。

出典 編集

関連項目 編集