アーキテクチャについて#
システム概要#
下記に本システムのシステム概要を示す。

ディレクトリ構成#
BPAレポートのディレクトリ構成を下記に示す。(今後BPAレポート本体のドキュメントができた場合はそちらに移動する)

本システムのディレクトリ構成を下記に示す。

アーキテクチャ概要#
本システムはビジネスロジック層、インフラストラクチャ層に分かれている。テスト時にスタブを利用するため、ユースケースに影響を与えないようDIPを用いてインフラストラクチャ層とビジネスロジック層の依存性を逆転している。
下記に本システムのアーキテクチャ図を示す。

- エントリーポイント
- 役割
- ユースケース実行前の初期設定等の呼び出し
- ユースケースの実行
- 役割
- 初期設定・依存関係解決
- 役割
- 利用クラスの初期化(インスタンス化)
- 依存関係の解決
- 役割
- ビジネスロジック層
- 役割
- ユースケースの実装
- ビジネスルールの定義
- 主な要素
- ユースケース
- DTO
- インターフェース(インフラストラクチャ層の抽象)
- 役割
- インフラストラクチャ層
- 役割
- ビジネスロジック層の術的な詳細を抽象化し、実際の技術実装の提供をする。
- 主な要素
- データベースアクセス、ファイルシステム操作、ロギングなどの具体的な実装実装
- 役割
各応答率レポートの共通部品について#
utilsには全応答率レポートで利用する共通モジュールが格納されている。
本システムも共通モジュールに依存するが、変更に柔軟に対応・腐敗防止のため直接依存するのはインフラストラクチャ層としている。
外部依存先#
| 依存先 | 利用用途 |
|---|---|
| pi_datamart | データの取得元(postgresql) |
| AWS SES | メールの送信 |
利用技術#
- python3.11