7

私は現在、テスト駆動開発の支持者として、モデル駆動ソフトウェア開発 (MDSD) / モデル駆動アーキテクチャ (MDA) の支持者と競争しなければならない状況に直面しています。

私の意見では、コード生成はツールボックスの貴重なツールであり、必要に応じてテンプレートと自動化を多用しています。また、内部の仕組みを理解したり、ホワイト ボードでアーキテクチャについて話し合ったりするのに役立つと思われる場合は、UML で図を作成します。ただし、UML を使用してソフトウェアを作成すること (コードのスケルトンだけでなく、ステートチャートとシーケンス図を作成して作業コードを作成すること) が、多層アプリケーション (データベース層、ビジネス/ドメイン層、Gui、場合によっては分散型) にとってより効率的であるとは思えません。MDSD に関して言えば、CASE ツーリングはもはや単なるツールではなくなったように思えますが、それは満足すべきものです。

これらすべてのことから、実現した実世界のアプリケーションのサクセス ストーリーがあったかどうか疑問に思います (成功とは、予算内で製品が時間内に展開され、バグがほとんどなく、ソフトウェアの一部が後で再利用されたということです)。この基準は、厳格なモデル主導のアプローチを使用して開発されました。

  • オブジェクト管理グループ (OMG) や MDSD/MDA/SOA/ に関連するコンサルタントとは何の関係もありません。
  • アプリケーションはビジネス プロセス モデリングとは関係なく、CASE ツール自体ではありません。
  • アプリケーションはエンドユーザーによって積極的に使用されています
  • 生のテーブル値を表示するだけでなく、一般的な MDA/MDSD の例 (「コーヒー マシン、信号機、食器洗い機をモデル化する方法」) の 1 つではないユーザー インターフェイスを含む、少なくとも 3 つの層があります。
4

5 に答える 5

3

CAN 経由で接続された 4 つのプロセッサを使用する組み込みシステム プロジェクトで MDA とコード生成を使用しました。20 を超えるモーションの軸と、非常に多くのセンサーがありました。このシステムは、機械コンポーネントが評価および修正されたため、非常に堅牢で保守しやすいものでした。

モデルを操作してコードを生成したため、モデルは常に最新の状態でした。主題の分離を達成するために、慎重なドメイン分析を行いました。モーター制御は非常に高い性能を必要とするため、モデル化も生成もされませんでした。私たちのネットワーク ドライバーも手作業でコーディングし、必要に応じてブリッジ サービスがシステム内の任意のサービスにイベントを送信できるようにするインターフェイスを作成しました (ただし、これは、プロセッサ間の依存関係を最小限に抑えるために厳密に制御されていました)。

この方法を使用するには多少の規律が必要でしたが、ソフトウェア以外のタイプでもレビューできるため、動作するモデルがあることは素晴らしいことでした。

モデルのバージョン管理と差異化は少し大変でしたが、ローカライズされた小さなチームだったので、マージの問題を回避することができました。

Pathfinder Solutions (当社のツール ベンダー)の優秀な人材が、プロジェクトを通じて指導を行うことができます。

于 2010-06-30T18:26:48.923 に答える
3

MDSD の使用に関する小さいながらも有用な証言が、Model Driven Software Network に投稿されています。

http://www.modeldrivensoftware.net/profiles/blogs/viva-mdd-follow-up-building-a?xg_source=activity

これは開発中の比較的小さなアプリですが、MDSD が実際に動作している良い例です。

Metacase のサイト ( http://www.metacase.com/cases/index.html ) には、さらに多くの成功事例が掲載されています。Metacase は、DSM (Domain-Specific Modeling) を実装する MetaEdit+ を販売しています。DSM は MDSD の一種です。

DSM に非常に近い、もう 1 つの形式の MDSD である ABSE (Atom-Based Software Engineering) も開発しています。ABSE の概要はhttp://www.abse.infoにあります。

于 2010-06-23T23:35:12.453 に答える
2

以前のコード生成会議のスライドもご覧ください。これらの講演のいくつかは、成功したケーススタディからのものでした。例: http: //www.codegeneration.net/cg2009/slides.php

于 2010-06-30T17:55:02.530 に答える
1

私は、GoogleClosureで管理者スタイルのWebアプリを生成するMDSDシステムに取り組みました。あなたの質問は説得力があると思います。複雑すぎると、MDSDシステムを使用するのが難しくなります。単純すぎると、現実の世界で役立つアプリを生成できなくなります。MDSDが本当に優れているのは、開発者が多くの配管スタイルのコードを入力する時間を節約することですが、MDSDを複数のリリースで効果的に維持するにはどうすればよいでしょうか。要件はさまざまな方向に進む可能性があります。それが本当の挑戦です。私は最近、そのプロジェクトで学んだMDSDの教訓についてブログを書きました。

于 2012-08-11T23:42:53.840 に答える
1

私はレガシー モダナイゼーションのプロジェクトの 1 つに取り組んでおり、そのプロジェクトでは Bluage という名前の MDA ツールを使用しています。それは大規模なヘルスケア組織向けであり、本番稼働しているため、成功していると言えます。MDA は、サポートが終了する pacbase などの一部のテクノロジーから KDM モデルを生成できるため、レガシー モダナイゼーションの場合に適しています。

于 2012-07-31T14:39:39.577 に答える