MARTEとは何か
foundationsとannexesの特徴
foundationsパッケージには、design modelやanalysis modelで共通に用いられる各種概念要素が整理された形で定義されています。また、annexesパッケージには、共通に使われるデータ型や列挙型の定義、ほかのサブプロファイルを補助するためのオプション的なサブプロファイルなどが定義されています。
これらのパッケージで特徴的なのは、非機能特性(NFP: Non-Functional Properties)の値や時間にかかわる制限値などをモデル上で厳密に表現して取り扱えるようにすることを目的とした表記の強化に注力されていることでしょう。
非機能特性値の表現はどのようになっているのでしょうか。RTES開発にかかわらず、多くのソフトウェア開発の要件定義ではさまざまな特性値(例えば、レスポンスタイム、データ転送レート、メモリ使用量など)の正確な表現が重要になります。これらの表現があいまいだと、思わぬ勘違いや誤解による手戻りを誘発してしまうばかりでなく、モデル上でのシミュレーションや検証なども不可能となります。
MARTEでは、UMLのValueSpecificationを拡張する形で、モデル中に記述される各種の特性値表現の強化が施されています。特性値表記の厳密さを増すためにVSL(Value Specification Language)というテキスト形式の構文書式を導入し、ValueSpecificationの代わりにVSLで表記された特性値表現を用いることができるようになっています。VSLを用いた特性値表現では、値の統計量種別(最小、最大、平均、分散、パーセンテージなど)や単位などが明示され、より厳密に特性値を表現することができます。
時間の表現
実時間応答性が要求されるシステムや相互に同期しながら動作する分散系システムなどでは、厳密な時間の表現と取り扱いは重要なトピックの1つです。各種の特性値表現の強化と共に、MARTEでは時間の構造や計時的な値の表現と取り扱いも強化されています。
MARTEでは時間の構造を瞬間(Instant)の半順序集合としてとらえるモデルを採用しています。いくつかのInstantの順序付けされた集合をTimeBaseという概念で表現し、別々のTimeBase中にあるInstant間の関係を定義することによって、相互に関連する複数のTimeBaseの対応を取り扱います(MultipleTimeBase)。個々のTimeBase中のInstantへのアクセスはクロック(Clock)と呼ばれる概念を介して行われます。時間にかかわるいくつかの基本概念(TimedEvent、TimedProcessing、TimedObservationなど)は、明示的に特定のクロックを参照します。
MARTE annexesには、計時的な値(clocked value)、クロックの特性、クロック間の依存関係などをテキスト形式で記述できるようにするために、CVSL(Clocked Value Specification Language)とCCSL(Clock Constraint Specification Language)という2種類の構文も定義されています。必要に応じて、前述のVSLと組み合わせて時間にかかわる非機能特性値の記述に用いたり、モデル中の制約式の一部として利用することができます。
これらの概念や構文を利用することによって、例えば分散システム中の別々のノード(これらは別々のクロックに従って動作しています)で発生するイベントによる同期やタイミング制約などをモデル中により厳密な形式で記述できるようになっています。