110 likes | 376 Views
チーム FSEL 立命館大学情報理工学部 ソフトウェア基礎技術研究室. モデル班:丸山 勝久 石塚 聖啓 平井 孝 実装班:山本 哲男 筏谷 浩樹 原田 彬直. MDD ロボットチャレンジ 2005 主催者の皆様に感謝いたします.. モデル概要. 要求モデル (2 枚 ). … ユースケース図(調査システム,飛行船システム). クラス図(概念モデル) アクティビティ図(ユースケースごとに) … 非正常系の検討(タイマによる目的の切り替えと 制御不能モードの導入). 分析モデル (10 枚 ). クラス図(クラスの抽出,属性と操作の追加)
E N D
チーム FSEL立命館大学情報理工学部ソフトウェア基礎技術研究室 モデル班:丸山 勝久 石塚聖啓 平井孝 実装班:山本 哲男 筏谷浩樹 原田彬直
MDDロボットチャレンジ2005主催者の皆様に感謝いたします.MDDロボットチャレンジ2005主催者の皆様に感謝いたします.
モデル概要 要求モデル(2枚) …ユースケース図(調査システム,飛行船システム) クラス図(概念モデル) アクティビティ図(ユースケースごとに) …非正常系の検討(タイマによる目的の切り替えと 制御不能モードの導入) 分析モデル(10枚) クラス図(クラスの抽出,属性と操作の追加) …シーケンス図(操作ごとに) 状態図(飛行船システム,飛行モード,タイマ) 設計モデル(15枚) モデル変換図(5枚) 通信部分のスレッド化とデータのロック …クラスから属性への変換 シーケンス図(操作ごとに,ループ終了条件と 分岐条件の詳細化) 詳細設計モデル(15枚) + 最終版クラス図(1枚) JudeでJavaプログラムのテンプレートを生成 C++プログラム(*.h, *.cpp)形式に変換 操作(メソッド)の中身をシーケンス図から追加 …座標計算アルゴリズムや通信プロトコルの実装 ソースコード(C++)
最終版クラス図 航法ドメイン 通信ドメイン 推進制御ドメイン
アピールポイント • Model-Centric Development • ○ モデル → ソースコード,× ソースコード → モデル • 追跡可能性を意識 • 各モデルで名前を統一 • コードは追加のみ,通信に関するユーティリティクラスの追加のみ • 教育用モデル,参照モデルになることを目標 • 飛行船システムをできるだけ単純に表現 • 平行性の考慮(スレッドやデータのロックの導入,タイマの導入) • パターンの適用(strategy & read-write lock) • テスト容易性を考慮した要求分析 • ユースケースに保守者を追加(H/W試験をシステムに取り込む) • スレッドの割り当てを外部から指定できる実装 • (テストドライバ,シミュレータの同時開発) • 拡張性を考慮した設計 • UIクラスによるコンポーネント化,継承を用いたフレームワーク化
ありがとうございます 問い合わせ mdd@fse.cs.ritsumei.ac.jp モデル公開Webページ http://www.fse.is.ritsumei.ac.jp/mdd/
void Blimp::startAutomaticFlight() { controller->startAutomaticFlight(); Goal goal = plan.getFirstGoal(); controller->setGoal(goal); bool isFinalGoal = false; while (!isFinalGoal) { bool hasArrived = false; bool passed = false; while (!hasArrived && !passed) { flight(); showStatus(); hasArrived = controller->hasArrived(); if (!hasArrived) { passed = controller->passedBy(); } } if (hasArrived || passed) { isFinalGoal = plan.isFinalGoal(); if (!isFinalGoal) { goal = plan.getNextGoal(); controller->setGoal(goal); } } } stop(); } クラス図(1枚) シーケンス図(15枚) 1.JudeでJavaプログラムのテンプレートを生成 2.C++プログラム(*.h, *.cpp)に形式に変換 3.操作(メソッド)の中身をシーケンス図から追加 4.座標取得アルゴリズムや通信プロトコルの実装 * 2-4は手動で実施 ソースコード(C++)