ASF2023 講演動画を公開

安全性とセキュリティでMBSEを強化

セキュリティと安全性の懸念は、システム要件と一緒に引き出されることが望ましいものの、通常これらは考慮されず、各担当者の作業は、様々な形式・言語・ツールに分割される。この状態では、トレーサビリティやバージョン管理が制限され、ツールによる自動化は限定的で、大規模・複雑化するシステムの開発の厄介な課題になっている。 本講演では、セキュリティと安全性の側面を他のシステム開発手法と統合する、自動車を対象としたモデルベースのアプローチを紹介する。
 
 1300名以上の申し込みがあり、当日は zoom と Vimeo で500名以上の方に参加頂きました。MBSEで安全性とセキュリティの側面にも取り組むことへの関心が高まっていることを実感しました。


ライブラリ、フレームワークを活用する究極の手段 = DSM

殆どの開発者にとってフレームワークの正しいコンポーネントを探すことは簡単ではありません。考慮すべき相互依存性、排他関係、同一機能を実現する複数の選択肢などの存在は、フレームワークを正しく使いこなす為の学習に多くの時間を費やすことになります。
このような問題は、DSMで開発の抽象度を上げながらフレームワークの詳細を隠蔽することで解決します。D S Mではフレームワークは利用可能なオブジェクトとなり、高いレベルのコンセプトでモデル化されたアプリケーションから、フレームワークを巧みに活かした実用的なコードが生成されます。
この自動化は、単一ドメインの要件だけを満たすDSM言語とジェネレータによって得ることができます。DSM言語に設計のルールやコンポーネント使用上の制約を持たせることで、決まりきった作業を最小限に抑え、ありがちなエラーを未然に防ぎ、フレームワークが正しく使用されることを保証すると同時に製品開発を加速します。
これは熟練者の知識が全ての開発者で共有できるようになるということです。
ジェネレータは、コードとビルド用のスクリプトを同時生成させることに加えて、テストケース、各種ドキュメント、ハードウエアの割当てやデバイスの構成、Simulink等の各種ツールとの相互変換など、様々な用途に活用されます。
 

 
IPA 独立行政法人情報処理推進機構 先進的な設計・検証技術の適用事例報告書

持続的な進化を支援できる唯一のツール

ドメイン固有言語のコツは、まず小さな範囲に限定して言語とジェネレータを試すことです。そしてユーザの意見を取り入れて改善します。リスクを最小限に抑えながら、短期間の成果で組織の賛同を得て、範囲を段階的に拡げます。また製品の持続的な変更に応じて、言語とジェネレータも柔軟に進化させることも重要です。MetaEdit+では言語とジェネレータの定義が一つに統合されるので、イテレーティブかつインクリメンタルな開発を支援し、一部分への変更を全ての定義と既存モデルに自動反映させられます。このような専用ツールを用いない場合、DSMの開発に数年・数億円を要してしまい、継続的な保守が成り立たないことが多く報告されています。

 
 
 

MetaEdit+でなら通常1~2週間で開発できる

Poral社のDSMは、スポーツウォッチのコンセプトでわかりやすいモデルから、ジェネレータで完全なコードを自動生成して、開発の生産性を10倍以上改善しました。生成されるコードはマニュアル実装より高品質であることや、モデルが全ての利害関係者に理解されること、新しい開発メンバーが即戦力になることも成果として報告されています。

MetaEdit+ Workbench は、ドメインスペシフィックモデリング言語環境を構築するためのツールです。シンプルでありながら強力なメタモデリング言語とユニークなGUIによる設定環境を用いて、モデリング言語のコンセプト、プロパティー、ルール、シンボル、言語のチェックレポート、コードやドキュメントの自動生成、などの定義が簡単に行えます。インストール内には再利用可能な多くのライブラリもあり、導入後直ちに作業を始めることができます。
 

独自のモデリング言語を設計する手順を紹介

 

ドメインスペシフィックモデリング言語を作るには、まず開発熟練者がモデルの属性、ドメインコンセプト、ルール、モデルからコードへのマップなどを定義します。(通常2週間、大規模システムでも3人月。良いツールなら1~2年もかからない!) 
 
そして開発チームはシステムをモデリングして、完全なコードを自動生成します。抽象度を上げて、モデリング作業は製品をスケッチする感覚にまで高めることができます。
 
人手に頼った、仕様書からコードへのマッピング、フレームワークやライブラリに対する習熟・解析作業などから開放され、製品デザインに集中することができるようになります。 これは全ての開発者が熟練者なみのコード開発能力を身に付けたに等しく(熟練者のノウハウを共有)、飛躍的に生産性と品質を向上させます。 
 
-生産性が10倍上がった
-100%のコードが自動生成できる
-デザインドキュメントも生成してレビューに活用
-新メンバーの研修期間が6ヶ月から2週間に
-製品機能を意識した高い抽象度で開発が出来た(コード実装では無く)

MetaEdit+ Modeler を用いて、MetaEdit+ Workbenchで定義されたモデリング言語をリポジトリから呼び出して、モデリング作業が行えます。複数のユーザーと複数のプロジェクトに対して、主要なプラットフォームで動作します。 
 

 
MetaEdit+ Modeler は専用のモデリング言語をサポートする完全なGUIツールを提供します。モデリング言語に対する追加・改善は、グラフィカルなモデル、マトリクス又は表を用いるモデリング環境へ即座に反映されます。
 
また、フィルターを使ったデザインの表示、部品の追加・修正、他のモデルとのリンク、モデルのチェックが行えます。デザインされたモデルを、HTMLやワード形式に出力したり、完全なソースコードを生成することが出来ます。

MetaEdit+では、 マルチユーザ・モデリング環境をサポートしています。MetaEdit+ Serverを追加することにより、アプリケーションモデルや、モデリング言語(メタモデルのコンセプト、ルール、シンボル、ジェネレータ)が同時に編集できて、その結果は他のユーザへシームレスに反映されます。

 

チェックアウト・チェックインを意識しなくても良い
差分や比較を取る必要がない
人手によるマージ作業を排除
モデリング言語開発担当によるアップデートを待つ必要がない
モデリング言語の最新版を探す、アップロードする必要がない
メタモデルの修正に合わせて手作業でアプリモデルを更新する必要がない

 

 

MetaEdit+ なら、マージの苦労やロックされることの心配無く、モデルのバージョン管理を行えます。首尾一貫した最新バージョンのモデルで、一連の変更を全員にコミットすることができます。何が変更されたのか、グラフィカルに、あるいはテキストベースやツリー構造で表示させて、バージョンとしてコメントして名前を付けることができます。またバージョン情報は主要なバージョン管理ツールに自動保存されます(a local Git repository, a team’s SVN, on GitHub, Bitbucket etc)。別のユーザーによる変更や、旧バージョンの状態を見るためのバージョン間の比較は、MetaEdit+からでもバージョン管理ツールからでも行えます。
 

ツリー構造 で変更表示(ドメインスペシフィックな構造やシンボルで:XMLなどでは無く)
グラフィカル に変更をハイライト
テキストに変更をハイライトさせることや、モデルデータの表示をカスタマイズできる
外部バージョン管理ツール(Git や SVN)との容易な連携
マルチユーザ版では、XMLによるマージの苦労無しに他のユーザとコラボレーションできる
多様な開発マシン間で最新版に同期できる

 

 
 

MetaEdit+ は特定ドメイン向けにカスタマイズしたドメインスペシフィックモデリング言語を開発してメンテナンスするための専用ツールであることから、以下の例を基に状況に応じた戦略が取れる。
 
1:モデリング言語の使用法
 
数十人、数百人からの問い合わせに対応できる体制が必要であっても、ドメインスペシフィックなルールや制約を持たせることや、言語の抽象度を上げることで、UMLやSimulinkなどの汎用モデリング言語と比較して、求められるサポートの量や内容は限られる。
 
また特定ドメイン向けにカスタマイズされたモデリング言語のサポートは技術的に難しくない。本来ドメインの知識は、それを使用する組織が持ち合わせるので、サポートはできるだけ現場に近いことが望まれる。チーム内、あるいは社内で組織されるのが適切。数百人規模で使用されたNokia社の事例では、新メンバーの学習期間が6ヶ月から2週間になったことからも、言語のトレーニングやサポートが容易であることが理解できる。
 
2:モデリング言語への機能追加や変更
 
モデリング言語を使用する担当者が数百人でも、そのモデリング言語を開発して、要求に応じた機能追加や変更作業に必要な開発者は数人。例えば、数百人規模の開発に使用されたNokia社のモデリング言語は、MetaCase社の数人によって開発され、メンテナンスされた。汎用モデリング言語に比較して詳細な変更・修正等は必要ない。
 
そもそもモデリング言語の開発を意図していない環境(UMLやEclipse )をベースにすると数年以上かかる作業に比較して、MetaEdit+であればモデリング言語開発は2週間程度。イテレーティブにモデリング言語を開発して、メンテナンスを容易にする仕組みを備えるので。(参考 : UMLより10倍速い)
 
 

もし社内専用のアーキテクチャモデリングやシステムモデリング言語に対して、数百ある組織ごとに異なる要求に応じた変更が必要ならば、富士設備、MetaCase社に相談を

 
ただ既にあるモデリング言語に対する機能追加や変更には、モデリング言語を一から開発する程のスキルは必要ないので、チーム内や社内でもサポート体制を組織化できる。(ここでもできるだけ現場に近いことが望まれる)
 
またアーキテクチャモデリングやシステムモデリング言語であれば、社内開発プロセスを横断的に支援する組織が請負って、異なる要求を単一のモデリング言語環境にまとめることもできる。
 
できるだけツールメーカに依存したくないなら、独自のモデリング言語を開発して、そのサポート体制を作ることが最善であり、MetaEdit+はそれができる唯一つのツール。

MetaEdit+ Workbench:モデリング言語とジェネレータの開発と使用
MetaEdit+ Modeler:モデリング言語とジェネレータの使用
 

 
弊社とMetaCase社にて、お客様のDSM環境の開発を請け負うこともできます。費用は規模にもよりますが、始めはプルーフオブコンセプトとして小さな部分を3日程度で開発し、そのメタモデルを用いて講習会を行います。これをベースにして、メタモデルをお客様側で進化させる、あるいは残りの部分も全てお請けすることが出来ます。携帯電話のような大規模システムでも、DSM環境の開発は3ヶ月程度です。 MetaEdit+ は専用のデータベースで管理される為、小さな部分を作ってから少しずつ柔軟に進化させられます。
 
国内でDSM開発を依頼いただいたお客様からは、完成度が高く、メタモデル開発における多くの知見が得られたと、好評頂いています。
 
詳細については、お問合せ頂けると幸いです。
 


Modeler Modeler with API
Workbench
モデリング機能
ジェネレータ機能
APIでツール連携・統合

XMLでツール連携・統合

モデリング言語を作る機能


ジェネレータを作る機能


お問い合わせ

購入前の製品説明・資料請求・見積依頼・デモ依頼など

 メールでお問い合わせください 
 

購入後の製品の技術サポートに関するお問い合わせ

 技術的なお問い合わせは、ヘルプデスクまでメールでお問い合わせください