1. UMLとクラス図


演習 1-1 (個人): クラス図を画像検索して見てみましょう。

「クラス図」で画像検索し、指定場所に「クラス図の画像」を貼り付けて下さい。


演習 1-2 (個人): 単一クラス図を描いてみましょう。

オブジェクト指向プログラミングの三大要素の演習で作成したOELM_2_2フォルダの中にある Score.java を開いて下さい。
任意のドローツールを起動します。
Score スーパークラスのクラス図を描いて下さい。フィールドの型、メソッドの戻り値、メソッドの引数、コンストラクタや getter/setter は省略して構いません。
「CDIAG_1_2」の名前で保存して下さい(拡張子はドローツールによります)。
指定場所に「画像」を貼り付けて下さい。


2. 汎化 (is-a 関係)


演習 1-3 (個人): 汎化のクラス図を描いてみましょう。

引き続き「OELM_2_2」のクラス図を作成します。
「CDIAG_1_2」をコピーして「CDIAG_1_3」に名前を変えて下さい(拡張子はドローツールによります)。
「CDIAG_1_3」を任意のドローツールで開いて下さい。
Taro、Hanako の単一クラス図を描いて下さい。
Score と Taro、Hanako を汎化の矢印で繋いで下さい。
指定場所に「画像」を貼り付けて下さい。


3. 関連

4. 集約 (has-a/part-of 関係)


演習 1-4 (個人): 「OELM_2_2」に集約を導入してみましょう

フォルダ「OELM_2_2」をフォルダ「CDIAG_1_4」に丸ごとコピーし、その中に移動します。
MyWorld.java を新規作成し、以下のソースコードを貼り付けてください。

public class MyWorld{

	private Taro taro0;
	private Taro taro1;

	private Hanako hanako0;
	private Hanako hanako1;
	private Hanako hanako2;

	public MyWorld() {

		System.out.println("MyWorldのコンストラクタ実行");

		this.taro0 = new Taro();
		this.taro1 = new Taro();

                this.hanako0 = new Hanako();
                this.hanako1 = new Hanako();
                this.hanako2 = new Hanako();

                // ※
		System.out.println("MyWorldのコンストラクタ終了");
	}

	public void show() {

                System.out.println( "taro0 の name = " + this.taro0.get_name());
                System.out.println( "taro1 の name = " + this.taro1.get_name());

                System.out.println( "hanako0 の name = " + this.hanako0.get_name());
                System.out.println( "hanako1 の name = " + this.hanako1.get_name());
                System.out.println( "hanako2 の name = " + this.hanako2.get_name());
	}
}

Main.java を開き、以下のソースコードに置き換えてください。

public class Main{

	public static void main(String[] args) {
		MyWorld myworld = new MyWorld();
                myworld.show(); 
	}
}

実行結果:

MyWorldのコンストラクタ実行
引数なしコンストラクタ実行
引数なしコンストラクタ実行
引数なしコンストラクタ実行
引数なしコンストラクタ実行
引数なしコンストラクタ実行
MyWorldのコンストラクタ終了
taro0 の name = たろう
taro1 の name = たろう
hanako0 の name = はなこ
hanako1 の name = はなこ
hanako2 の name = はなこ

実行します。
提出物はありません。


演習 1-5 (個人): 集約のクラス図を描いてみましょう。

「CDIAG_1_4」のクラス図を作成します。
「CDIAG_1_3」をコピーして「CDIAG_1_5」に名前を変えて下さい(拡張子はドローツールによります)。
「CDIAG_1_5」を任意のドローツールで開いて下さい。
MyWorld の単一クラス図を描いて下さい。
MyWorld と Taro、Hanako を集約の矢印で繋ぎ、多重度の数字を記述して下さい。
指定場所に「画像」を貼り付けて下さい。