モジュール(もじゅーる)情報システム用語事典

module

» 2009年12月19日 00時00分 公開
[@IT情報マネジメント編集部,@IT]

 建築・製造・ソフトウェアをはじめとする各種の工学分野における設計上の概念で、一定の基準に則して作られた規格部品やサブシステムのこと。

 建築の世界では寸法や強度などが規格化された建材をモジュールといい、工業製品の世界ではある程度のまとまりを持つ機能ユニットとして半独立に設計可能で、半自律的に動作する標準部品を指す。ソフトウェア開発の世界では相互依存性をできるだけ排除したソフトウェアの開発単位をモジュールという。

 ソフトウェア分野で最初にモジュールの必要性を唱えたのは、デビッド・L・パルナス(David Lorge Parnas)である。パルナスは1972年の論文『On The Criteria To Be Used in Decomposing Systems into Modules』で、複数の開発者が分担してプログラミングする際の作業単位としてモジュールを導入した。相互依存関係にあるソフトウェア機能を別々の人間が担当すると調整のためのコミュニケーションが必要になるが、調整の必要性は機能の相互依存度に対して等比級数的に高くなるため、何の配慮もせずに大規模ソフトウェアを分担開発しようとすると単に調整コストが高まるばかりではなく、事実上開発が不可能になる。

 そこでソフトウェアを機能的に意味あるまとまりに整理することで、ソフトウェアシステムの構成要素同士の相互依存性を低くする存在として提唱された単位がモジュール(ソフトウェア・モジュール)である。モジュールとして作られたプログラムを外部から利用するときには、参照元である外部プログラム(およびそのプログラマ)は参照先プログラムについては最小限の問い合わせ規則だけを知っていればよい(情報隠ぺい)。

 モジュール設計はソフトウェアの設計を行う際の最も重要な基本原理の1つとされ、モジュール度(モジュラリティ)の度合いはソフトウェアの開発生産性・保守性や品質にも影響を及ぼすものとして重視される。モジュール度の高低を示す尺度としては、エドワード・ヨードン(Edward Yourdon)、ラリー・L・コンスタンチン(Larry L. Constantine)、グレンフォード・J・マイヤーズ(Glenford J. Myers)らが「凝集度」と「結合度」を導入している。彼らはこれらを発展させて、構造化設計を体系化している。

参考文献

▼『高信頼性ソフトウェア――複合設計』 グレンフォード・J・マイヤーズ=著/久保未沙、國友義久=訳/近代科学社/1976年3月(『Reliable Software Through Composite Design』の邦訳)

▼『ソフトウェアの複合/構造化設計』 グレンフォード・J・マイヤーズ=著/國友義久、伊藤武夫=訳/近代科学社/1979年1月(『Composite/Structured Design』の邦訳)

▼『ソフトウェアの構造化設計法』 エドワード・ヨードン、ラリー・L・コンスタンチン=著/原田実、久保未沙=訳/日本コンピュータ協会/1986年10月(『Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design』の邦訳)


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ