2008年12月12日
初出:組込みプレス Vol.13(2008年11月7日)
山本哲也
組込み, OCRES
この記事を読むのに必要な時間:およそ 1.5 分
はじめに
OCRES(OMG認定組込み技術者資格試験プログラム)の出題範囲として,ジム・クーリング博士 著『組込みシステムのためのソフトウェアエンジニアリング(邦題)』が指定されていますが,今までは翻訳本がなかったため,受験生にとってOCRESの受験は,大きなチャレンジの1つでした。そして,今年の夏になって(2008年8月),ようやく待望の翻訳本を出版することができ(注1),この原稿を書いている時点で書店の店頭にも並ぶようになってきました。
UML設計トレーニングプログラム
そこで,今回はソフトウェア工学の観点から解説したいと思います。最初に注意しなければならないのは,OCRESあるいはオブジェクト指向分析設計もそうですが,これらは「ソフトウェア工学全体の中の一分野に過ぎない」という点です。
オブジェクト指向分析設計のエンジニア教育に関しては,欧米の大学院では,かなり研究されており,また実績もありますが,次にいくつかの注意点を挙げておきます。
- ソフトウェア工学の最終目的は,良質なソフトウェア/システムの設計構築であり,技術者育成のためには演習や事例研究が必須である
- オブジェクト指向分析設計単体,あるいはモデリングだけを教授しても学習効果が薄い。さらに,ソフトウェア工学の基礎を欠いたまま,設計やモデリングを行うことは危険ですらある(オブジェクト指向は,シルバー・ビュレット(銀の弾丸)ではない)
- ソフトウェア技術者の育成は,所属する組織環境から大きな影響を受ける
そして,今回は上記のソフトウェア工学書籍の著者であるジム・クーリング博士が開発した「UML設計トレーニングプログラム」を紹介します。図1は,その各コースの位置付けを示しています。
図1 UML設計トレーニングプログラムの各コースの位置付け
![図1 UML設計トレーニングプログラムの各コースの位置付け 図1 UML設計トレーニングプログラムの各コースの位置付け]()
急速に普及するSysML
図1に「SysML」という言葉が出てきますが,簡単に解説しておきます。もともとUMLは,ソフトウェアを設計するために作られたものですが,時間が経つにつれ,単なる設計言語からモデリング言語へと進化していきました。UML 2.0になるとメタモデリングが厳密に定義され,UMLはより汎用的なものとなり,かつ特定分野に対応する言語として拡張可能になっていきました。
SysMLはシステムをモデリングするための言語で,UMLの拡張であり,UML言語の一種です。ご存じのとおり,組込み系システムは,ソフトウェアとハードウェアが密接不可分の形になることが多く,必要な機能をハード側で提供するのか,ソフト側で提供するのか,という取捨選択が可能である部分があり,ソフトウェアのモデリングだけを行っても不十分です。
このSysML言語ですが,現在急速に普及しつつあり,この普及速度は,かつてUMLがソフトウェア産業に普及して行った際のものとは比べ物にならないくらい速い勢いで進み,完全にデファクトスタンダード化してきています。人気の理由はいくつかありますが,なんといっても,従来のシステムの設計方法が持っていたソフトとハードの間の不連続面が完全になくなったこと,そして,UMLを知っている人間にとっては,SysMLが非常に簡単に扱えることが挙げられます。
また,当然のことながら,産業界がシステムの設計品質向上の強いニーズを抱えていることが下地にあることは言うまでもありません。
講座の内容
さて,図1に挙げたコース中で最もOCRESと関連性が高いコース「UML2を使用したリアルタイムソフトウェア設計講座」の内容を見ていきましょう。このコースは,先述のジム・クーリング博士の書籍と同様,内容を組込み系に限定しておらず,リアルタイム系を扱うすべてのシステムに対応した形で進めています。内容は,小さな組込みシステムから順次,より大きなリアルタイム系を扱う制御系にフォーカスを移動する形になっています(図2)。この講座は,基本的に演習中心で進められていますが,演習中にソフトウェア工学のテキストを参照できます。
図2 「UML2を使用したリアルタイムソフトウェア設計講座」目次
![図2 「UML2を使用したリアルタイムソフトウェア設計講座」目次 図2 「UML2を使用したリアルタイムソフトウェア設計講座」目次]()
OCRESと応用力
OCRESの試験範囲にあるプロファイルや各種メタモデルは,この設計講座の場合,図2のチ0以降の力量がないと,仮に理解していたとしても使いこなすのが難しいのでないかと思います。
OCRESは,あくまでもフレームワークや理論の学習であり,使いこなすためには,ある程度の応用力が必要になってきます。しかしながら,学習方法としては,理論系を先にある程度勉強したあとに演習や実務で実際に設計を行う,というほうが学習効果が高く,逆に実務から理論を再発見するやり方は労多くして功が少ないイバラの道であることが広く知られています(注2)。
なお,UTI社およびストラタジーナム社では,今後,ジム・クーリング博士が開発したコースを日本でも展開することを検討しています。詳しくは,Webサイトをご確認ください。