前述の「システムを取り巻く要素」は、今後の組み込みシステムの傾向とも一致しています。
「制御の世界のモデル」と「ソフトの世界のモデル」の両者がプロセス的に融合する方向で進み、これらの外部要件と親和性の高いモデルを使用した開発の適用がますます広がっていくものと思います。
また、モデルは、システム開発の上流工程で“分析・設計のツール”として、下流工程で“コード/テストケース生成”として活用できるため、従来のコーディングによるシステム開発から“モデリングによるシステム開発”へのシフトが顕著になっていくものと考えられます。
さらに、モデルは設計書としての役割にとどまらず、その質が最終的に出来上がるソフトウェアの機能的・非機能的な品質にも直結します。これからの組み込みエンジニアは、「制御」「ソフトウェア」のどちらか一方だけを知っていればよいということではなく、両者の内容をよく理解し、使いこなせるスキルが求められるでしょう。
以上のように、モデルを使用したMBD&MDDによる開発は、今後さらに広がっていくと予想されます。
しかし、モデルの適用範囲が広がることで開発現場では、以下のような課題が発生することがあります(表4)。
課題 | 課題の内容 | |
---|---|---|
モデルの属人化 | 特に制御モデルは「システムの振る舞いを明確に定義できる = 詳細な記述が可能」であるため、その記述の仕方・範囲および内容が属人化する傾向にある。システムの規模が大きくなると、この問題が顕在化し、時にモデルを使用したコミュニケーションにすら支障が生じる | |
モデルの品質 | 単に設計書としてのモデルから、コード生成やテストケースの作成などにモデルを使用するため、モデルの品質がソフトウェアの機能・非機能品質に直結する。ソフトウェアのパフォーマンスや使用リソースに影響を与えるため、これまで以上にモデルの品質が求められる | |
ツールへの依存 | 「制御の世界のモデル」と「ソフトウェアの世界のモデル」の融合や、モデルの検証および、コード・テストケース生成など、モデルを使用する開発は使用するツールに大きく依存する。それぞれのツールの“クセ”や“仕様”を把握してシステム開発を進める必要がある。また、高機能なツールに依存し過ぎて、そもそもの原理や仕様の理解が置き去りにされる場合もある | |
ドキュメント | モデルのみではシステムで何をしたいのかをすべて表現することは不可能。モデルで表現する内容と、自然言語で表現する内容を明確にして、システムの内容を把握できるようにする必要がある | |
管理の仕方/使用モデル | 設計書・モデル・コードなどのほかに使用するツールの管理を行う必要がある。また、一概に「モデル」といっても「ソフトウェアの世界のモデル」だけでも「UML」「SysML」「EAST ADL」などさまざまなものが存在する。使用するドメインに適したモデルを選択する必要がある | |
表4 モデル開発適用の課題 |
前述のモデル開発適用の課題は、実はハンドコーディングしている際の“コーディングの課題”とも共通する内容が多くあります。
モデルを使用することで抽象化レベルは上がりますが、モデル自身が以降で生成されるコードなどと直結するため、ハンドコーディングしている際と同様の課題が生じるわけです。
このようなモデル開発適用の課題に対して、筆者らは下記のような対応をしています(表5)。
課題 | 課題解決に向けた対応内容 | |
---|---|---|
モデルの属人化 | 開発するシステムのアーキテクチャを明確にし、アーキテクチャ違反を起こしていないかどうかをレビューなどで精査する。また、モデル作成時のガイドラインを作成して、それに則するようにモデルを作成する | |
モデルの品質 | ||
ツールへの依存 | 入力するモデルによってどのようなコードを生成するのか、などをあらかじめ検証する。生成されたコードが期待しているパフォーマンスに満たない場合は、コードを修正するのではなくモデルから見直す | |
ドキュメント | 各プロセスで作成されるドキュメントの構成を再定義し、モデルで説明する個所には、なぜそのようなモデルになったか、などの理由・目的を自然言語で記述する | |
管理の仕方/使用モデル | 設計書・モデル・コードなどのほかに使用するツールのバージョン管理を行う。現時点では「UML」「SysML」を使用してソフトウェア側のモデルを作成する | |
表5 課題の解決に向けて |
本連載では、これらの手法を使用することで、作成したモデルを使たシステムのシミュレーションやドメインをまたぐレビュー/コミュニケーションを円滑に行い、早い段階での仕様の抜け・漏れや妥当性の検証ができることを紹介してきました。加えて、ここ最近の開発でコーディングなどの下流工程でもモデルが使用されつつある現状もご理解いただけたのではないかと思います。
実際の開発現場では、多種多様なツールを使用して、さまざまな取り組みが行われています。本連載の内容が、MBD&MDDを活用していくうえでの助けになれば幸いです。(連載完)
Copyright © ITmedia, Inc. All Rights Reserved.