Ivar Jacobson(Ivar Jacobson International)
Steve Cook(Microsoft)

(訳 チェンジビジョン 平鍋健児、大田緑、中原慶、近藤寛喜)


 UML仕様のシンプル化が2011年に完了したら、次の段階として、UMLをリファクタリングすることができます。リファクタリングによって、さまざまなユーザーから発生し、かつ変化するニーズに効果的に対応できるはずです。

 以下、この問題に適用できるテクニックを提案します。ここでは、既存のUMLとの後方互換性を維持することがとても重要になります。我々は既存のツールやモデル、教育に対するこれまでの投資を無駄にするような変更をしてはならないのです。

20以下の要素で「カーネル」を構成

 提案の最初は、とても小さなUMLカーネルを作成するというものです。カーネルはオブジェクト、型、アクションなど20以下の要素で構成します。ほぼ誰でも、数時間でカーネルを学べます。

 カーネルには本当に必要な要素だけを持たせて、完全性を保つようにします。開発者にとって、カーネルだけではあまり役立たないでしょう。しかし、抽象的なコンセプトをモデリングするにはそれで十分かもしれないのです。カーネルは、さまざまな要素を記述する基礎となることを意図しています。

ユースケースでカーネルを拡張

 カーネルに、さらに役立つコンセプトを加えてみましょう。UMLの最も本質的なユースケースを、カーネルの拡張部分として定義します。「要求からテストまで開発する」というのがその例です(図1)。

図1●関心事の分離(Separation of Concerns)によってUMLを簡略化する
図1●関心事の分離(Separation of Concerns)によってUMLを簡略化する

 ここでカギとなるのは、カーネルにはUMLのほとんどのユースケースで必要になる一般的要素と属性だけを含めるようにして、カーネルを小さいままにすることです。「要求からテストまで開発する」ユースケースをサポートするために必要な要素や属性は、このユースケースとともに追加されます。つまり、ここで追加される要素や属性はカーネルに属していません。

 新しいものはすべて新しいユースケースとともに追加され、カーネルはそのユースケースをサポートする。これが核心となる考え方で、アスペクト指向構造と呼びます。

 この構造により、カーネルはクリーンでシンプルな状態を保つことができます。どのように拡張するかに関する知識を、カーネルが持つ必要はありません。それらは新しい要素に必要なユースケースとともに追加されます。