1. カメラ
  2. カーオーディオ&エレクトロニクス
  3. ホームオーディオ
  4. パーソナルオーディオ
  5. テレビ
  6. スマートホーム
  >> 電子技術オンライン >  >> スマートホーム >> スマートライフ

UML におけるパッシブ オブジェクトとアクティブ オブジェクトの違い

「Unified Modeling Language」または UML は、ソフトウェアがどのように編成されているかを示すために設計された言語です。エンジニアは、UML を使用してプログラム内の情報の流れを図式化し、簡略化または変更する方法をよりよく理解できるようにします。情報の流れをモデル化するとき、UML はその流れを開始できる「アクティブ オブジェクト」と開始できない「パッシブ オブジェクト」を区別します。

オブジェクトとクラス

いわゆる「オブジェクト指向」プログラミングに関して言えば、コンピュータ サイエンスでは「オブジェクト」と「クラス」を区別します。クラスは、変数やメソッドなどの一連のものの一般化された説明ですが、「オブジェクト」は、独自のプロパティを持つそのクラスの「インスタンス」です。クラスは設計図またはテンプレートと考えてください。物理的な世界では、「筆記具」はクラスと見なされる可能性があり、その特定のクラス タイプの「オブジェクト」の例として「ペン」または「オレンジ クレヨン」があります。

UML のオブジェクト

UML では、クラスとオブジェクトの同様の区別が維持され、同じ方法で表現されます。 UML クラスには広範な記述が含まれ、UML オブジェクトにはそれらの記述のインスタンスを表す特定の値が含まれます。したがって、形式的に言えば、UML の「アクティブ オブジェクト」は「アクティブ クラス」の任意のインスタンスであり、同様に「パッシブ オブジェクト」は「パッシブ クラス」のインスタンスです。理論的な意味では、これらの用語は、本質的に交換可能であること。

アクティブなオブジェクト

UML では、アクティブなクラス、つまりアクティブなオブジェクトは、独自の操作スレッドに存在し、独自のアドレス空間を持ちます。実行またはコード アクティビティがフローの観点から考えられる場合、アクティブなオブジェクトはそのフローを開始または制御できます。つまり、アクティブなオブジェクトはシーケンシャルで、変数の変更、プログラムの動作の変更などを行います。 UML では、アクティブなクラスとオブジェクトは、パッシブ オブジェクトよりも太い境界線で区別されます。

パッシブ オブジェクト

UML のパッシブ オブジェクトは、別のオブジェクトから呼び出されるまで待機する必要があるため、通常、実行フローを変更したり開始したりすることはできません。代わりに、パッシブ オブジェクトは一般に情報を格納するために使用され、多くの場合、この情報は複数の他のオブジェクト間で共有されます。これにより、パッシブ オブジェクトに順次アクセスするのではなく、同時にアクセスできるようになる場合があります。内部に含まれるデータの整合性が高いことを確認するために、UML ではパッシブ オブジェクトが順次アクセスされることを主張できます。 2 つのスレッドが同じシーケンシャル パッシブ オブジェクトを呼び出そうとすると、そのオブジェクトは、最初のスレッドが終了するまで 2 番目のスレッドを遅らせることができます。