問題タブ [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.

0 投票する
1 に答える
709 参照

uml - OCL を含む UML を正式な仕様に使用できますか?

UML は非公式の仕様に使用されており、そのセマンティクスにはいくつかのあいまいさがあるため、質問しています。ただし、OCL を使用して、事前/事後条件、不変条件、およびその他の制約を非常に効率的に指定できると思います。

最近 Z 記法と代数仕様に出会いました。私の質問は、UML と OCL の組み合わせで正式な仕様として十分ですか?

0 投票する
3 に答える
695 参照

sql - SQL を OCL に変換しますか?

OCL に変換したい SQL があります。SQLが苦手なのでこれでメンテナンス性を上げたい。Interbase 2009、Delphi 2007 を Bold およびモデル駆動型開発で使用しています。ここで誰かが SQL と OCL の両方を上手に話せることを願っています :-) 元の SQL:

少し単純化した後:

: MessageType には、'IFTMBP' と 'IFTMBF' の 2 つのケースがあります。

したがって、リストされるテーブルは ScaniaEdiSolMessage です。次のような属性があります。

  • MessageType: 文字列
  • ChassiNumber: 文字列
  • ShipFromFinland: ブール値
  • 無効: ブール値

また、BoldId をキーとして RecomingOwner という名前のテーブル Parcel へのリンクもあります。

そのため、ScaniaEdiSolMessage のすべての行を一覧表示し、さらに ScaniaEdiSolMessage のすべての行を一覧表示して EdiSolMsg という名前のサブクエリを持っているようです。次に、ほぼすべての行を除外します。実際、上記のクエリは 28000 レコードから 1 つのヒットを返します。

OCL では、すべてのインスタンスを簡単にリストできます。

たとえば、選択して行を簡単にフィルタリングすることもできます。

しかし、上記の SQL に一致する OCL を作成する方法がわかりません。

0 投票する
4 に答える
1786 参照

uml - OCL で UML を使用したことのある人はいますか? プログラマーはそれを使用しますか、それともコードを書かないアナリストだけですか?

なぜ私たちは最初に設計の問題に取り組み、視覚的な方法 (UML) を決定するのかについて頭を悩ませようとしています.簡単に動作することが証明されません。したがって、モデルのプロパティを証明するときが来たら、設計に制約を定義する必要があることがわかります。そのため、モデルの制約を定義する形式構文 (OCL) を設計します。この跳躍が出発点に戻るのを理解するのに苦労しています。OCL で邪魔された UML デザイン (パンフレットに示されているサンプルでさえ) は判読できず、無数の UML シンボルや規則よりもさらに難解です。だから私が知りたいのは、今日のソフトウェア開発の世界でOCLが使用されている主要な分野は何ですか? また、学ぶことは誰にとって関連性があるか、または学ぶ価値がありますか? あなたの仕事の役割はどのように見えますか? コードをまったく書かないアーキテクトは UML と OCL を使用しますか? それとも、それを実装する同じチームでシステムを設計および設計するプログラマーもそれを使用しますか?

[更新: 第二に、アジャイル開発は「重い」手順に反するように思われ、OCL のような設計図の制約のためのドメイン固有言語はあまりアジャイルに見えない. UML+OCL はどの「アジャイル」ショップでも使用されていますか、それともスクラム担当者によって一般的に避けられていますか?]

0 投票する
2 に答える
1344 参照

uml - Rational Software Architect 8 の UML プロファイルに対する OCL 制約

Rational Software Architect 8 と OCL は初めてです。1 つはクラスに適用され、もう 1 つは関連付けに適用されます。詳細については、図を参照してください。

代替テキスト

ここで、OCL を使用して制約を表現したいと思います。クラスに <> ステレオタイプがある場合、そのクラスに接続されているすべての関連付けにRPAssignmentステレオタイプを持たせます。Permissionでステレオタイプ化されたクラスには、属性や操作がないことに注意してください。

OCL 制約をテストするための小さな例を作成しました。これは、RSA によって作成された、対応する xmi ファイルの関連ビットと同様に、図です。

モデル

ナビゲート可能としてフラグが立てられている場合、アソシエーションの終わりは、属性と同様にプロパティであるように私には思えます。Permissionステレオタイプ クラス (およびいくつかのバリエーション)で次の制約を試しましたが、正しく機能していないようです。私が作成した例では、関連付けに必要なステレオタイプがないため、検証が失敗するはずであることに気付いたかもしれません。しかし、それは成功します。

ここで些細なことを見逃していますか?

0 投票する
3 に答える
722 参照

design-patterns - 設計パターンでの OCL および UML の使用

ステレオタイプと OCL 制約を使用して設計パターンの UML プロファイルを作成しようとした人はいますか? シングルトン パターン用に作成しようとしていますが、どのように、どこから始めればよいかわかりません...

0 投票する
1 に答える
2801 参照

ocl - OCL - アイテムごとに繰り返す

私は他のクラス(B)のコレクションを持つクラスAを持っています。

コレクション内の各クラス (B) に対してフィールドに制約があることを OCL で表現するにはどうすればよいですか?

私は次のように考えました:

0 投票する
3 に答える
281 参照

eclipse-emf - OCLからEcoreへの変換

Ecoreモデルファイルを生成できるOCLのパーサーを見つけようとしています。これにより、モデルを使用してメソッドをモデル化し、OCLステートメントを他の言語モデル(OCLからSQL(SQLだけでなく))に変換できます。

OCLからEcoreへのコンバーターの方法を知っている人はいますか?

0 投票する
1 に答える
349 参照

uml - OCLを介してEclipseModelingFrameworkモデルのOrderedSetを逆にする

最後の要素から最初の要素にアクセスする必要がある順序集合を持つUMLモデル(実際には、どのMOFモデルでもかまいません)があります。したがって、OCLを介してそれを逆にする必要があります。ソート基準として使用するためにOCLExpressionを必要とするsortedByメソッドがあるのを見てきましたが、それを使用する方法を理解できません。

何か案が?

0 投票する
4 に答える
3021 参照

ocl - OCL-不変条件についての説明が必要ですか?

今日はOCLについて教授と話し合いました。彼は、関数の定義されたコンテキスト内で不変条件、事後条件、および事前条件が許可されると信じています。

私のソフトウェア開発者は、OCLによってモデルに一般的な制約を課すことができると信じたいと思っています。このモデルのクラスPersonのすべてのオブジェクトの性別が男性である、またはクラスの車のすべてのオブジェクトに4つの車輪があるなどの制約は非常に便利であり、モデルに対して宣言型パラダイムを使用することは正しいと感じます。

私はそれを現実の世界のように見ています。ボルトにナットをねじ込むと、ナットは一方向にフィットします。これらは、ボルトにナットをねじ込むなど、どのようなアクションを実行しても保持される物理的な制約であり、違反したり、基本的な方法でモデルを無効にしたりすることはできません。

彼の見解は、OCLでは、コンテキストが提供される関数内でのみ制約(前後の条件/不変条件)を定義できるというものです。

誰かが私のためにこれを片付けることができますか?

0 投票する
3 に答える
559 参照

ocl - Dresden OCL Toolkit で実際の Java コードを生成することは可能ですか?

ドレスデン OCL を使用して、UML クラス図の制約を記述してみました。AspectJ コードを正常に生成できるように見えますが、モデル化されたクラス (およびその属性とメソッド) を表す Java コードを生成する方法が見つかりませんでした。Dresden OCL Toolkit で提供される例は、Java コードがすでに存在する場合に AspectJ コードを生成する方法も示しています (OCL22Java チュートリアル)。

内部に制約が埋め込まれた Java (AspectJ ではない) コードを生成することは可能ですか? もしそうなら、それはどのように行われますか?