内容ダイアグラム
機能ユースケース、ユースケースシナリオ
構造クラス図
振る舞いコミュニケーション図、シーケンス図
  1. [吉田]まずは構造から考えると解りやすいのかな。構造を整理するには「クラス」を見つけていくんだね。
  2. [舟元]そうだね。クラスを見つけて、それらがどういう風に振る舞うのかを明確にしていこう。

図5:クラス図(分析)

図6:コミュニケーション図(分析)
  1. [舟元]構造としては、「走行体」に「センサ類」がついていて、「ライントレーサ」が「走行体」と関連づけられているね。「ライントレーサ」は「制御量計算」とも関連しているのか。「旋回量計算」が「走行体」と関連付いているのは何でかな?「コース情報」とも関連付いているね。
  2. [吉田]「旋回量計算」には光センサの値と、目標値が必要になると思って「旋回量計算」から「走行体」、「コース情報」と関連づけたんだよ。コミュニケーション図を見てよ。
  3. [舟元]なるほど。構造と振る舞いはこれで解るね。でも、これだと…まあ、いいか、とりあえず分析は終わったので次は設計に入ろう。

設計する

  1. [舟元]次に分析結果を基に設計していこう。これを見て実装することになるからね。
  2. [吉田]分かってるって、メソッドの引数や戻り値も考慮してすすめるよ。今回は振る舞いはシーケンス図で書くね。

図7:クラス図(設計)

図8:シーケンス図(設計)
  1. [舟元]「ライントレーサー」クラスがmainを持っているって事は、システム本体ってことなんだね。でも、このクラスは分析モデルでは要らないんじゃ無いのかな。分析では「ライントレース」を実現するための構造であって、ソフトウエアの構造では無いからね。ソフトウエアの構造を意識するのは設計モデルからで良いんだよ。「分析」と「設計」の違いは、単にクラス名や関数名が日本語か英語かって訳じゃ無いんだよね。
  2. [吉田]なるほど。分析では対象を明らかに(作らないといけないものを明確化)して、設計では対象を実装可能なものにする(どうやって実装すれば良いか)んだね。だから、分析モデルでは出てこないクラスが出てきたり、統合されたりする訳か…
  3. [舟元]そういうこと!(本当は、、、ダメだけど)今回は、「ライントレースする」っていう単純な要求だから、このまま設計を進めちゃおうか。それぞれのクラスと責務も明確にしておこう。
  4. [吉田]分かった。
クラス責務
lineTracerシステム本体。システムのライフサイクルを管理する。
nxt走行体クラス。センサー及び、モーターと協調して走行処理を行う。
turnCalculator旋回量を算出する。
pCalculatorP制御による旋回量を算出する。
courseコース情報を管理する。
motorモーターを制御する。
touchSensorタッチセンサを制御する。
gyroSensorジャイロセンサを制御する。
lightSensor光センサを制御する。
balanceCalculator倒立振子するための演算を行う。

人気記事トップ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