• 締切済み

ループ状システムのUMLでのモデリング

encyの回答

  • ency
  • ベストアンサー率39% (93/238)
回答No.7

# まだ見てますか? クラス図を作成する場合、通常はまずオブジェクト図から作成することが多いです。 逆に、クラス図を先に作成した場合でも、オブジェクト図で抜けがないか、冗長な箇所はないかをチェックすることが多いと思います。 で、今回の場合、結論としては、クラス図は質問者さんが描いたものと同じになってしまいました。 私の考え方はこんな感じですね。 (1) まずオブジェクト図を描いてみる。 (省略)…---[:dendrite]---+                  +---[:synapse]-------[:dendrite]---…(省略)                   |                  | (省略)…---[:dendrite]---+---[:soma]----[:axon]---+---[:synapse]-------[:dendrite]---…(省略)                   |                  | (省略)…---[:dendrite]---+                  +---[:synapse]-------[:dendrite]---…(省略) こんなのの繰返しになりそうだなぁ。。。 # ちなみに [:クラス名] の部分がオブジェクトになります。 # 本当は下線も必要なんだけど…そこまではご勘弁を。 こんな感じでまず、実際のオブジェクトについての図を描いてみます。 (2) (1) で描いたオブジェクト図を、クラス図にしてみる。   +--------------------------------------+   |                              |  1↓                              | 1 [dendrite]------◆[soma]◆------[axon]◆------[synapse]       1..*             1        1..* オブジェクト図から多重度もわかりますよね。 多重度をつけておくと、詳細な設計に落とし込むときや、実装するときなんかに「ここは多重度『*』だから、このクラスは配列で持たせないとダメだなぁ」なんてこともわかります。 あと、クラス図を描くときには、できればプロパティ名も書く習慣をつけたほうが良いですよ。 # とか言いながら、上の図でもプロパティ名は書いていませんが。。。 # まぁ、今回の場合はクラス名=プロパティ名で良いのではないかなぁ、と # いうことで、省略しました。 あと、[synapse]クラスと[dendrite]クラスの関連は、[synapse]クラスから[dendrite]クラスへの依存関係 (実線ではなくて破線の矢印) にしても良いかもしれませんね。 そうすれば関連がループすることもありませんし。 実際、[soma] を生成したときに、[axon]や[synapse]、[dendrite]といったクラスも一緒に生成されることになると思いますが、このとき[synapse]から隣[soma]所属の[dendrite]への関連は必ずしも必要ないはずです。 で、[synapse]から隣の[soma]所属の[dendrite]へパルスを伝えるときにだけその情報が必要になるわけで、他のクラス同士の接続関係よりも関係が弱いことは明らかです。 そういう場合に、依存関係を使うことが多いと思います。 で、依存関係にしてみたのが↓下図↓です。                << call >>   + - - - - - - - - - - - - - - - - - - - - - - - - +   |                              |  1↓                              | 1 [dendrite]------◆[soma]◆------[axon]◆------[synapse]       1..*             1        1..* この場合は、<< call >> (呼出し) という依存関係を使ってみました。 このくらいの図なら、デザインパターンとかを気にするまでもないかと思います。 # っていうか、そのままクラス図にしただけですし。。。 とりあえず、ご参考まで。。。

rocket2008
質問者

お礼

ご回答ありがとうございます。 すみません、しばらくみておらずお礼が遅くなってしまいました。 少し時間を掛けて読ませていただきます。

関連するQ&A

  • UMLモデリングで知っていてあたりまえの用語について

    先日あるConferenceに出席してきたのですが、 UMLモデリングで知っていて当たり前と言われてた用語を知りませんでした。わかる方教えてください。 「STS」、「7±2」、「契約による設計」 お願い致します。仕事で行ってきたのでレポートにまとめるのですが、意味が分からなくて困っています。

  • UMLモデリングツール

    どこで質問するべきか迷ったのですが、UMLのユースケース図やシーケンス図を作ったりできるモデリングツールはないでしょうか。できればタダで使用できるものを探しています。

  • E-RモデリングとUML

    E-RモデリングとUMLとの関係、どうなんでしょうか・・・ E-Rのエンティティ-インスタンスと、UMLのクラス-インスタンスとが対応しているように思います。 とすると、テーブル1つに対しオブジェクト1つ、となるのでしょうか?

  • システムモデリングについて

    今年から大学に三年次編入したものなんですが、システムモデリングという授業を取っているのですがまったくわかりません…レポートを出されたんですが、 1、二次微分のラプラス変換をしなさい 2、積分のラプラス変換をしなさい 3、RLC回路の伝達関数を求めよ、ただし初期値0 というものです。分かる方どなたかヒントでもなんでもいいので教えてください!お願いします…

  • UMLによるシステム設計について

    私はSIerの新入社員です。 システム設計について勉強しています。 特にウォータフォールモデルとUMLについてです。 今度、研修を兼ねて社内で使うツールの開発に参加することになりました。 ウォータフォールモデルに従って、要件定義から始めるのですが、 要件定義と外部設計の境界がわかりません。 要件定義書にはどこまで書くものなんでしょうか? あと、UMLの各モデルが、ウォータフォールモデルのどの工程に登場すべきなのかも今だわかっていません。 UMLのモデルについては大学で学びました。 しかし、それをウォータフォールモデルと繋げてイメージすることができません。 まず要求定義の工程ではUMLのどのモデルが出てくるのでしょうか? またユースケース文書はどの工程で書くのでしょうか? ↓私が想定しているユースケース文書です。 http://www.ibm.com/developerworks/jp/webservices/library/ws-tip-docusecase.html まとめますと、 (1)要件定義書にはどこまで書くのか(要件定義と外部設計の境) (2)ウォータフォールモデルの各工程にはどのUMLモデルが登場するのか (3)ユースケース文書はどの工程で書くのか(要件定義?外部設計?) 以上3つの質問です。 UMLはオブジェクト指向設計で用いると思うので、Javaのカテゴリで質問させていただきました。 会社によって設計書の書き方は大きく違うと思いますが、 「一般的にはこうしているはず」という話でも良いですし、 「うちの会社ではこうしている」という話でも良いですので、ぜひ教えてください。

  • UMLモデリング:抽象クラスを導入すべきかどうか

    オブジェクト指向設計に詳しい方,UMTP L3合格者の方,下記のような状況でクラスA1とクラスA2に抽象クラスAを導入するべきかしないべきかについて教えてください。 1 A1とA2に共通の属性は少ない。 2 ある抽象クラスBのサブクラスB1がA1に対する関連を持ち,B2がA2に対する関連を持つ。  また,これらの関連のロール名は同じ。 3 他の複数のクラスがサブクラスA1またはA2に対して関連を持っている。 1に関して:共通化できる箇所が少ないので抽象クラスを導入するメリットはないと思います。 2に関して:抽象クラスを導入することで,A1→B1とA2→B2の関連をA→Bの関連に纏められます。 3に関して:個々のサブクラスを意識する必要があるので抽象クラスを導入するメリットはないと思います。 抽象クラスを導入するメリットは,2に記載の関連を纏められるという点だけだと思いますが,まとめて良いかどうか疑問に思っています。A1->B2やA2->B1が許されないので,A->Bに纏めてしまうとモデルの意味が曖昧になりますし,コンパイル段階でA1->B2のような不正な組み合わせを検出できなくなります。しかし,Factoryとかを使って正しい組み合わせだけが生成されるようにすればよいので纏めるべきでしょうか。ロール名が同じなので,生成時だけ気をつければ同じ型で扱える方が良いようにも思います。 ちなみにこれはUMTP L3で出題された問題なのですが,細かい条件が提示されてなくて,Factoryの使用を前提にしてよいかは記載されていませんでした。記載がないということは前提にしない方が良いといことだと理解しています。 A1とA2はBから同じロール名で誘導されるという点を除けば,A1とA2は違う概念を表していると思います。A1とA2を独立したクラスにしておくべきか,抽象クラスで纏めるべきか教えてください。 宜しくお願いします。

  • UML技術者資格試験とUMLモデリング技能試験の違い

    UML技術者資格試験とUMLモデリング技能試験とは 内容、取得後の活用方法(?)としてはどのような 違いがあるのでしょうか。

  • 花期のショウブを見られる場所は?

    昨日までショウブの正体を知りませんでした。ショウブとは、これのことだと初めて知りました。 http://www.ootk.net/cgi/shikihtml/shiki_1625.htm  http://aoki2.si.gunma-u.ac.jp/BotanicalGarden/HTMLs/shoubu.html  http://aoki2.si.gunma-u.ac.jp/BotanicalGarden/HTMLs/izure.html  花期のショウブを見ておきたいです。自生ならば最善ですが植物園でもよいです。首都圏で見られる場所がありますか。 私鉄でも地下鉄でも車でもよいのですが、JRで言えば目安として山手線沿線、東京駅以北、東京駅以東が便利です。 何時頃、何処へ行けばよいですか。大まかに教えて下されば細目は調べます。花屋さんの店頭は勘弁です。 非常手段として植物園に電話をしてみる方法は気付いています。 よろしくお願いします。

  • UMLについて

    現在UMLを勉強しているのですが、初心者であまりよくわかっていません。 今回質問したいのは、UMLを仕事で活用している方やこれから勉強しようとしている方のUMLの勉強方法です。 本を読んで理解しようとしているのですが、実際にUMLを書くLvにはとても本を読んだだけでは、身に付かないと思います。 どうかよろしくお願いします。

  • UML ?

    ども、通信業界の者です。 UMLはまったくの畑違いですが PGを目指して本を読んだものの あまりにも独特なものでした。 エクリプスとかSQLとかプラグイン API・トムキャットはわかりますが どうもUMLはという気分です。 実際、UMLをそれなりに覚えなくても プログラミングの仕事につけますよね 概要だけでもいいですよね UMLを業務で使いこなせてる人とかって SE10年位やってるひとだけの上レベルの ひとだけですよね。