連載
» 2006年12月12日 00時00分 公開

人海戦術よりスマートなSoC開発はないのか?SoC設計にモデリング手法を導入する(1)(2/3 ページ)

[塚田 雄一 キャッツ,@IT MONOist]

UMLがSoCの品質問題を解決するという仮説

 ソフトウェア開発の歴史を振り返ってみると、昔はアセンブラ言語で設計が行われていました。そして、開発規模が膨大になると構造化言語であるC言語、そしてまたさらに開発規模が膨大になるとオブジェクト指向言語であるC++言語により開発が行われるようになりました。そして、現在ではUMLによるモデルベース設計が行われています。

 ハードウェア(SoC)の世界でも事情は同じです。開発規模が増大すればハードウェアも将来は、ソフトウェア開発と同様にUMLによるモデルベース設計が行われるようになるでしょう。そしてソフト/ハードを1つのシステムと考えた協調設計を実現するためには、ハードウェアもUMLから開発を行うことが重要となってきます。


肥大化、複雑化をUML(モデルベース設計)で解決 図2 肥大化、複雑化をUML(モデルベース設計)で解決

SoC開発にUMLを使用する利点

 それでは、UMLをSoC開発に使用する利点とは何でしょうか。まずは、レビュー効果とドキュメント効果です。きっちりとレビューを行い、きっちりとドキュメントを残すことが大規模開発では大切です。

 レビューとは、単に相手に自分の考えを伝えればよいというものではありません。「正確に相手に伝わったか」が重要です。それには、ソースコードだけでレビューをするのは困難であり、ソースコードのみがドキュメントだと大切なことが伝わりません。

 ただし、レビューをしやすくすることと、ドキュメントを残すことが目的であれば、それを達成するのに必ずしもUMLだけで記述する必要はありません。UMTPでは、分かりやすい表記法(絵や表など)があれば、それを積極的に取り入れることにしています。

 誰でもレビューを行うときは、図や絵を使用することでしょう。それを素直に利用するのです。つまり、いままでの表現方法にUMLを使用すれば効果があると思われる部分にのみUMLを使用すればよいのです。UMLを使ったロボットコンテスト「ETロボコン」には、UMLのモデリング審査がありますが、最近はUMLと絵(グラフや写真など)を混在させて、より分かりやすいモデルを記述することが主流となっています。

 また、UML(オブジェクト指向)を利用する最大の利点は、部品の再利用性にあります。プログラムの5〜7割は、既存の資産を再利用して開発されているといわれています。すでに試験された品質の良いコードを再利用すれば、開発効率は上がります。しかし、再利用する部分が明確でないまま開発を行っていたのでは、再利用した部分に不具合が発生してしまうかもしれません。

 再利用を行うためには、どの部分を再利用すればよいかを明確にし、再利用する際の関連、また変更しなくてはいけない部分を明確にすることが大切になります。そこでUMLを使用して、再利用に対する影響を考えて設計を行うことが、品質の向上につながります。

「組み込み開発の問題点」に対して、UMLの使用で解決できる項目:

1.組み合わせ試験を行うまで最終的な品質が明確にならない

 解決策→ UMLにより上流設計において不具合を発見することが可能になる


2.ソフトウェア開発者とハードウェア開発者には、コミュニケーション・ミスが発生する

 解決策→ UMLによる共通ドキュメントによりレビュー、引き継ぎなどが容易になる


3.予定どおりの性能(パフォーマンス)を出すことが困難

 解決策→ 明確な分析&仕様定義により性能(パフォーマンス)を検討する題材になる



UMLとハードウェアの関係

 UMLはそもそも「標準表記法」の定義だけであり、要求→分析→設計という「開発プロセス」と、再利用性を考えた「オブジェクト指向設計」の3つで成り立っています。

 ソフトウェア開発とハードウェア開発は、開発における文化が違っています。ソフトウェア開発は、ユーザーの要求をシステムとしてどのように実現していくかというトップダウンの考え方で設計が行われてきました。それに対して、ハードウェア設計者は、1つ1つのIPを組み合わせることによって、どのようなシステムが構成できるかというボトムアップの考え方で設計が行われてきました。

 UMLはソフトウェア開発の文化から生まれたもので、開発プロセスを考えた場合、当然ソフトウェア開発の文化に合っています。しかし、オブジェクト指向(再利用)には、ハードウェアの文化に近いものがあります。つまり、ハードウェア開発には、C++/Javaなどオブジェクト指向言語での開発の文化がないだけで、開発時に再利用性を考えてIPを開発する点はオブジェクト指向の思想に近いといえるでしょう。むしろ再利用を考えて設計を行うといった意味では、UMLはハードウェア開発の方が向いているかもしれません。

 また、設計に入る前に多くのことを分析するハードウェア開発は、「取りあえず作ってみる」という文化がないだけに、しっかりした開発プロセスを必要としているのではないでしょうか。ただし、実際にUMLでハードウェア開発を行うにはいくつかの問題があり、それらを1つ1つ解決していかなければなりません。その中の1つを次に紹介します。

Copyright © ITmedia, Inc. All Rights Reserved.