計画段階でプロジェクトおよびパッケージを編成するための合理的な方法を決定しておくと、開発段階で時間を節約できます。
ビジネス・コンポーネント・プロジェクトとは、便宜上グループ化したファイルの集合です。複数のプロジェクトを、それぞれ特定のタスクに対して最適化したうえでワークスペースにまとめる場合について考えてみます。たとえば、メイン・プロジェクトにビジネス・コンポーネント・アプリケーションのすべてのパッケージが含まれているとします。プロジェクト全体をコンパイルまたはデプロイする場合には、ここで実行します。処理を簡単にしたり、パフォーマンスを向上させるには、有効なパッケージのみをロードするプロジェクトを使用します。プログラムの一部をデバッグするなど、特定のタスクの実行に必要なパッケージのみが含まれている、別のプロジェクトも使用できます。
ビジネス・コンポーネント・パッケージは、ビジネス・ロジック層の一部またはすべてのクラスを含むJavaパッケージです。ビジネス・コンポーネント・パッケージには、関連するXMLファイルも含まれています。
ビジネス・ロジック層に必要なパッケージを決定するのは、Javaプログラムを開発する場合と同じです。異なるアプリケーション機能を開発しているチームは、それぞれに独立して作業する必要があります。どのメソッドを内部のチーム・メンバーで使用し、どのメソッドを外部のチームで使用するかに応じて、パッケージ内でグループ化するオブジェクトを機能面から決定する必要があります。プロダクトの一部を1つのコンポーネントとしてデプロイする場合は、それを1つのパッケージにします。
ビジネス・コンポーネントを使用しているプロダクトでは、パッケージのprivateメソッドおよび変数にアクセスできるように、同じパッケージにグループ化するビジネス・コンポーネント、および異なるパッケージにグループ化するビジネス・コンポーネントを決定する必要があります。別のパッケージのビジネス・コンポーネント間は、publicメソッドおよび変数を介して対話を行います。必要に応じて、他のプロジェクト内でパッケージを再利用することもできます。一般に、プロダクトを構成するサブプロダクトを決定する必要があります。その後で、各サブプロダクトに対して、ビジネス・コンポーネント・プロジェクト内に次のパッケージを作成します。
ビジネス・ロジック・パッケージ(エンティティ・オブジェクト、Association、およびフィルタリングと検証で使用するビュー・オブジェクト)
プレゼンテーション・パッケージ(アプリケーション・モジュール、UIのデータを表示およびフィルタリングするビュー・オブジェクトおよびビュー・リンク)
クライアント・パッケージ
インタフェースおよびドメイン・パッケージ(2つの層に共通のもので、個別にアップグレード可能)
その他に、パッケージのサイズについても考慮する必要があります。開発時およびデプロイメント時に、容量の小さいパッケージは、容量の大きいパッケージに比べて高速でロードできます。JDeveloperには遅延ロード機能があり、パッケージ内のすべてのクラスではなく、そのときに必要なクラスのみをロードすることによって開発時のパフォーマンスを向上できます。