統合された環境としてのフレームワーク
 ・プログラミングにおけるアプリケーションソフトウェアなどの実装
必要となる一般的な機能や定型コードライブラリとして予め用意 

 呼び出し元としてのフレームワーク (例、Javaプログラム)
 ・一つのプログラムは、あるクラスのメソッドが別のクラスのメソッドを呼び出すことの連鎖によって動作
 ・プログラムの規模が大きいと、たいてい複数のクラスによく似た処理が存在する。
 ・複数のプログラムで使われる機能を共有(ライブラリ化、部品化など)すると楽
利用するライブラリのクラス(ライブラリ・クラス)やメソッド
 ・より規模が大きなプログラムで、ライブラリ・クラスが多くなる(数百、数千)とまた大変
数百・数千には、それぞれ使い方(ルール)やコツがあり、使う都度頭を悩ますのは非効率
 ・ルールやコツに従って他人が作成したライブラリ・クラスの呼び出し元となるクラス群があれば楽
呼び出し元となるクラス群:定石提供ライブラリ
 ・開発者は呼び出し先のクラスに対し、適切な呼び出し元のクラスを指定する。
呼び出し先のクラス:コンポーネント(ホットスポット)
適切な呼び出し元のクラス:フレームワーク(フローズンスポット)
 ・普通のクラスとフレームワークの境界線は曖昧
 ・例、コンポーネントが持つ複数のメソッドで、どの処理が定石で、どの処理がそうでないかも伝える。
具体的処理を持たない処理は抽象メソッドにし、そのクラスをフレームワークの一部に含める。


 Webアプリケーション
      jQuery    
      Spring    
      Django