Simple, Slowly

ブログを引っ越ししました。http://48.jp

モジュールとコンポーネントとライブラリとプラグインの違いとは

モジュールとプラグインとライブラリとプラグインの違いがよくわからなかったので、まとめてみました。

それぞれの特徴

それぞれの特徴を理解するために共通点と相違点を考えてみます。

まず、モジュールとコンポーネントですが、一度定義を確認してみましょう。

モジュールとは

機能単位、交換可能な構成部分という意味の英単語。システムへの接合部(インターフェース)が規格化・標準化されていて、容易に追加や削除ができ、ひとまとまりの機能を持った部品のこと。

http://e-words.jp/w/E383A2E382B8E383A5E383BCE383AB.html

コンポーネントとは

何らかの機能を持った、プログラムの部品。ソフトウェアコンポーネントは、それぞれ特定の機能を持っているが、基本的に単体では使用できず、他のプログラムと組み合わせて機能を実現、ないし追加するために用いられる。また、オブジェクトの一種として、特定の機能を持つが単独では意味を持たないようなオブジェクト、と言うこともできる。

http://e-words.jp/w/E383A2E382B8E383A5E383BCE383AB.html

共通点として「部品」というキーワードがあげられています。 モジュールとコンポーネントはプログラムを構成する部品と考えればよさそうです。

相違点として、モジュールは「容易に追加や削除ができ、ひとまとまりの機能を持った部品のこと」とあります。 コンポーネントには、容易に追加や削除ができるとの記述はないので、この点がモジュールとコンポーネントをわける特徴のようです。

次にライブラリです。

ライブラリとは

ある特定の機能を持ったプログラムを、他のプログラムから利用できるように部品化し、複数のプログラム部品を一つのファイルにまとめたもの。ライブラリ自体は単独で実行することはできず、他のプログラムの一部として動作する。

http://e-words.jp/w/E383A9E382A4E38396E383A9E383AA.html

ライブラリもモジュールやコンポーネントと同じく部品とのことです。
特性として、「複数のプログラム部品を一つのファイルにまとめたもの」とあります。

いまいちコンポーネントとの違いがよくわかっていないのですが、ライブラリは、部品をまとめたもののようです。 ということは、部品であるモジュールやコンポーネントを複数まとめて構成されているものがライブラリなのでしょうか。
(* この解釈は僕の推測なので、もし間違っていたら教えてください)

次にプラグインについて考えてみます。

プラグインとは

ITの分野では、ソフトウェアに機能を追加する小さなプログラムのことを指す場合が多い。 多くのソフトウェアには外部のプログラムを追加することで機能を拡張できるような機構を備えており、追加するソフトウェアのことをプラグイン(プラグインソフトウェア)という。ほとんどのプラグインは単体では動作せず、本体のソフトウェアに追加しなければ機能しない。プラグインはソフトウェア製作者が提供する場合もあるが、仕様が公開され、第三者が自由にプラグインを開発・公開できるようになっていることも多い。

http://e-words.jp/w/E38397E383A9E382B0E382A4E383B3.html(http://e-words.jp/w/E38397E383A9E382B0E382A4E383B3.html

プラグインはモジュールやコンポーネント、ライブラリとは少し違って、「小さなプログラム」とあります。
本体のソフトウェアにオプションとして追加するためのソフトウェアですね。
プラグインといえば、ワードプレスのプラグインがイメージしやすいと思います。

まとめてみたものの

それぞれの特徴について考えてみましたが、プロジェクトや人によっても解釈が変わるようです。
いったい誰がこんな紛らわしい概念を考えたのでしょうか。
まあ、そうはいっても無くなることはないので、気になった部分は自分なりに考えてみると何かしら気づきがあるかもしれません。