依存関係 【dependency】 依存性 / ディペンデンシー
ソフトウェア間の依存関係
ソフトウェアやプログラミングの分野では、あるプログラムのビルドや実行のために、別のプログラムが必要であることを依存関係と呼ぶ。
例えば、あるプログラムが別のモジュールの機能を利用しており、実行ファイルにビルドするには開発環境にそのモジュールを導入する必要がある場合や、実行ファイルが外部の動的リンクライブラリ(DLL)の機能を呼び出すようになっており、実行環境にライブラリを導入する必要がある場合などが該当する。
あるプログラムが依存するプログラムを取り寄せ、そのプログラムが依存するプログラムを取り寄せ…という作業を必要なプログラムが揃うまで繰り返す作業を「依存関係の解決」という。ビルドツールやパッケージ管理システムなどの開発ツールには、プログラム間の依存関係を自動的に認識して解決する機能を内蔵しているものもある。
タスク間の依存関係
プロジェクト管理などの分野では、ある作業Bを始めるためには別の作業Aが完了している必要があるという関係のことを依存関係という。例えば、設計図が完成しないと製造を始められない、部品の製造と取り寄せが終わらないと完成品の組み立て工程に入れないといった関係が該当する。
プロジェクトの開始から終了までのタスクを、依存関係に従って矢印で結んで図示したものを「PERT図」あるいは「アローダイアグラム」という。途中で並行に進められる(互いに依存関係が無い)タスクが存在する場合があるため開始から終了までの経路は複数に分かることがあるが、様々な経路のうち所要時間が最も長いものがプロジェクト全体の工期となる。このような経路を「クリティカルパス」という。
(2021.5.26更新)