問題タブ [ocl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
uml - ネイティブ UML 型を持つテンプレート クラス、およびテンプレート クラスの OCL 制約
同じ UML クラス図について 2 つの質問があります。1 つ目は、UML ネイティブ型を使用してテンプレート クラスをモデル化する方法についてです。2 つ目は、OCL 制約でテンプレート クラスを処理する方法についてです。
質問 1: テンプレート クラス
インターバルにテンプレート クラスを使用し、UML 標準を使用して表現したいと考えています。間隔は、整数と浮動小数で使用できる必要があります。これまでに見つけた最良の方法は次のとおりです。
ここでのアイデアは、パラメーターT
がどちらかのクラスのスーパークラスでInteger
あるテンプレート クラスを持つことFloat
です。
問題は、UML の基本型をグループ化するために再定義する必要があることです。T
テンプレートクラスを定義する明確な方法があり、それがタイプinteger
またはfloat
(ここではUMLのプリミティブです)のいずれかであると言うかどうかを知りたいです。
質問 2: テンプレート クラスの OCL 制約
私の問題の 2 番目の側面は、OCL 制約を追加して、間隔に少なくとも 2 つの要素が含まれている必要があることを示したいということです。T
問題は、前のクラス図のバインディングに応じて、ルールが同じであってはならないことです。
フロートの場合:
整数の場合:
そのため、OCL で、 が にバインドされている場合にのみ適用されるルールと、T
にバインドされてInteger
いる場合にのみ適用されるルールがあることを示す方法を見つける必要がありますFloat
。私は OCL の専門家ではなく、役立つ情報を見つけることができなかったので、助けを求めています。
前もって感謝します、
バスティアン。
constraints - ドレスデン OCL 負荷の制約
私はドレスデン Ocl を学ぼうとしています。AspectJ 制約コードを生成しようとすると。次のエラーが表示されます
選択したモデルには拘束が含まれていません。最初に制約をロードしてください。
ここで何が問題なのか教えてください。また、「AspectJ 制約コードの生成」を説明するステップバイステップのチュートリアルを教えていただければ、それも素晴らしいことです。
ありがとう
ocl - OCL でリンクされたリストをたどる
OCLの実装を持つ Delphi には Bold を使用します。OCL は、リストのフィルタリングなどに適しています。しかし、リンクされたリストをトラバースするための適切で一般的な方法は見つかりませんでした。
class があるとしPlanMission
ます。PlanMission.previous
それ自体を指す単一のリンクが含まれています。ブール属性もありますisDummy
。
PlanMissions
のインスタンスができるまでのリストをトラバースしたいisDummy
。
できます
私が本当に欲しいのは次のようなものです:
traverseList
は存在しませんが、2 つのパラメーターが必要です。
previous
: たどるリンクisDummy
: ブール条件なので、いつ停止するかがわかります
これはどのように達成できますか?
明確化を編集 Delphi コードは必要ありません。OCLのコードが必要です。Boldを使用している人は、私が何を意味するかを知っています。OCL はクエリ オブジェクト、属性などを備えたクエリ言語です。副作用がないため、読み取り専用です。OCL の概要については、こちらを参照してください。
eclipse-emf - テンプレートの実行ごとに同じ順序で Acceleo にコレクションを反復処理させるにはどうすればよいですか?
Modisco KDM メタモデルに基づく EMF モデルを使用しています。Acceleo テンプレートのある時点で、コレクションを反復処理する必要があります。たとえば、次のようになります。
[for (e: AbstractCodeElement | action.codeElement) セパレーター(', ')][e.generateCode() /]
action.codeElement はコレクションであり、modisco の kdm.ecore メタモデルはそれを順序付けされていないと定義しています。
ジェネレーターを実行するたびに、出力が異なる順序で生成されます。シリアル化されたモデル xmi は特定の順序を明確に強制し、モデルを開くたびにモデル エディター (emf デフォルト エディター、modisco エディター) は常に同じ順序を示します (要素が xmi ファイルにシリアル化された順序と一致します)。
kdm.ecore メタモデルを変更してセットを順序付けることはできないため、Acceleo を常に同じ順序で反復させる回避策はありますか?
前もって感謝します
ocl - qvt-o コードでの Eclipse MDT/OCL API のインポート
モデル変換では、文字列としてネイティブ OCL クエリがあり、ソース モデル内の特定のモデル要素を識別して選択するために、その OCL 文字列を解析して実行する必要があります。
qvt-o コードで eclipse MDT/OCL API をインポートすることは可能ですか? ジャワのように
つまり、Java とブラックボックスを使用せずに API を qvt コードにインポートすることで、次の例に直接従うことができますか?
ありがとう
ocl - UML モデルで OCL クエリをプログラムで実行する
Eclipse MDT/OCL実装を使用して、UMLモデルでOCLクエリをプログラムで実行する方法の例を誰でも提供できますか? Eclipse のドキュメントを読みましたが、動作する例が見つからず、さまざまな例外やエラーが発生し続けています。
ご協力いただきありがとうございます。
uml - OCL 機能操作
マスターのサブジェクトの 1 つを渡すための OCL 操作について助けが必要です。私はOCL言語についてあまり知りません。
私がしなければならないことは次のとおりです。
操作を実装します。
この操作は、playerName という名前のプレイヤーがいるゲームが存在し、そのプレイヤーが hasTurn 属性を true に設定し、1 つの操作 validMovement(movement) を呼び出したときにゲーム ボードが true を返す場合にのみ、true を返します。
操作
Board:validMovement(g:Game):bool
が存在すると想定されており、OCL でそれを記録する必要はありません。
uml - OCL の *パッケージ* とは何ですか?
OCLでパッケージを作成する方法は知っていますが、この構造体の正確な意味は何ですか? なぜ、いつパッケージを使用する必要があるのですか?
私のスクリプトのパッケージの例として、彼らは書いています
しかし、私が書くだけの場合との違いは何ですか