コンポーネント(コンポーネントウェア)とは何か?コンポーネント指向や、そのもとになった「分割統治法」や「単一責任の原則」も含めて解説

2022年9月5日

この記事では、「コンポーネントとは何か」や「コンポーネント指向開発の考え方」について解説していきます。

コンポーネントとは

コンポーネントとは、ソフトウェアやシステムを構成する部品のことを指します。
多くの場合、1つのシステムは複数の機能を持っています。
たとえば、スーパーマーケットにあるレジのシステムなら「投入されたお金を集計する機能」「合計金額をモニターに表示する機能」という具合に、複数の機能が組み合わさることで、1つのレジというシステムができ上がっています。
システムを開発する際は、これらそれぞれの機能を「部品」として開発することが基本となります。
機能を部品として開発することで、再びその機能を使用して別のシステムを作ることができます。

この部品化したシステムの機能のことを「コンポーネント」と呼びます。
また、この部品のことを、ソフトウェアやハードウェアといった呼称にならって、「コンポーネントウェア」と呼ぶこともあります。
コンポーネントとは、一般的な部品のように目に見えるものだけではなく、ある特定の機能をもった「プログラム部品」を指す言葉です。

コンポーネント指向

コンポーネント指向とは、機能ごとに小さな部品(コンポーネント)をたくさん用意し、それを組み合わせて開発を行う考え方です。
コンポーネント指向で開発を行うことで、技術を部品として蓄積できるため、将来的に別のシステムを開発する際にスムーズに開発を進めることができます。
また小さな部品(コンポーネント)を再利用して、新たなシステムを作ったり、現行のシステムを拡張したりすることもできます。
システムの修理を行う必要が出てきた際も、コンポーネント指向で細かな部品に分かれている場合、修正場所の特定がしやすく、修正による影響範囲も限定されるため、スムーズに修正を行うことができます。
コンポーネント指向の概念は、次に説明する「分割統治法」「単一責任の原則」という考え方をもとに作られてきました。

分割統治法

コンポーネント指向のもととなる考え方の一つに「分割統治法」があります。
分割統治法は、大きな問題を小さな問題に分割し、その一つひとつを解決することで、最終的に最初の大きな問題を解決することに繋げる、という問題解決の手法です。
もとは数学の問題解決手法でしたが、システム設計においても分割統治法の考え方は使われています。

単一責任の原則

単一責任の原則とは、1つのコンポーネント(部品)がやるべきことは、一つに限定するべきであるという、ソフトウェア設計の考え方です。
コンポーネント指向では、いろんなことができる大きな部品を作るのではなく、一つのことだけをする小さな部品をたくさん作ります。
コンポーネントを小さくすることで、それらを組み合わせてシステムを作り上げるときに、より柔軟に制約が少なく設計を進めることができます。

コンポーネントに関する用語

ここでは、コンポーネントに関連する用語をいくつか紹介していきます。

JavaBeans

Javaのプログラムにおいて、よく使われる機能を部品化し、再利用できるようにコンポーネント化するための仕様です。

React

コンポーネント指向の考え方を用いたウェブアプリケーション開発用のJavaScriptライブラリです。
コンポーネント指向を用いたReactでは、従来のJavaScript のフレームワークであるjQueryなどよりも開発の工数を減らすことができると言われています。

まとめ

  • コンポーネントとは、ソフトウェアやシステムを構成する部品のことを指します。
  • コンポーネント指向で開発を行うことで、再利用性を高め、開発をスムーズに進めることができます。
  • コンポーネント指向で開発を行う際は「単一責任の原則」により、なるべく小さな部品を作ることが、再利用性を高めることに繋がります。

参考