キッチンから学ぶUMLの勘所
キッチンにある身近な家電のUML
日本の組み込みソフトウェア開発では、UMLの導入により従来の開発手法からの脱皮を目指す現場の方々が多くなってきています。そんな現場の開発リーダーたちの共通認識は、既存の開発手法でソフトウェア開発を続けることはとても困難であるということです。
これまでの手法が通用しなくなっている背景には、近年ますますソフトウェアの規模が大きくなり複雑になってきたという事実、そしてプロダクトの不具合の原因を調査すると、ソフトウェアの不具合が、ハードウェアの不具合の数をはるかにしのぐという事実があります。
容易にすべての組み込みソフトウェア開発の諸問題を解決するソリューションはなかなかなく、むしろあればご教授いただきたいほどですが、UMLはその問題解決の糸口になると筆者は考えています。
UMLを開発現場に導入するメリットとしては、UMLがオブジェクト指向固有の仕組みを表す表記法であることから、ソフトウェアの部品化、またシステムの全体像の把握が容易であることがあげられます。また、プログラミングコードとは異なり、ソフトウェアの構造、振る舞いを図で表記することが可能であるため、図を書いた当事者以外でも、内部構造を把握することが比較的容易になるということもメリットの1つです。
本連載では、組み込みソフトウェア開発でのUML活用の利点をすべてお伝えしたいところですが、スペースの制約もあるので、モデリング活用例をもとにその一部を紹介したいと思います。
今回は、一般家庭にも普及が進んだ「食器洗い機」を題材にします。キッチンにある身近な家電のモデリング手法を通して、クラスの作成と状態マシンによる振る舞いを定義し、その検証までを解説します。
図1:モデリングツール「Telelogic Rhapsody」でモデルを動かすと…
食器洗い機のモデルを動作させると...
図1の動画は、作成した食器洗い機のモデルが、開発者の意図どおりに動作することを検証するために、動作させたところです。
次のページ以降では、食器洗い機の振る舞いをどうモデリングしていくか、また上記に示した動画のなかのそれぞれの要素は、どのような意図で配置されているのかについて、解説していきましょう。