web-dev-qa-db-ja.com

クラス図のユースケース-どうすればよいですか?

私のUSEケース図からクラスとその関係(一般化、関連付け、集計、構成)を正確に作成する方法についてのガイダンスをお願いします(以下を参照してください)。

このクラス図を作成して、簡単なオンラインPHPアプリケーションを作成するために使用できるようにします。これにより、ユーザーはアカウントを登録し、ログインおよびログアウトし、データを保存、検索、および取得できます。 MySQLデータベース。

私のクラスは正しいですか?または、さらにクラスを作成する必要がありますか?もしそうなら、どのクラスが欠けていますか?登録、ログイン、ログアウト、search_database、add_to_databaseをユーザーに接続する場合、どのような関係を使用すればよいですか?

私はデザインパターンとUMLクラス図は初めてですが、私の理解では、関連関係は1つのオブジェクトを別のオブジェクトと関連付けています。集約関係は、「一部」が複数の「全体」に属することを可能にする特別な種類の関連付けです(たとえば、クレジットカードとそのPIN-the PINクラスはデビットカードクラスでも使用できます);そして、コンポジション関係は、各パーツが一度に1つの全体にのみ属することを可能にする特別な形式の集約です。

関係の理解から関係を見つけることができないので、いくつかのクラスや何かを省略したような気がします。

どんな援助でも本当に感謝します。前もって感謝します。

ユースケース図

alt text

ユースケースの説明:

登録すべてのユーザーが登録することでアカウントを作成できます。システムはユーザー名とパスワードを検証し、欠落しているか、ユーザー名が既に使用されている場合は拒否します。

Login登録済みのユーザーのみログインできます。ユーザー名とパスワードは、アカウントの登録時と同じ方法で検証されます。

データベースの検索すべてのユーザーがデータ型文字列の検索キーを入力でき、システムがデータベースを開き、検索キーを検索して、trueまたはfalseを返します。 searchkeyが見つかったかどうかで、データベースを閉じます。

データベースにデータを追加しますすべてのユーザーがデータを入力でき、システムがデータベースを開き、データを保存し、trueまたはfalseを返します。データが保存されたかどうか、データベースを閉じます。

Logoutユーザーはログアウトボタンを押し、システムはユーザーをログアウトします

データベースから削除データベースからデータを削除できるのは管理者だけです。

通常のユーザーを削除します通常のユーザーを削除できるのは管理者のみです

クラス図

alt text

14
Anthony

まず、モデリングの道を進むと決心している場合は、RosenbergとStephensの本 MLを使用したケース駆動型オブジェクトモデリング をお勧めします。これは正確にあなたが説明しているプロセスを通過します:良いユースケースを書く方法、それらからクラス図を作成する方法、そこからシーケンス図を作成する方法、そして(ta-da!)それを動作するソフトウェアにコード化する方法。 ICONIXプロセスのためにGoogleにアクセスして詳細をオンラインで見つけることができる場合があります。

いくつかのカジュアルなコメント:

  • ユースケース図の「図」は、ユースケースのleastの便利な側面です。図のすべての楕円は、何が起こっているかを物語る1段落または2段落のテキストを表しています。本当に役立つのはそのテキストです。
  • 通常、ユースケースには名詞のクラスと動詞のメソッドがあります。いくつかの動詞(Add_data_to_databaseLogout、...)はメソッドではなくクラスです。
    • コマンドパターンを奨励するフレームワークを使用すると、この種のことが発生する場合があります。それでも、コマンドオブジェクトは実際のクラスのメソッドを呼び出すことができます。
    • 名詞が不足していると思います(データベースにはどのような種類のデータを格納していますか?)。それがあれば、Userとそれらのデータクラスとの関係がわかります。
11
leedm777

UC図は問題ないようです。

デイブからのコメントに同意します。それに加えて、そのようなUCダイアグラムに対応するクラスダイアグラムを作成するための私のアイデアもお見せしたいと思います。 (示されている要点だけです。)

class diagram

2
Tin

EssWorkをダウンロードしないでください。 Essworkはオープンソースで、アジャイルプラクティスベースであり、ユースケースを作成したIvar Jacobson Intによって作成されました...それらは、Essential Useケースプラクティスと呼ばれるそこでのプラクティスであり、要件をクラスに分類する方法を説明します...

1
ZyberIT

enter image description here

上記のシナリオのオブジェクトモデル(クラス図)を、クラス、その属性、および関連する機能を特定することによって描画する必要があります。
構成、集約、継承などのさまざまなクラス間の関係を示す必要があります。