違います:UMLはアプリケーションアーキテクチャに使用できますが、技術アーキテクチャ(フレームワーク、クラス図、シーケンス図など)に使用されることがよくあります。これは、これらの図を開発と同期させるのが最も簡単な場所だからです。 。
アプリケーションアーキテクチャは、いくつかの機能仕様(将来の実装について何も想定せずに操作の性質とフローを説明する)を取得し、それらを技術仕様に変換するときに発生します。
これらの仕様は、いくつかのビジネスおよび機能のニーズを実装するために必要なアプリケーションを表しています。
したがって、複数の大規模な財務ポートフォリオ(機能仕様)を処理する必要がある場合は、その大規模な仕様を次のように分割する必要があると判断する可能性があります。
- それらの重い計算を異なるサーバーに割り当てるディスパッチャ
- これらのポートフォリオの処理を開始する前に、すべての計算サーバーが稼働していることを確認するランチャー。
- 何が起こっているかを示すことができるGUI。
- 単体テストだけでなく、一部の機能テストや回帰テストを容易にするために、アプリケーションアーキテクチャの残りの部分とは独立して、特定のポートフォリオアルゴリズムを開発するための「共通の」コンポーネント。
したがって、基本的に、アプリケーションアーキテクチャについて考えることは、一貫した方法で開発する必要のある「ファイルのグループ」を決定することです(同じファイルのグループでランチャー、GUI、ディスパッチャーなどを開発することはできません...:それら同じペースで進化することはできません)
アプリケーションアーキテクチャが明確に定義されている場合、通常、その各コンポーネントは構成コンポーネントの候補として適しています。つまり、すべてをVCS(バージョン管理システム)にバージョン管理できるファイルのグループです。つまり、すべてのファイルは次のようになります。そのアプリケーションのスナップショットを記録する必要があるたびに一緒にラベルが付けられます(ここでも、すべてのシステムにラベルを付けるのは難しく、各アプリケーションを同時に安定した状態にすることはできません)