ここに私のUMLのレッスンの宿題についての簡単な質問があり、私は私がやったかについてはよく分かりません。あなたは私にそれを修正取得するのに役立つ可能性があり、私はあなたの種類のアドバイスのためにとても感謝して次のようになります。
演習では、図書館システムのためのクラス構造を設計することです。これは、これらの要件を満たす必要があります。
- アンダー歳から大人まで - ユーザーの2種類があります。
- アンダー歳のユーザーは、自分の氏名と学生カードの利用で識別されています。
- 大人のユーザーは、自分の氏名とIDカードの利用で識別されています。
- 図書館は本を含んでいます。
- すべての本(タイトル、著者、等)に関する基本的な情報があります。
- ユーザーは、同時に最大4冊の本を借りることができます。
- すべてのユーザーのために、以前に借りた本の歴史は、(すべての日付と一緒に)があります
ここで私が作ったUMLダイアグラムは次のとおりです。
一見、図は、いくつかのコメントで、物語に対応します。
Borrow
クラスが呼び出される可能性Borrowed
やHistory
、両者を有するborrow
異なる目的のために同じ図には混乱の源であります- 借入のsonthe開始および借入であればリターン:このクラスは、すべての日付が必要になります。
- 関連の
borrow
所与の時点で4冊本の最大値を借りていることを示しています。しかし、最小値は(何のライブラリ、ユーザーは常に本を持っていることが義務付けされていない)0でなければなりません。往復動すべての書籍は、時間に現時点で借りているわけではない:それはなるだろうので0..1
今の図は、いくつかの問題を提起します:
- 現在借りている本は、すでに空の返却日を履歴に表示されていますか?
- ない場合は、どのように我々は、借入開始日を追跡します。
I didn’t follow your course, so I don’t know what the teacher expects. But here is how I’d modelled it:
- I’d used a many to many
borrow
association with an association class - the history information would be in the association class
- the limit of maximum four books borrowed would be expressed with a constraint.
Another problem is included in the narrative: what is when an underage user becomes adult ? Your realization relation implies that two different users would exist for the same person (the new adult would loose the history).
このような理由から、私が使用することをお勧めしたい相続上の組成を行いますuser
との完全なクラス、コンをIdentification
、そして2つの具象クラスを作成しadultIdentification
、underageIdentificztion
。underagedユーザーが大人になったときだから、あなたは識別の唯一の手段歴史や変更をユーザに保つ:-)