2016-07-31 8 views
0

私はいくつかのメトリックを計算するためにRubyでJavaプロジェクトの表現を作成しています。私はJavaで利用できる言語要素のRubyクラスを作成しています(JavaClassJavaInterfaceJavaMethodなど)。私はRubyクラスのUMLクラス図とその関係(JavaClass contains 0..* JavaMethods)を描画しています。私はUMLに次のように表現する方法がわからない継承されたフィールドで固定値のUMLクラス図

  • JavaFileは正確に一つのMainClassJavaFile自身と名前を共有含まれています。
  • MainClass'public''protected''default'、又は'private'ことができるタイプVisibilityのフィールド'visibility'を含む、JavaClassを拡張します。

JavaClassは、4つの可視性の値のいずれかを有していてもよいが、MainClassは、改質'public''default'に制限されます。 Visibilityの値のうちの2つだけがUMLのMainClassで有効であるという事実を表現する方法はありますか?

答えて

0

メタ制約によって表現できるモデルのコンテキスト情報を求めています。これは、モデルのメタモデル(モデリングルール)を実行する必要があり、その制約に従うためにモデリングツールに「何か」を実装するために使用できます。その「何か」は、定期的に実行される整合性チェックや制約をチェックするためのJITコードです。

+0

ありがとうございました:) 私はUML図の追加情報として制約を追加します。私は[OCL](https://en.wikipedia.org/wiki/Object_Constraint_Language)がこれを行う正しい方法だと思います。 – seiferms

0

パブリック値とデフォルト値のみを含む可視性の特殊化であるLimitedVisibilityを作成できます。 MainClassはJavaClassの特殊化であるため、属性の可視性を再定義して、LimitVisibilityで型付けされていることを示すことができます。

あなたのMainClassの可視性の属性は、そのようになります。

visibility:LimitedVisibility {redefines visibility} 

機能(例えば属性)が再定義可能であることを示す意味は図9.9に示します。 UML仕様(これはRedefinableElementのサブクラスである)および図9.10の詳細を参照してください。セマンティクスは9.5.3節で説明され、表記の詳細は9.5.4のセクションと9.5.5の例、特に図9.11に示されています。

関連する問題