オブジェクトの広場はオージス総研グループのエンジニアによる技術発表サイトです

モデリング

モデリングカフェ 第18回:Web日記をモデリングする

モデリングカフェ「Square」~UMLでモデリングを愉しもう~
オージス総研 組み込みソリューション部
田中恒
2008年7月4日

毎回、身近にあるモノや出来事など、簡単な【お題】を出題し、皆様にモデリングをして頂きます。次回の記事で、皆様の解答モデルの中から3つほど取り上げて、コメントを付けていくかたちで進めていきます。

目次
  1. 前回の問題(国語辞典)
  2. 読者解答モデル - 本文で紹介できなかった解答モデル
  3. 解答例
  4. 今月号の問題 (出題)
  5. 解答モデルの送付について
  6. 参考文献

1.前回の問題( 国語辞典 )

前回の問題をもう一度確認しておきましょう。

【お題17】国語辞典

国語辞典をモデリングしてください。

じしょ(辞書)
[一] 多くの言葉や文字を一定の基準によって配列し、その表記法・発音・語源・意味・用法などを記した書物。(中略)。
辞典。辞彙(じい)。語彙。字書。字引。
[二] 仮名漢字変換方式のワード-プロセッサーにおいて、仮名に対応する漢字を登録しておくファイル。(後略)。
[三] 辞職の意を記した文書。辞表。

※三省堂「大辞林 第二版」より引用

不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。 解答はクラス図で表現して下さい。クラスには必要な属性を、関連には多重度を明記するのがポイントです (解答時間の目安は15分~30分です)。

ポイント解説

このお題では、例として示された「じしょ(辞書)」の部分をどのように見るかで大きく 2 つの見方があります。 1 つは「辞書(辞典)」とはどういうものかの解説として、もう 1 つは国語辞典に載っている項目の例としてです。 それぞれについて見ていきましょう。

最初に「辞書(辞典)」の解説として見ます。 切り口として[一]~[三]がありますね。 今回のお題は国語辞典ですので、[一]の切り口が適当でしょう。 ということで、[一]から分かることを抜き出してみます。

  1. 多くの言葉や文字を含む。
  2. 言葉や文字は一定の基準によって配列される。
  3. 言葉や文字の表記法・発音・語源・意味・用法などを記している。

これらは、国語辞典の論理的な構造や、そこに含まれている情報を示していますね。 何が何を含んでいるのかに注意して整理すれば、国語辞典とはどういうものかを示すことができるでしょう。

少し注意が必要なのは同義語です(同じ意味の異なる「単語」のこととします)。 単語によって表記法・発音は異なります。 語源も異なるかもしれませんね。 ですが、意味・用法は同じかもしれません。 情報が持つ性質の同じ部分、異なる部分をしっかり見極めて整理しておきましょう。

次に国語辞典に載っている項目の例として見ます。 概ね、次に示すことが分かります。

  1. 単語には発音、漢字表記がある。
  2. 単語には複数の意味がある。
  3. 単語には、ある意味において同義語がある。

1 と 2 は見たままです。 ですが、2 と絡んで 3 が少しやっかいです。 単語と単語の間に関係(同義語)があることはすぐに分かりますが、どの意味かによって単語間の繋がり方が変わってきます。 例えば、[三]の意味での同義語「辞表」は、[一]の意味では同義語になりません。 つまり、同義語は単語と単語の直接的な関係ではなく、それらの意味を通じての関係ということですね。 ところで、同義語があればきっと類義語や反意語もあるでしょう。 どのような関係になるでしょうか?

ここまで、例の部分の 2 つの見方を示してきました。 総じて言えば、「単語」と「意味」の関係の整理がポイントになります。 面白い点は、同義語(や類義語、反意語)をどのように捉えるかでしょう。

少しいやらしいお題の出し方だったかもしれませんね。

2. 読者解答モデル

いつものように、当カフェのマスターとヒトクセある!?常連たちと一緒に解答モデルを見ていきましょう。 コーヒーなどを飲みながら、皆様も一緒にわいわいやる感じで考えてみてください。

読者解答1:山下潤 様

  • コンセプト
    • 国語辞典のイメージは、小学生が初めて使用するものとした。
    • 国語辞典は、五十音順の索引がついているので、「索引」クラスを追加した。
    • 国語辞典で調べたい言葉は、「項目」クラスとして定義した。
    • 国語辞典の「項目」には、複数の「意味」が存在する。「項目」の意味合いの使用頻度順に「意味」が記されていると仮定し、「使用頻度」クラスを定義した。
    • 国語辞典で調べたときの内容については、「意味」クラスとして定義した。
    • 国語辞典でも、動物の絵や図が挿入されている「項目」が存在したため、それぞれ、「絵」クラスと「図」クラスを定義した。
    • 国語辞典には、品詞(名詞・動詞・形容詞・・・)が表示されているので、「品詞」クラスを定義した。
  • モデル
    • クラス図
      図 1 山下潤 様の解答モデル(クラス図)
      図 1 山下潤 様の解答モデル - クラス図

  • 感想
    • 難しかったところ

      多重度を含めた関連で悩んだ(多重度は苦手です)。 『意味』クラスと『品詞』クラスの関連は 1 対 1 なので、コンポジット表記にすべきか否かで悩んだが、とりあえず、1 対 1 の関連にした。

    • モデルについて自己評価

      クラスのネーミングはイマイチですが、多重度が合っていればそこそこの出来(80 点ぐらい)ではないかと思っています。

  • コメント
    唐沢さん   「索引」に注目されていますね。
     
    マスター   そうですね。索引は辞書を引くときに重宝しますから。
     
    久本くん   索引というと、本の後ろにあるものですか?
     
    吉井さん   この場合、ページの開く方の端にある、"あ"とか"い"とか先頭の音ごとの印じゃないかな。
     
    久本くん   あ、あれですね。本を閉じていても帯が段々に見えるのが不思議でした。
     
    マスター   "あ"の索引には、"あ"から始まる「項目」(言葉)がたくさん含まれているということですね。
     
    唐沢さん   ええ、でも「項目」には複数の「使用頻度」があるというのはどういうことでしょう。
     
    久本くん   コンセプトを読むと、『「項目」の意味合いの使用頻度順に「意味」が記されている』となっていますよ。
     
    吉井さん   この文章には『「項目」には複数の「意味」がある』 『「意味」には使用頻度がある』 『使用頻度で「意味」の順番が決まる』と3つくらいのことが含まれているね。
     
    唐沢さん   『「意味」には使用頻度がある』を素直に表現すれば、使用頻度は「意味」クラスの属性になるでしょう。
     
    マスター   「使用頻度」と「意味」の関係が 1 対 1 になっていることからも、属性で良さそうですね。
     
    久本くん   そうしたら『「項目」には複数の「意味」がある』も素直に表現できますね。
     
    吉井さん   じゃあ、順番が決まることはどう表現する?
     
    久本くん   { ordered } の制約を付けます。
     
    マスター   そうですね。(図 2)
     
    図 2 使用頻度の表現(例)
    図 2 使用頻度の表現(例)
     

     
    吉井さん   「品詞」についてはどう? 「意味」ごとに「品詞」があるんだろうか?
     
    唐沢さん   細かく見れば、同じ言葉でも品詞が異なる使い方をすることもあるでしょう。
     
    マスター   しかし素直に考えると違和感がありますね。複数の意味があっても、名詞は名詞、形容詞は形容詞のような気がします。
     
    久本くん   「項目」に「品詞」があるのが自然かなぁ。
     
    吉井さん   どういう状況を考えたのか、もう少し知りたいところだね。
     

     
    久本くん   「意味」に「図」や「絵」があるというのは面白いですね。モデルからは、なんだかたくさんの図や絵があるような印象を受けます。
     
    マスター   きっと小学生のお子さんがいらっしゃるんでしょうね。お子さんが使われている国語辞典が、思ったより図や絵が多かったのではないでしょうか。
     
    唐沢さん   百聞は一見にしかず、言葉だけではなかなか伝えられないものも、図や絵を使えば伝えられます。
     
    吉井さん   モデルのメリットもそこだよね。
     
    マスター   ところで、「図」と「絵」が区別されていますが、違いはどこにあるのでしょうか。
     
    唐沢さん   ここからだけでは分からないです。
     
    久本くん   どちらも意味を補足する画像ということじゃないですか?
     
    吉井さん   そう考えたら同じかもしれないね。
     

     
    マスター   多重度が苦手ということなのですが、アドバイスはありますか?
     
    唐沢さん   必ず、インスタンスを考えることですね。
     
    吉井さん   そして、可能な限りオブジェクト図を描いた方が良いね。頭の中だけでは曖昧なまま誤魔化しちゃったりするから。
     
    久本くん   そうですね。ちゃんと描くと誤魔化しが利かないので、曖昧なところが分かります。
     

読者解答2:ありゅ~ 様

  • コンセプト
    • 国語辞典にはさまざまな単語とその説明などが記載されている。
    • 単語は 50 音順に収録されている。
    • 一つの単語には複数の説明が存在する場合もある。
    • 説明は語源、意味、用法、図、などから構成される。
      • 説明は他の項目への参照を含むことがある。
  • モデル
    • クラス図
      図 3 ありゅ~ 様の解答モデル(クラス図)
      図 3 ありゅ~ 様の解答モデル(クラス図)

    • オブジェクト図
      図 4 ありゅ~ 様の解答モデル(オブジェクト図)
      図 4 ありゅ~ 様の解答モデル(オブジェクト図)

  • 感想
    • 難しかったところ

      "辞典"まで抽象度を上げたかったが、コンセプトが難しくなりそうなので国語辞典のままとしました。

    • モデルについて自己評価

      国語辞典としてはそれなりに表現できていそうに思います。85 点。

  • コメント
    マスター   『単語は 50 音順に収録されている』ということで、やはり索引に注目されています。
     
    久本くん   50 音順というのを { ordered } で表現していますね。
     
    吉井さん   そうだね。でも、惜しい。あと一息というところかな。
     
    唐沢さん   ちょっとしたことなのですが、「項目」を見たときにそれが感じられません。
     
    久本くん   どういうことですか?
     
    吉井さん   本当にちょっとしたことなんだけどね。「項目」に 50 音を表すような属性、例えば「よみ」見たいな属性があるとよりはっきりしないかな。
     
    マスター   なるほど。50 音順とノートが付いていますが、そうだとすると「項目」には 50 音で順序付けるための情報が必要ですね。
     
    久本くん   そうか。でも「単語」という属性がそれなのかもしれませんよ。
     
    吉井さん   どうだろうね。オブジェクト図を見てもはっきりとはしないね。
     

     
    久本くん   『他の項目への参照』って何ですか?
     
    マスター   お題で言うと、「辞典」や「字引」ですね。
     
    唐沢さん   この場合は同義語のことでしょう。同義語が「項目」間の関係でないところは深いです。
     
    吉井さん   そう。「項目」同士が繋がっているのではなく、間に「説明」が入ってる。
     
    マスター   「項目」同士を繋げてしまうと問題がありますか?
     
    唐沢さん   ええ。あります。
     
    久本くん   同義語って、同じ意味の語ですよね。単語同士の関係じゃないんですか?
     
    吉井さん   お題で[三]のときの同義語は何?
     
    久本くん   「辞表」です。
     
    マスター   「辞表」は[一]のときには同義語にならないですね。なるほど。
     
    吉井さん   そう。ある説明、というかある意味かな、ある意味の場合には同義語になるけど、別の意味だとならない場合がある。
     
    久本くん   確かにそうですね。辞表を引くなんて言ったら意味が分からないです。
     
    唐沢さん   ええ。ですから、「項目」同士の関係で同義語を表現すると問題があります。「辞書」と「辞表」は同義語です、というのは、[三]の意味の時だけですから。
     
    久本くん   ふむふむ・・・参照を表現している関連の「説明」側の多重度は 1 であってますか?
     
    マスター   1 の場合、ある「項目」がどこかの「説明」で一度参照されていると、他の「説明」から参照することはできませんね。
     
    吉井さん   本当だね。説明側の多重度はおかしいかもしれないね。
     

読者解答3:しのらっぱ 様

  • コンセプト

    調べたい言葉を人は調べる。

  • モデル
    • クラス図
      図 5 しのらっぱ 様の解答モデル(クラス図)
      図 5 しのらっぱ 様の解答モデル - クラス図

    • オブジェクト図
      図 6 しのらっぱ 様の解答モデル(オブジェクト図)
      図 6 しのらっぱ 様の解答モデル(オブジェクト図)

  • 感想
    • 難しかったところ

      反意語がある。

    • モデルについて自己評価

      難しかった。

  • コメント
    久本くん   オブジェクト図が面白いですね。「人」のインスタンスが「スペイン人」とか「イタリア人」とか。
     
    マスター   外国の方が日本語を勉強する状況を思い描いていらっしゃるのでしょうか。
     
    吉井さん   コンセプトに『人が言葉を調べる』とあるからそうかもしれないね。
     
    久本くん   そういえば、最近国語辞典を使ってないです。
     
    マスター   日本人が国語辞典を使わなくなってきているのでしょうか。
     
    唐沢さん   今は Web ですぐに調べられますから、そうかもしれません。
     

     
    吉井さん   「反意語」に注目しているのは興味深い。
     
    唐沢さん   しかし違和感があります。「反意語」も「言葉」でしょう。
     
    マスター   オブジェクト図を見てみましょう。
     
    唐沢さん   「反意語」クラスのインスタンスに「平凡」があります。"平凡"を調べようと思ったときには「言葉」クラスのインスタンスになるのでしょうか。
     
    久本くん   動的分類・・・
     
    唐沢さん   そんな難しいことを考えなくても、"平凡"は「言葉」だと考えられませんか?
     
    マスター   素直に考えれば"平凡"というのは「言葉」だと思いますね。
     
    吉井さん   じゃあ、逆に考えてみようか。国語辞典のどういう側面に注目すると、「言葉」と「反意語」が区別されるのだろう?
     
    久本くん   ・・・どう考えたら良いのでしょう。
     
    マスター   「言葉」クラスのインスタンス「平凡」と、「反意語」クラスのインスタンス「平凡」は違うモノということですね。
     
    吉井さん   何が違う?
     
    久本くん   えと・・・(手元の国語辞典を眺めながら)・・・書いてある場所、欄が違います。
     
    吉井さん   そうだね。国語辞典に書いてある場所、構成というか書式に注目すると、「言葉」と「反意語」は異なるように見えるよね。
     
    唐沢さん   つまり、国語辞典の書式に注目してモデリングされているということですか。
     
    吉井さん   多分だけどね。
     
    マスター   確かに、外国人に国語辞典の使い方を説明するような場合には、この位置に書いてあるのは反意語です、のようになりますね。
     
    久本くん   そうですね。コンセプトでも『言葉を調べる』とあるので、国語辞典の使い方、読み方を想定されているのかもしれません。
     
    吉井さん   うん。モデリングするときには、どのような立ち位置からどのような側面に注目しているのかを定めることが大切だね。それによって物事の見え方は変わってくるから。
     

3. 解答例

解答例としまして、当カフェのマスターのモデルを紹介致します。 コンセプト次第でモデルは変わりうるものですから、 正解としてではなく、1つの考え方としてご覧ください。

  

解答例 1

  • コンセプト

    問題文から、国語辞典の情報を抜き出して整理する。

    1. 辞書には多くの言葉や文字がある。
      • 国語辞典には多くの「単語」があると考える。
    2. 「単語」は一定の基準によって配列されている。
    3. 「単語」には「表記法」「発音」「語源」「意味」「用法」がある。
      • 「表記法」「発音」「語源」はその「単語」固有のものであるとし、属性で表現する。
      • 略字体や送り仮名など、異なる「表記法」がある場合を考えない。
      • 別の発音も考えない(例えば、受容を「じゅよう」「うけいれ」)。
      • 「意味」はある「単語」に複数ありえる。また、ある「意味」の「単語」も複数ありえる(同義語)。
      • 「用法」は「意味」毎にある。
  • モデル
    • クラス図
      図 7 解答例 1 のクラス図
      図 7 解答例 1 のクラス図

    • オブジェクト図
      図 8 解答例 1 のオブジェクト図
      図 8 解答例 1 のオブジェクト図

  

解答例 2

  • コンセプト

    解答例 1 に加え、反意語をモデリングする。

    • 反意語は、「単語」間の関係ではなく、「単語」が持つ「意味」間の関係(意味が反対)である。
      • 例えば、「冷たい」の反意語は、物の温度という意味においては「熱い」である。人の愛情や思いやりという意味においては「あたたかい」である。
  • モデル
    • クラス図
      図 9 解答例 2 のクラス図
      図 9 解答例 2 のクラス図

    • オブジェクト図
      図 10 解答例 2 のオブジェクト図
      図 10 解答例 2 のオブジェクト図

4. 今月号の問題 (出題)

今月号の問題です。モデリングの進め方については、第 1 回のモデリングの進め方を参照してください。

【お題18】Web 日記

以下の状況を読んで、Web 日記をモデリングしてください。

『Square 日記サービス』では、会員になることで以下のサービスを受けられます。

  • 会員は日記を書くことができます。テーマ毎に複数の日記を書くこともできます。
  • 日記は日付単位で更新できます。
  • 会員は、別の会員の日記にコメントを付けることができます。

不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。 解答はクラス図で表現して下さい。クラスには必要な属性を、関連には多重度を明記するのがポイントです (解答時間の目安は15分~30分です)。

5. 解答モデルの送付について

解答モデルの送付についてをご覧ください。
なお、今月号は第 18 回です。 締め切りは 2008 年 8 月 21 日 (木) です。

解答例掲載は 2008 年 9 月号 ( 2008 年 9 月上旬 ) を予定しています。

6.参考文献

本連載では、文献[1]をベースに、より気軽にモデリングを愉しんでいただけるテイストにしております。 モデリングに関するしっかりした解説が欲しい場合には、以下の書籍をご覧になると良いと思います。

  1. 「思考系UMLモデリング即効エクササイズ モデ力を鍛える13の自主トレメニュー」、渡辺博之他、翔泳社
  2. 「UMLによるオブジェクト指向モデリングセルフレビューノート」、荒井玲子著、ディーアート
  3. 「UMLモデリングの本質」、児玉公信著、日経BP社

改訂履歴

  • サイトテンプレート変更に伴う変更(2021年7月)