Inheritance-Report

継承-レポート は、 Java ® モノリシック・アプリケーションのクラス間に存在する継承関係を詳述する HTML ファイルです。

AI エンジンの正常な実行の終了時に、パーティション間に継承関係が存在することを示す警告メッセージが表示されることがあります。

警告:パーティション推奨に、パーティション間での壊れた継承チェーンが含まれて、
  partition.txt を変更して補正すると、マージされたパーティションの名前が結合される可能性があります。
  詳細については,Cardinalフォルダー内のpartition.txt およびcardinal_graph.json を参照してください。

継承関係は、相互に参照するクラスが別々のパーティションに存在する可能性があるため、パーティション推奨では問題になります。 この場合、パーティションは、継承に関連するすべてのクラスが同じパーティション内に存在するまでマージされます。 ビジネス・ロジック、自然継ぎ目、またはカスタム区画に基づく継承関係により、1 つまたは 2 つの大きな区画に多数のクラスが含まれることがあります。

サンプル 継承-レポート

「継承-レポート」 には、 Java モノリシック・アプリケーションのクラス継承階層が視覚的に表示されます。 次の図は、サンプル・アプリケーションの例を示しています。

継承-サンプル・アプリケーションのレポート

この図では、 partition2 内の Owner クラスは、 partition4内の Person クラスを継承します。このクラス自体は、 partition2BaseEntity クラスを継承します。 このレポートには、各クラスの横に表示されるペア [x:y] として、継承チェーンの幅と深さの両方が表示されます。 特定のクラスについては、 x はクラスの深度を表し、 y は Java モノリシック・アプリケーションの継承の階層内にある直接の子の数を表します。 この例では、 partition1 内の NamedEntity クラスの横にある [2:3] という数字のペアは、 NamedEntity クラスが深さ 2 にあり、3 つの直接の子を持っていることを示しています。 子は、 PetPetType、および Specialty クラスです。

「提供されない継承のフィルタリング」 チェック・ボックスおよび 「FQCN のフィルタリング」 チェック・ボックスを使用して、継承レポートを表示する際のクラッターを減らします。 「Unobserved Inheritances のフィルター」 ボックスを選択すると、 unobserved 区画に属するすべてのクラスが非表示になります。 「FQCN のフィルター」 ボックスを選択すると、完全修飾の長いクラス名がレポートから除外されます。 これらのフィルター・オプションは、大規模なレガシー Java モノリシック・アプリケーションから生成された大規模な継承レポートを処理するのに役立ちます。

クラス間の継承関係は通常、コードの共有による依存関係になります。 Inherit-Report には、適切な継承のみが含まれ、インターフェースやそれらを実装する対応するクラスは含まれません。

継承関係の処理

継承の依存関係がパーティション間に存在する場合は、適切なマイクロサービスを生成する前に、ソース・コードを変更して特定のクラス間の継承関係を除去 ( または「フラット化」 ) する必要が生じることがあります。 継承関係をフラット化する必要があるのは、直接の親と同じパーティションに連結されていないクラス間のみです。 前の図では、直接の親のパーティションに連結されている子クラスが単一でないため、示されているすべての継承関係がフラット化されていなければなりません。 BaseEntity クラスと Owner クラスが partition2 区画に属していても、 Owner クラスの直接の親は、 partition4 区画内の Person クラスです。 この関係チェーンでは、 BaseEntityクラス、 Personクラス、および Owner クラスの間の継承関係を完全にフラット化する必要があります。

Java インターフェースの形式で適切なタイプを導入することによって継承をフラット化することは難しくなく、使用可能な資料で説明されています。 いくつかの IDE には、継承を最小限の労力でフラット化する機能が含まれてます。 「 参照」には、 継承をフラット化するための Concise ガイドライン のセットが含まれています。

必要なすべての継承関係がフラット化されている Java モノリシック・アプリケーションは、リファクタリングに役立ちます。 変更した Java モノリシック・アプリケーションをリファクタリングするには、 IBM Mono2Micro 概要に概説されているように、変更した Java モノリシック・アプリケーションで IBM Mono2Micro プロセス全体を実行します。 必要な継承関係が正常にフラット化されると、次の図に示すように、AI エンジンの実行によって空の 「継承-レポート」が生成されます。

空の継承レポート