シーケンス図:アクターはオブジェクトですか?


11

最も可能性の高い答えはノーですが、私はこの疑念を抱いています。俳優はクラスとして行動できますか?

アクターはイベントをトリガーし、プロンプトを表示できることを知っていますが、アクター(ユーザークラスなど)をモデル化するクラスがある場合、それらのメソッドを呼び出すことができますか?それとも、これは、代表クラスと混同されている俳優の役割の完全な誤解ですか?

正しいと仮定:

想定される正しい例

正しい場合は疑う:

ここに画像の説明を入力してください

回答:


8

UMLでは、アクターは常に、構築しているシステム/ソフトウェアの範囲外にあるもの(システムまたは人)です。アクターを、システム内のアクターの特定の側面をモデル化するクラスのインスタンス/オブジェクトと同一視することは完全に間違っています。

表示されているUMLダイアグラムでは、アクター「ユーザー」(スティック図アイコン付き)は、システムを操作する実際の人間を表しています。クラスUserは、あなたに関連する特性をキャプチャするその人物のモデルを表します。このクラスはシステム内にのみ存在します。
これにより、クラスとアクターは2つの別個のエンティティになり、ダイアグラムにそのように表示する必要があります。


「アクターは常に、構築しているシステム/ソフトウェアの範囲外のものです。」それにもかかわらず、アクターは、コールスタックを開始することにより、あるクラスのオブジェクトと直接対話します。したがって彼は、何らかの形、システムの一部(彼が最も可能性が高いクラス図によってモデル化されていないUI層から他の任意のクラスによって表されています)。これは最初は本当に直観に反するようで、おそらく一部の人々にとって混乱の原因です。
dvdblk

アクターは独立したエンティティです。システムが存在しない場合でも、アクターは存在します。アクターは、システムへの入力を開始、シャットダウン、さらには提供しますが、システムのタスクを実行するためにソフトウェアシステム内に座っていることはありません。システムはアクターとは独立して動作します。オブジェクトは実世界の俳優をシミュレートできますが、それでも人間の俳優に直接または間接的に起動、終了、および入力を依存します。
user2994783
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.