MDAのメリット
先日講演した内容とそれに関連した話題を1つ。
MDAの目的とメリットについては多くの議論が存在する。
「何をもってしてMDAと言えるか?」から始まって「MDAはどう活用するのが正しいか?」などの議論ある。
MDAはビジネス系/制御系の両方のソフトウエア開発に利用されているし、製品や企業の開発戦略など開発の立場やMDAの期待によって変わる、とうのが正解であろう。唯一絶対的なやり方が存在するわけではない。
MDAは自動コード生成という部分に目が行くが、本来は上流モデル(PIM)の作業の成果の再利用や知識化により狙いがあった。
複雑化するソフトウエア開発中で、要求定義から分析/上流設計はタフで重要かつ年々時間がかかる作業である。
上流の作業は下流の品質と生産性に大きな影響をあたるために、ここをしっかり作業する必要がある。
この作業の成果物(PIM)を再利用できることは非常に意味がある。作業の成果の保守が簡単になり、かつノウハウと成果物に再利用や知識化が可能になるからである。
また、以後の上流の作業に同じシステムだけでなく他のシステムへの再利用が可能になるからである。
そのためには明確にアーキテクチャのPIMとPSMを意識して作業をする必要がある。
MDAの実績では、実のところ歴史的に見て組み込み・リアルタイム系で多くの実績を残している。
組み込み・リアルタイム系の開発では、リアルタイムOSやターゲット環境への最適化が作業としてかなりのボリュームがある上に、並行性・並列性なのデリケートな作業も存在するから、PIMとPSMの明確化によるMDAの価値は大きい。
さらに、ミッションクリティカルな製品に登載されることが多い、組み込み・リアルタイムシステムのソフトウエアは高品質が絶対的に要求される。
品質は上流からの作業のやり方とレビューに大きく依存するが、テストやはり重要である。また、正確なコーディングとレビュー及びテストは最重要な課題である。
特にテストでは組み込み・リアルタイムシステムのソフトウエアでは例外的なケースへの対応も含めるとテストケースをすべて設計し、実施するのは、現在のビジネス都合が最優先される状況では、事実上不可能になってきている。
そこでPIMと異なりPMSのモデルからプログラム言語への変換はMDAによる自動コード生成に期待がかかる訳である。
この期待は現在の組み込み・リアルタイムシステムのソフトウエアでは十分なスキルを持った担当者がいない中で、コードを開発し、レビューとテストも完全に実施できない状況では期待がかかって当然と言えるだろう。
開発コスト面からみてもMDAによる自動コード生成は有効なアプローチで、高い単価のエンジニアが今後もコーディングをしていたら国際的な価格競争に勝てなくなる。EUやUSがMDAを含めた開発環境による作業の自動化に最大限の力を入れているのはこれも大きな理由だ。
最近はソフトウエアでもATG技術を搭載した環境が利用可能になり、上流でしっかりとした設計を実施すればMDAと合わせてテストコードも自動生成が可能であるからMDAの期待は高い。
さらに静的検証ツールも第3世代を迎え、「充足可能性問題」を応用した形式検証静的解析ツール利用が可能になっている。
弱に言うと、MDA、ATG、形式検証静的解析ツールでも上流の設計がいい加減だと効果が出ないということも十分に理解しておく必要がある。
=HSCI Takanari Hashimoto(http://hsc-i.com/)=
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- 6つのテーマを同時並行作業(2019.07.05)
- すっかりご無沙汰してしましました(2018.05.27)
- CCCC(C AND C++CODE COUNTER)GUIランチャーの公開(2017.04.13)
- 作成したYicesのGUIからオプションを変えSMTを行う(2017.01.19)
- 『Yices』によるSMTソルバ(2017.01.18)
この記事へのコメントは終了しました。
コメント