1

状況は次のとおりです。

私たち(学生)は、おそらく天文学的な統計データを処理するために設計された、大学向けのクロスプラットフォームソフトウェアプロジェクトを作成する必要があります。学生(さまざまなスキルを持つ)がプロジェクトを年々維持/改善し続けることができることが期待されます。

主なアイデアは、プログラムを主要部分といくつかの異なるモジュールに分割することです。これらはおそらく共有ライブラリとして、独立して作成および接続できます。これらのモジュールにはそれぞれ、特定のデータを分析および処理し、出力 (数値、文字列、画像など) を与えるためのメソッドが含まれます。

そのため、主な仕事を行うことができる比較的熟練した学生の小さなグループがあります。主なプログラミング言語として C++ を選択し、クロスプラットフォーム GUI として Qt を選択することが決定されました。

主な問題は、将来モジュールを開発する人についてです。ここでの教育は Pascal/Delphi に大きく基づいており (それはウクライナです。すべてがそう言っています :))、C++ コースは貧弱であり、大多数の学生は怠惰すぎて自分で何かを学ぶことができません。知る。

主な質問は次のとおりです。

次の要件を持つモジュール システムを設計する適切な方法は何ですか。

  • プロジェクトはクロスプラットフォームである必要があります
  • データ処理の主な機能は、(比較的) 独立したモジュールのセットとして実装する必要があります
  • モジュールは異なる言語で書かれている必要があります (Pascal は必須です)。
  • モジュールは、ウィンドウを作成することによって追加のデータを要求できるようにするか、何らかの方法でメイン フォームでウィンドウ生成メカニズムをトリガーして、新しいデータを取得するか、それともより良い方法でしょうか?
  • COMテクノロジは使用できません
  • 将来新しいモジュールを作成する学生の平均スキルはおそらく低い

どんなアイデアでも歓迎されます。

4

2 に答える 2

1

データ プロバイダーとデータ コンシューマーのコントラクトを設計することから始めます。技術的な制約のため、コントラクトは関数として表現し、ネイティブ ライブラリとして実装する必要があります。

次に、コア モジュールは、データ プロバイダーとデータ コンシューマー コントラクトを実装するすべてのプラグインを受け入れる必要があります。プラグイン アーキテクチャは簡単に実装できます。フォルダーをスキャンして、期待される署名 (コントラクト) の機能を備えた共有ライブラリがあるかどうかを確認するだけです。はいの場合、メイン メニューに接続できるように、プラグインも自己紹介します。

データ プロバイダーとデータ コンシューマーを持つことで、ほぼ永遠に新しい機能を設計できます。新しいデータ プロバイダーは、ファイル、Web サービス、その他あらゆるものを使用してデータを作成できます。新しい消費者は、データの分析、エクスポート、チャートの作成など、必要なものを何でも使用できます。

私が懸念しているのは、Delphi の要件とクロスプラットフォーム開発の要件です。私のアドバイスは、Delphi を忘れて Java に切り替えることです。クロスプラットフォームであり、優れた無料の開発者ツールがあり、2 年、5 年、または 10 年後にはプロジェクト メンバーに認知される可能性が高くなります。

于 2013-04-20T22:24:11.807 に答える
0

Wiktor Zychlaの回答に基づいて、Javaとコンポーネントベースのアーキテクチャを使用することを選択した場合は、OSGIを使用することをお勧めします(Javaのみを使用するほど客観的ではないため、選択について意見を述べない場合があります)。OSGI を使用すると、データ プロバイダーとデータ コンシューマーのコントラクト定義が完全に管理され、システムは定義されたコントラクトに従ってモジュールを自動的に接続します。デプロイ用にスキャンされたフォルダーは既にここにあります。ホット デプロイ、同じコンポーネントの複数バージョンの同時実行などをサポートしています。

http://en.wikipedia.org/wiki/OSGi

機能要件によると、複雑な数学演算用の豊富なライブラリを提供する言語を使用することもお勧めしますが、パスカル機能はわかりません。

于 2013-04-20T22:54:28.380 に答える