第5章
風評を鵜呑みにせず，きちんと自分の手で評価しよう

なぜUMLの敷居は高いのか？

南角 茂樹，長濱茂樹 長濱 美保

IT（Information Technology）分野の業務系などでは広く普及しているUML だが，組み込みシステムに適用しようとするとしっくりこないことが多い．ここでは業務系システム開発の視点も交えながら，組み込みシステム開発に UML を導入する際の課題について明らかにする．
筆者は，UML によるモデリング手法を丸ごと導入するのではなく，まずは効果のあるところに限定して導入することを提案する．
（編集部）

以前から，ソフトウェア開発の効率化，および設計品質す．さらに，組み込みソフトウェア開発においては，「出向上の手段として，モデル・ベース開発の有用性が語られ来上がったもの」そのものが仕様となっている場合がありてきました．しかし現実には，組み込みシステム開発の現ます．これは，仕様書に書かれていない，あるいは書きき場に必ずしもこの手法が浸透しているとはいえません．

れないシステムの細かい振る舞いについては，既存のシス

ここでは，「なぜモデル・ベース開発は現場で浸透してテムそのものが仕様（リファレンス）として扱われるといういかないのか」を，「そもそもモデル・ベース開発が組み込ことです．ですから，仮に新しい手法で開発しようとするみシステム開発に向いているのか」も含めて，考えてみたと，その互換性を保つために，最初に既存のソフトウェアいと思います．なお，以後，モデルを表現するための記法の調査が必要になります．従来と同じ手法で開発するのでとしては UML を中心に考えます．また，論点を絞るため，あれば，この調査は不要です（右掲のコラム 1 を参照）．

オブジェクト指向アプローチを前提とします．それ以外の

このように，一つの製品ラインに対して継続的に流用開手法については，必ずしも以下の説明が当てはまらないか発が行われている状況では，新しい手法を導入するケースもしれないので，注意してください．

は多くありません．もしあるとしたら，新しい手法による● 新しい手法は，なぜ開発現場に根付かないのか利点が相当大きく，なおかつそのことが証明されている場

実際の組み込みシステム開発には，流用開発と新規開発合に限られるでしょう．なお，例外として，それまで使用があります．それぞれの場合について考えてみます．

していたマイコンが製造中止になるなどの外的要因によ

1）流用開発の場合り，やむなく手法を切り替えるといったケースもあります．

従来から製造している組み込みシステム製品の品ぞろえ

2）新規開発の場合を増やしたり，派生製品を発売したりするような場合は，流ここでいう新規開発とは，従来製品に使用していたソフ用開発が行われます．新規事業の開始など，まったく新しトウェアを流用しないという意味です．従来のソフトウェ

い市場へ進出する場合を除くと，組み込みソフトウェアの開ア資産を流用しないということは，従来のソフトウェアを発プロジェクトの多くはこのケースに相当すると思います．

流用するメリットよりも，使い続けることによるデメリッ

流用開発では，現存しているソフトウェア資産を生かしトの方が大きいということになります．例えば，「従来のた開発を行う必要があります．従来の手法で開発することソフトウェアの品質が悪い」，「改造も含めて開発効率が悪が多く，通常は新しい手法を導入することはありません．

い」など，重大な問題がある場合です．このような場合にその製品ラインが昔から続いているものであればあるほど，は，新しい開発手法の導入は比較的スムーズに進みます．

新しい手法を導入しにくいという状況があります．

しかし，それだけ問題が切迫しているわけですから，速また，新しい開発手法に不慣れなために生じる設計品質やかな問題の解決が求められ，さらに新しい手法の導入のの低下（デグレード）や開発期間の長期化も問題となりま成果を短期間に示すことが求められます．従来手法による

122 KEYWORD ―― UML，モデル・ベース開発，オブジェクト指向，ET ロボコン，LEGO MINDSTORMS，業務系，ステート・マシン図，Real-Time UML，データベース，パス・ファインダ

Oct. 2007

第 5 章 なぜ UML の敷居は高いのか？

開発をモデル・ベースに切り替えるようなケースの多くは，れています．一つは「ライン走行のタイム・レース」，もうこのような状況に相当すると思います．

一つは「走行システムの分析・設計のモデリング」です．参新しい手法を導入する際には，社外のコンサルタントの加者は年々増えており，今年は全国 3 地区（関東，東海，助けを借りることが多いのですが，これが問題になるケー関西）に分かれて予選大会が行われるほどでした．写真 2スもあります．組み込みシステム開発においては，手法以は，参加者が実際にソフトウェアを開発している様子です．

上に製品固有の知識が必要です．社外のコンサルタントは通常，システム開発には工程があります．例えば，要求製品知識をあまり持っていないことが多く，そのため，コ定義，分析，外部設計，内部設計，実装，テストといったンサルタントが手法の導入の足を引っ張ることがあります．

工程です．ライン走行のタイムには，実装された結果が表

むろんきちんと対象製品を勉強しようとするコンサルタンれます（ただし LEGO の場合，先に述べたようにハードトの方も多いのですが，契約して教えてもらうはずが，逆ウェアの個体差にもかなり影響される）．に教える一方になってしまったという経験もあります．

● ET ロボコンに見る技術者の取り組み

その実装は，こうしたいくつもの工程を経て，でき上がったものです．開発のフェーズが進む中でモデリングを2007 年 7 月 14 日〜 15 日に，ET ロボコン 2007 の本選大会が東京で開催されました．「ET ロボコン」とは愛称でデンマークの LEGO 社の教育用ロボット「LEGO MIND
STORMS RCX」を使用し，写真 1 に示すような決められた車体で決められたコースをラインに沿って走行する競技
写真 2
ET ロボコン参加チームの開発風景

で走行性能が決まることになります．ただし現実には，センサやモータの個体差が大きく，理想どおりにはいかないようです．これも現実のものを制御対象とする組み込みの宿命なのかもしれません（苦しい言いわけだが…）．
この大会には，「組み込みソフトウェア・エンジニアの新人教育と技術伝承」という目的があります．この目的を達成するために，ET ロボコンには 2 種類の競技が用意さ

コラム 1

丸めの問題はどうモデリング？

組み込みシステムにおいて，ソフトウェアで実行していた浮動小数点演算に対して，浮動小数点演算プロセッサ（FPU）という専用のハードウェアが使われ始めたころの話です．
ソフトウェアの大部分の開発は C 言語で行っていました．問題が発生したのは浮動小数点数を整数に代入（キャスト，丸める）したときのことです．当時，コンパイラのメーカが浮動小数点数の扱いに慣れていなかったためか，丸め（四捨五入）に FPU の備えている丸め機能を使っていました．ご存じの方もいると思いますが，整数に丸める場合，整数までの距離が同じ場合は偶数側に丸めるという，四捨五入とは異なる定義になっています（現在では，IEEE の規格になっている）．そのため，1.5 を丸めると 2 になるのは良いとして，2.5 を丸めても 2 になってしまいました．
このときは，さすがに「出来上がったもの」が仕様というわけにはいかず，コンパイラ・ドライバに手を加えて

写真 1 ET ロボコンで使われている自律走行ロボット教育用ロボット「LEGO MINDSTORMS RCX」をベースとしている．ET ロボコンでは，これをパス・ファインダまたは走行体と呼んでいる．

Oct. 2007

2App2
3
45

アデザインロボットコンテスト」と呼ばれます．これは，見かけ上は同一の車体なので，ソフトウェアのみの差

App1App3あり，正確には「ET（Embedded Technology）ソフトウェです．

1

切り抜けました．このようなケースは，どのようにモデリングすればよいのでしょう？

123