コンテンツにスキップ

オブジェクトの抽出

学校名簿アプリケーションを例とする。

アプリケーションのタスクを抽出する

  • ある生徒が所属している部活を確認する
  • 野球部の顧問教師の電話番号を確認する
  • ある生徒が何組かを確認する
  • 2年B組の担任を確認する

「名詞」を抽出する

それぞれのタスクの文言から名詞を探す。

  • ある生徒
  • 部活
  • 野球部
  • 顧問教師
  • 電話番号
  • 何組
  • 2年B組
  • 担任

その際に、ユーザーの関心の対象となる概念は何か考える。単純に名詞を抜き出すのではない。

「名詞」とそれらの関係を抽出する

名詞同士の関係を整理する。


flowchart LR
    seito1[ある生徒] === 部活
    野球部 === 顧問教師 === 電話番号
    seito2[ある生徒] === 何組
    2年B組 === 担任

「名詞」を汎化し、粒度を揃える

名詞から共通項を見つけて、何か別の1つの名詞にできないかを考える。


flowchart LR
    seito1[生徒] === bu1[部]
    bu2[部] === kyouin1[教員] === 電話番号
    seito2[生徒] === kumi1[組]
    kumi2[組] === kyouin2[教員]

「名詞」の関係性をつなげ、オブジェクトを特定する


flowchart
    生徒 === 部
    部 === 教員 === 電話番号
    生徒 === 組
    組 === 教員

オブジェクトの中で「メインオブジェクト」になるものを特定する

オブジェクトの優先度を考える。

この例では複数のオブジェクトの中から部、生徒、教員、組をメインオブジェクトとして扱うようにして、電話番号はサブオブジェクトとみなしている。

メインオブジェクトの多重性を特定する


classDiagram
    生徒 "*" -- "*" 部
    部 "*" -- "1" 教員
    生徒 "*" -- "1" 組
    組 "1" -- "1" 教員

メインオブジェクトに付随するオブジェクトをプロパティとする

サブオブジェクトをプロパティとして、メインオブジェクトと関連付ける。


classDiagram

    class 生徒 {
        氏名
        成績
    }
    class 部 {
        名称
        カテゴリー
        生徒数
    }
    class 教員 {
        氏名
        電話番号
    }
    class 組 {
        名称
    }

    生徒 "*" -- "*" 部
    部 "*" -- "1" 教員
    生徒 "*" -- "1" 組
    組 "1" -- "1" 教員

タスクからアクションを見つける

あとで書く