45

私は、提案されたアーキテクチャまたは新たなアーキテクチャを評価および評価するためのチェックリストまたは一連の質問/基準を考え出そうとしています (アーキテクチャのレビューを実行します)。アーキテクチャを計画、評価、またはレビューしようとするときに最も重要な質問は何ですか?

これは大きなトピックであることはわかっているので、組織全体のアーキテクチャではなく、単一のエンド ツー エンド システムに限定したいと思います。

Code Completeは適切な出発点を提供します。

建築

  • 適切なアーキテクチャの概要と正当化を含め、プログラムの全体的な構成は明確ですか?
  • モジュールは、その機能や他のモジュールへのインターフェースなど、適切に定義されていますか?
  • 要件に記載されているすべての機能は、モジュールが多すぎても少なすぎても適切にカバーされていますか?
  • アーキテクチャは変更の可能性に対応できるように設計されていますか?
  • 必要な購入対構築の決定が含まれていますか?
  • アーキテクチャは、再利用されたコードを他のアーキテクチャの目的に適合させる方法を記述していますか?
  • すべての主要なデータ構造は、アクセス ルーチンの背後に隠されていますか?
  • データベースの構成と内容は正当化されていますか?
  • すべての主要なアルゴリズムが説明され、正当化されていますか?
  • すべての主要なオブジェクトが説明され、正当化されていますか?
  • ユーザー入力を処理するための戦略が記述されていますか?
  • I/O を処理するための戦略が説明され、正当化されていますか?
  • ユーザー インターフェイスの重要な側面は定義されていますか?
  • ユーザー インターフェイスはモジュール化されているので、その変更はプログラムの残りの部分に影響を与えませんか?
  • メモリ使用量の見積もりとメモリ管理の戦略が説明され、正当化されていますか?
  • アーキテクチャは、各モジュールのスペースと速度の予算を設定していますか?
  • 文字列を処理するための戦略が記述されていますか? また、文字列のストレージの見積もりが提供されていますか?
  • 首尾一貫したエラー処理戦略が提供されていますか?
  • クリーンなユーザー インターフェイスを提供するために、エラー メッセージはセットとして管理されていますか?
  • 堅牢性のレベルは指定されていますか?
  • オーバー アーキテクチャまたはアンダー アーキテクチャの部分はありますか? この分野での期待は明確に設定されていますか?
  • システムの主要な目標は明確に示されていますか?
  • アーキテクチャ全体が概念的にまとまっていますか?
  • トップレベルの設計は、それを実装するために使用されるマシンや言語から独立していますか?
  • すべての主要な決定の動機が提供されていますか?
  • システムを実装するプログラマとして、あなたはアーキテクチャに慣れていますか?

例を挙げて実践的な知識を探しています。たとえば、あなたが作成したアーキテクチャで最も苦労した点は何ですか?

4

6 に答える 6

40

私の調査に基づいて、私が見つけたいくつかのアーキテクチャ レビュー チェックリストを以下に示します。これらのチェックリストは、この質問をもう少し正当化し、アーキテクチャ レビューとは何かについての背景を提供します。(ここでは少し混乱しているようです。)

これらの潜在的な候補のそれぞれには、いくつかの異なるカテゴリが含まれています。これらのカテゴリの全体的な重要性は、ビジネス ニーズによって多少異なります。私見、大丈夫です。最初にチェックリストに含めるほど重要ではなかったために質問やカテゴリを完全に見逃してしまうよりも、レビューのチェックリストを通過するときに別の質問をして除外するほうがはるかに費用がかからない.

私は読んだことはありませんが、このトピックについて書かれたホワイト ペーパーもあるようです。約 11 ページにわたって、この質問に答えようとします。

さらに、同僚が Springer の書籍セットを勧めてくれましたが、私はこれらを自分でチェックしたことはありません。

于 2009-06-23T20:19:15.810 に答える
3

その他の考慮事項:

  • すべての利害関係者が特定されていますか? (例: 顧客、エンド ユーザー、ビジネス アナリスト、ユーザー インターフェイス デザイナー、開発者、テスター、保守担当者。) アーキテクチャは利害関係者によって検証されていますか?
  • アーキテクチャはセキュリティにどのように対処しますか?
  • 可用性と信頼性に対する要件は指定されていますか? アーキテクチャはこれらにどのように対処しますか? (例: 平均故障間隔、平均修理時間。)
  • 災害復旧はどのように処理されますか?

より多くのアイデアが得られる 2 冊の優れた本:

于 2009-05-31T14:22:33.970 に答える
2

SOLIDの原則を使用していますか?

于 2009-05-30T07:29:18.317 に答える
2

アーキテクチャは、テクノロジ ベンダーのガイダンスとロードマップに沿っていますか?

選択したプラットフォームからサポートを得たいのであって、それと戦うのではありません。

たとえば、Microsoft 中心のソリューションの場合、これは、選択がMicrosoft アーキテクチャ ガイダンスから逸脱する場所と理由を文書化することを意味します。

于 2009-06-01T19:59:04.407 に答える
2

どのようにテストするつもりですか

于 2009-05-30T06:50:45.587 に答える