疎結合とは? わかりやすく解説

556の専門辞書や国語辞典百科事典から一度に検索! Weblio 辞書 ヘルプ
Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > 疎結合の意味・解説 

そ‐けつごう〔‐ケツガフ〕【疎結合】


疎結合

読み方そけつごう
【英】loose coupling

疎結合とは、細分化された個々コンポーネント同士結びつき比較的緩やかで、独立性が強い状態のことである。

疎結合では、個々コンポーネント同士相互に連携しているが、相互に依存している余地少ない。そのためコンポーネント間の連携をあまり顧慮せずそれぞれのコンポーネント交換した改良したりするような柔軟な対処を行うことができる。

疎結合に対して、このコンポーネントが密接に連携している状態は密結合呼ばれている。密結合状態のシステムは、動作高速であるが、一方コンポーネントが異常をきたしてしまうと他方コンポーネントその影響受けてしまう。

疎結合はマルチプロセッサシステムのようなハードウェア的なものから、アプリケーションソフトのようなソフトウェア的なものまで、幅広く見られる状態である。

プログラミングのほかの用語一覧
オブジェクト指向:  O/Rマッピング  サブクラス化  サブクラス  疎結合  スーパークラス  COM  多重継承

結合度

(疎結合 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/01/08 04:41 UTC 版)

結合度(けつごうど、カップリング、coupling)とは、コンピュータープログラミングで用いられる(機械よりは)人間寄りの尺度。ソフトウェア測定法の一種。利用者またはメンテナンスをする者にとって対象を利用、保守しやすいように対象の内容が整理、分割できているかどうかを、その状態によって段階に分けて表現する。

概説

コンピュータープログラマにとっては、既存のソフトウェア製品に対して 無い機能の追加、対応していないデータへの対応といった事柄に対応する場面がある。この際、全ての既存のソフトウェア製品の内部(より具体的にはソースコード)の各機能各データに対して、どのデータはどこで利用されまたどこで利用されていないか確実に判断できるよう整理、分割が行き届いている状態を結合度が低いと表現する。結合度は低いほど好ましい。逆に結合度が高いとは、例えば1つのデータの持ち方の変更が 部品の関連性を伝って波及し(遠く離れた、と感じる)意図しなかった箇所での不具合を招く。1つの変更に対して 広範囲かつ複数の散在した箇所の部品の動作を改造する必要が出てくることがある。

結合度の程度

結合度の概念モデル

結合度

結合度は、品質尺度であり、ソースコードを調査検討することで結合度の程度が分類される。高い結合度から低い結合度までを以下のように分類できる:

手続き型プログラミング

内容結合(Content coupling)「高」
病理学的結合とも呼ばれ、あるモジュールが別のモジュールの内部動作によって変化したり依存したりする(例えば別のモジュールの内部データを直接参照する)。したがって、あるモジュールのデータを生成する方法(場所、種類、タイミング)を変更することは、依存するモジュールの変更につながる可能性がある。
共通結合(Common coupling)
グローバル結合とも呼ばれ、二つのモジュールが同じグローバルデータ(例えば、グローバル変数)を共有する。共通のリソースを変更すると、それを使用したすべてのモジュールを変更することを意味する。
外部結合(External coupling)
二つのモジュールは、外部から供給されたデータ·フォーマット、通信プロトコル、またはデバイスインターフェイスを共有している場合に起こる。 これは基本的に外部ツールやデバイスへの通信に関連している。
制御結合(Control coupling)
あるモジュールに何をすべきかについての情報(例えば、処理を制御するためのフラグ)を渡すことで、別のモジュール処理の流れを制御する。
スタンプ結合(Stamp coupling)
複数のモジュールが複合データ構造を共有し、その一部のみを使用する(例えば、全レコードの中の1つのフィールドを必要とする関数に全レコードのデータの構造体を渡す)。異なる部分も使用可能。これは、モジュールが必要としないフィールドが変更されることにより、モジュールのレコードを読み取る方法を変更することにつながる可能性がある。
データ結合(Data coupling)
モジュールを介してデータを共有する場合、例えば、引数である。 各データは基本部分であり、これらは単純なデータの受け渡しのみを行う(例えば、数値を渡してその平方根を返す)。
メッセージ結合(Message coupling)「低」
最も結合度が低い結合の種類である。(引数のない)メソッドの呼び出し。メッセージパッシング。
無結合(No coupling)
モジュールが相互に全く通信を行わない。

オブジェクト指向プログラミング

サブクラス結合(Subclass Coupling)
子クラスとその親クラスとの間の関係で、子クラスは、その親クラスに依存しているが、親クラスが子クラスを知らない状態。子クラスが親クラスに依存しすぎると、親クラスを修正するのが難しくなる。
一時的結合(Temporal coupling)
あるメソッドが別のメソッドに依存すること(例えば、executeしないとerrorが取得できない)。

関連項目

  • 粒度 …結合度は、対象に含まれる全ての要素(粒)の結び付きの尺度である。結合度の高さ低さとは直接関係はしないが、基本的に 粒度が高い方が結合度を低くしやすく好ましい。
  • 凝集度 …結合度が低い方が、基本的に凝集しやすく好ましい。

疎結合

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/05/29 06:38 UTC 版)

Transaction Processing Facility」の記事における「疎結合」の解説

TPF複数台のメインフレームを共通のデータベース接続したシステムでも動作するTPFデータベース最大32台のメインフレーム共有可能である。最も単純な疎結合システムは、2台のメインフレームを1台のDASD (Direct Access Storage Device) に結合したのである。この場合制御プログラムは各メインフレーム置かれ、どのメインフレームからも同じデータベースアクセス可能である。 疎結合システムアクセスシリアライズするためレコードロックと呼ばれる手法使われる。これは、レコードをあるプロセッサ保持している場合、他のプロセッサが同じレコード保持しようとした際にそれらを待たせプロセッサ間で通信を行う方式である。密結合システムではレコードロックの状況共有メモリ上に書いておけばよいので簡単だが、疎結合システムではDASD制御装置での追加の処理が必要となる。歴史的にはこの機能RPQ個別対応)とされていた。そのため、RPQ対応されていないDASDでは、Coupling Facilityという別のレコードロック方式使われている。

※この「疎結合」の解説は、「Transaction Processing Facility」の解説の一部です。
「疎結合」を含む「Transaction Processing Facility」の記事については、「Transaction Processing Facility」の概要を参照ください。

ウィキペディア小見出し辞書の「疎結合」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「疎結合」の関連用語

疎結合のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



疎結合のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【疎結合】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの結合度 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのTransaction Processing Facility (改訂履歴)、マルチプロセッシング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS