モデル駆動開発
セッションの目的
このセッションでは、モデル駆動開発(MDD:Model Driven Development)を実践し、MDDを用いた組込みソフトウェア開発の流れを習得することを狙います。
習得が期待される知識・技術
項目1:UMLを読み書きできる
UML(Unified Modeling Language)の基礎知識を習得して、開発対象をモデリングする方法を理解します。そして、UMLで規定されている図のうち、クラス図とステートマシン図を読み書きできるようになります。
- クラス図:ソフトウェアの静的な構造を、構成する概念(クラス)とメンバ、それらの間に存在する関連として表現し記述した図
- ステートマシン図:ソフトウェアの振る舞いを、状態とその遷移で表現して記述した図
項目2:MDDの原理とメリットを理解する
設計モデルを基にソースコードを作成する手法である、MDDについて理解します。また、作成したモデルからソースコードを自動生成することで、効率の良い開発ができる、ソースとモデルの一貫性が高まるなど、MDDによって得られるメリットを体感します。
項目3:開発対象のソフトウェアをMDDによって開発できる
開発対象のソフトウェアに求められる要求と機能を分析し、MDDを用いてソフトウェアを設計・実装できるようになります。さらに、組込みシステム開発特有のアプローチとして、モデルと実際の動作との図を分析し、それをモデルにフィードバックして改善する手法を習得します。
教育目標との対応
① 組込みシステムの開発技術を習得する
a) UMLを用いたモデル駆動開発
実施内容と進め方
事前実習
参加確定後にオンラインベースで以下に関する教材や解説資料を配布し、個別学習によって進めます。
- UMLの基礎知識
- MDDの原理とメリット
- 開発環境の構築
- シミュレータ上のロボット(簡易版)を用いたMDDの実践
事前実習の最後には、簡単な理解度と到達度のチェックを設けます。これによって、当日の演習を始めるために必要な知識と技術が身に付けられているかを確認できます。理解の難しいところがあれば、参加者用のメーリングリストにて質問を受け付け、実行委員から解説を行います。
合宿当日の演習
セッションの冒頭で、事前実習の復讐としてUMLおよびMDDの基礎的な知識について、講義を行います。これによって、本セッションで取り上げる内容のより良い理解を促します。
その後、実行委員が提示した開発課題を、実習用のロボットを用いてハンズオン形式で進めます。MDDの流れに則って、まずは機能と要求を分析してモデリングを行います。そこからソースコードを自動生成してシミュレータ上で実行し、動作が正しく実現できているかを検証します。本演習で作成したソフトウェアは、チーム開発実習で開発するソフトウェアのベースとなります。
他セッションとの関係
合宿当日の演習は、チームビルディングセッションで形成したチームによって行います。本演習の成果物は、「チーム開発実習の最後に実施する競技会の規定を最低限満たすソフトウェア」になります。