静的な構造を整理する

  1. [舟元]よし、ユースケースが整理できたらか、次は、このユースケースからモノを取り出してモノ同士の静的な関連を整理しよう。
  2. [吉田]モノ。。。?静的。。。な関連。。。?
  3. [舟元]やる事としては、ユースケースシナリオからモノを取り出して、それらにどんな関連があるかを整理するんだよ。モノをオブジェクトとして図の中に置いて、モノ同士の関連でオブジェクト同士を繋げればOK。

    「競技開始を待つ」と「ベーシックステージを走行する」で書いてみようか。
  4. [吉田]じゃぁ「競技を待つ」からね。

「競技開始を待つ」の基本フロー

1.文系女子は、審判から競技開始の合図を受け走行体に競技開始を指示する。
2.走行体は、競技開始の指示を受けユースケース「ベーシックステージを走行する」を開始する。
  1. [吉田]で、ユースケースからモノを取り出すって、、、モノでしょー。んーっと、

図4:ユースケースからモノを取り出す
  1. [吉田]どうだっ!!
  2. [舟元]ほぉー。。。。30点!
  3. [吉田](´・ω・`)
  4. [舟元]かたちあるモノは、取り出せたね。でも、かたちないモノが取り出せてないよ。
  5. [吉田]かたちのないもの?
  6. [舟元]例えば、審判が出す「競技開始の合図」とか、文系女子が走行体に対して行う「競技開始を指示する」とか。

図5:かたちないモノを取り出す
  1. [吉田]んー確かにモノといえばモノ?なんだか振舞い(処理)っぽいものまでモノっていうのは違和感だなー。
  2. [舟元]実際にプログラムを意識しちゃうと、変かもね。でもここはまだ分析だから、割り切ってモノとして捉えちゃおう。今後やっていくなかで、「これは、どこかのクラスのメソッドだね」とか「これは、どこかのクラスの変数だね」という感じで整理していけば良いんだよ。いきなり完成品は狙えないね。
  3. [吉田]そうなのかー。道は長そうだ。次は関連しそうなモノ同士を線で繋げるんだよね。で、関連って。。。?
  4. [舟元]そうだね。フローの一文がまだ複文になっているから、よく見えてこないね。対象のフローの一文が単文になるように分解してみよう。
1.文系女子は、審判から競技開始の合図を受け走行体に競技開始を指示する。
→ 審判は、競技開始の合図を出す。
→ 文系女子は、競技開始の合図を受ける。
→ 文系女子は、競技開始を指示する。
→ 走行体は、競技開始の指示を受ける。
  1. [舟元]本当は、ユースケース記述がここまで細かく書けてら良いんだけど、あまりに細かく書き過ぎて爆発しちゃっても本質が見えなくなっちゃうからね。粒度ってやつだ。
  2. [吉田]あー。単文にした文章に出てくるものどうしを繋げれば良さそう?

図6:関連する要素をつなげる
  1. [吉田]なんか見えてきた!!...気がする!!
  • 文章が複文だったら単文になるように分解してみる。
  • モノを見つけるには、接続詞を切れ目にして分解してみる。
  • モノは、形のあるものもあれば、形のないものもある。
  1. [吉田]コツが掴めれば、サクサク進められそうだね。よーし。じゃぁ、もう一個「ベーシックステージを走行する」も書くよ!まずは、モノを取り出してみるね。
基本フローモノ
1. 走行体が平面のラインに沿って走行する
  • 走行体
  • 平面のライン
  • 沿って走行する
2. 走行体が坂道の前の灰色のラインを感知する
  • 走行体
  • 坂道の前の灰色のライン
  • 感知する
3. 走行体は坂道走行に切り替える
  • 走行体
  • 坂道走行
  • 切り替える
4. 走行体が坂道の後の灰色のラインを感知する
  • 走行体
  • 坂道の後の灰色のライン
  • 感知する
5. 走行体は坂道走行から平面走行に切り替える
  • 走行体
  • 坂道走行
  • 平面走行
  • 切り替える
6. 走行体が平面のラインに沿って走行する
  • 走行体
  • 平面のライン
  • 沿って走行する
7. 走行体が2番目のゲートを通過する
  • 走行体
  • 2番目のゲート
  • 通過する
8. 走行体が平面のラインに沿って走行する
  • 走行体
  • 平面のライン
  • 沿って走行する
9. 走行体が3番目のゲートを通過する
  • 走行体
  • 3番目のゲート
  • 通過する
  1. [吉田]今回は、単純な表現ばっかだから簡単かな。こんな感じ?

図7:「ベーシックステージを走行する」からモノを取り出したところ
  1. [舟元]なるほどぉ。良いね。文章で書かれたユースケース記述では見えにくかったモノの関連が見えるようになったね。
  2. [吉田]うん。なんか、他のユースケースもザクザク書けそうな気がしてきたよ。ところで、このままだと「ベーシックステージを走破した後にボーナスステージを走る」とか難所をどの順番で走るとかが分かんないよね。
  3. [舟元]んー。そうだね。これまた、今作っているオブジェクト図の中で表現するのは大変かも。 「これをやってから、あれをやる」や難所の順番は、静的に定義するよりも、動的なものとみなして、分析を進めたほうが良さそうだね。
  4. [吉田]なるほどぉ。ステートマシン図やシーケンス図、アクティビティ図だね。
  5. [舟元]それそれ。じゃぁ、今回はここまでにして、次回は、オブジェクト図からクラスを抽出して、動的な構成の分析をしよう。
  6. [吉田]はぁい。

【参照リンク】

<サイト最終アクセス:2011.08>

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30