IPSJ情報処理カタログ #ジョーショリ

用語集

フレームワーク

ふれーむわーくFramework

概 要

フレームワークとは、アプリケーション開発に用いる枠組み。アプリケーションを動作させるために必要な土台がすでに用意されていて、開発者は必要なロジックを組み込むだけでアプリケーションとして完成できる。

解 説

フレームワークは、アプリケーションに必要な機能が組み上がった状態から開発をスタートできるよう、アプリケーションの枠組みを提供する仕組みです。

よく利用される機能が最初からパッケージとして提供されていて、開発者はフレームワーク中の書き加えていい領域(ホットスポットと呼ばれる)にコードを記述していきます。アプリケーションの本質部分に絞って開発できるので開発効率が向上するほか、アプリケーション全体の設計はまだ難しい経験不足の開発者でもアプリケーション開発を完遂できます。

  • 1. Webアプリケーションフレームワーク……ログインやユーザー登録、データベース操作などのWebサービスで頻繁に使われる機能が揃ったフレームワーク。
  • 2. GUIフレームワーク……グラフィカルなUIを作成できるフレームワーク。
  • 3. 機械学習フレームワーク……人工知能の開発に必要な機能が揃ったフレームワーク。

フレームワークは専門性の高い分野ごとに分けられていて、この3種がよく目にするフレームワークです。これらの分野のアプリケーション開発で多くのフレームワークが使われています。

またフレームワークと同じく開発効率を向上させる手段にライブラリという仕組みがあります。ライブラリは便利なプログラムを部品化して再利用するもので、1からコードを記述せずともさまざまな機能をアプリケーションに追加できます。この点でライブラリとフレームワークは似ていますが、決定的な違いは制御の主従関係にあります。

ライブラリの場合、ライブラリ自体はあくまで部品であり、メインのロジックは開発者が作成してそこからライブラリを呼び出すかたちになっています。一方フレームワークの場合、メインのロジックはフレームワーク中にあって、開発者が追加したコードがフレームワークに呼び出されて実行されるというかたちになっているのです。この制御の反転がフレームワークの大きな特徴です。

実現できること

  • ・アプリケーション開発の時間短縮。半完成品の状態から開発をスタートできます。
  • ・アプリケーションのバグを低減。自ら記述するコードが減るので、バグも低減します。
  • ・豊富な機能を持ったアプリケーションの開発。フレームワークにはとても多機能なものがあります。
  • ・容易なセキュリティ対応。フレームワーク側でセキュリティ要件を満たしていることがあります。
  • ・最先端技術への対応。フレームワーク側のアップデートで最先端技術へ対応すれば、すぐ恩恵を受けられます。

将来の展開

現在、多くのアプリケーション開発でフレームワークが活用されています。日々進化するWeb技術など、アプリケーション開発の技術要件が上がってきたこともあり、ますますフレームワークの重要性が高まっていくでしょう。

一方で、従来ならば厳密にはフレームワークと言えないライブラリ群も、現在フレームワークとみなされるようになってきていて、これからはアプリケーション開発に便利なソフトウェア群の総称がフレームワークと呼ばれるようになるかもしれません。

PAGE TOP