0


0

C#でのUMLマッピング

STUDENTとLECTURERの2つのクラスを考慮して、c#で集約と構成をマッピングする方法を教えてください。

例として、VSクラスデザイナーを使用して、クラス間の関連関係を生成しました。LECTURERとSTUDENT_SOCIETYの2つのクラスを検討してください。クラスデザイナーは次のコードを生成します。 ブロッククォート

public class Lecturer
{
    private string Name;
    private string Specialization;

    public StudentSociety StudentSociety
    {
        get
        {

        }
        set
        {
        }
    }


}

public class StudentSociety
{
    private int Name;
    private string NoOfMembers;
}

同じように、どのように集約と構成をモデル化できますか

2 Answer


1


さらに情報が必要です。 ドメインモデルをUMLダイアグラムにマップしますか? 通常、それは他の方法で起こります(最初に図を作成し、次にコードオブジェクトとしてモデルを生成します)。 これを行うためのC#または「バニラ」Visual Studioには何も組み込まれていません。ただし、MS Visio(「プロフェッショナル」レベルのOfficeインストールの一部)は、ダイアグラムからコードに戻ったり、戻ったりすることができ、VSと統合してこれを実行できます。 最後にVisioで働いたのは、「純粋な」UMLではありませんでした。ダイアグラムスキームの組み合わせから借用したダイアグラムシンボル。 ただし、モデルの読みやすいグラフィック表現が得られ、そこで行った変更はコードオブジェクトとして再送信できます。

これらの関係を実際に決定する限り、一般的に多対多であり、使用可能な一対多の関係の統一コンテキストは「コース」または「サブジェクト」の「クラス」または「セクション」です。 単一のコースには多くのセクションがあります。 各セクションには1人の講師と多くの学生がいます。 同じ学生が複数のセクションに参加でき、同じ教師が複数のセクションを教えることができます。 つまり、講師と受講者の両方が教える/出席するセクションのリストを持つことができます(オブジェクトグラフの周囲を任意の方向にナビゲートできる「双方向」ドメインモデルが必要な場合)。


1


通常、構成は永続的であり、1つのクラスを別のクラスに完全に含めることで表されますが、集約には何らかの割り当てまたはリンクが含まれます。

したがって、講師が多くの学生の構成に責任があると仮定すると、次のようなものになります。

Public class Lecturer
{
    public class Student
    {
        string mName = "";
... etc.

一方、集約は次のようになります。

Public class Lecturer
{
    ... Some code ...
}

Public class Lecturer
{
    Student mStudent;

    public void setStudent(Student theStudent)
    {
        mStudent = theStudent
    }

... etc.

あなたの宿題に良い点がついたら教えてください…​ ;)