第一線の建築家実践ガイド洗練されたアーキテクチャステージノート

洗練されたアーキテクチャとは、ソフトウェアの詳細なアーキテクチャを指します。

概念アーキテクチャー(概念構造)に比べて洗練されたアーキテクチャー(洗練されたアーキテクチャー)は、それぞれ「概念レベル」ソリューションと「仕様レベル」ソリューションに対応しています。洗練されたアーキテクチャはアーキテクチャ設計であり、詳細設計と混同しないでください。

建築の分野では、建築設計のマルチビュー手法とソフトウェアアーキテクチャ設計のマルチビュー手法を比較したいと思います。マルチビューアプローチは、アーキテクチャのアーカイブテクノロジーであるだけでなく、アーキテクチャ設計において私たちを導く考え方でもあります。

 

マルチビュー手法の実用的な重要性:
1.思考に役立つ(分割して思考を征服する)
2.伝達しやすい(利害関係者の懸念を分離する)

 

概念的アーキテクチャ、論理的アーキテクチャ、物理的アーキテクチャは3つの異なるレベルではありません。論理的アーキテクチャと物理的アーキテクチャは、アーキテクチャ設計の同じ段階です。これらは、2つの側面ではなく、2つの視点から見た2つの側面にすぎません。ステージ。

 

 

 

RUP4 + 1表示方法にはいくつかの特徴があります。

  • OOメソッドを評価する
  • ユースケースドライブ
  • モデルの重要性を強調する

OOは論理アーキテクチャビューの設計をガイドできますが、OOメソッドは物理ビューなどの設計ガイダンスに対して非常に弱いです。一方、論理アーキテクチャの設計でさえも、必ずしもOOメソッドによってガイドされるわけではありません。たとえば、多くの組み込みソフトウェアとシステムソフトウェアは、依然としてC言語を主な開発言語として使用しており、それらの論理アーキテクチャ設計も構造化された方法によって導かれます。

ユースケースは、アーキテクチャー設計自体の仕事ではありません。4 + 1ビューの「4」は建築設計であり、「+ 1」が原動力です。

モデリングでは貧しい兵士を避けなければなりません。モデルの確立に刺激的な考えがなく、最初の確立後に変更されない場合、それが「過剰モデリング」であるかどうかを慎重に検討する必要があります。

 

 

 


5つのビューメソッドには、次のビュー(思考の足がかり)が含まれます。
論理ビュー(責任の分割)
開発ビュー(プログラムユニット編成)
操作ビュー(制御フロー編成)
物理ビュー(物理ノード配置)
データビュー(永続的設計)

 

 

一見複雑な5ビューの方法は実際には非常に単純です。そのビューのそれぞれが特定の角度からシステムの分割と相互作用を計画することであり、それらは(アーキテクチャの定義)「コンポーネント+相互作用」の現れです。

 

 

論理アーキテクチャは
3つのタイプのサブストラテジーに分類されます。ストラテジーの
階層
化レイヤーの使用は、最も一般的に使用されるアーキテクチャモデルです。3層または4層のアーキテクチャでは、チームの並行開発をサポートするのに十分ではなく、「層化および改良」する必要があります(より多くの層)。

 

 

 

 

 

パーティションの導入
反復開発をサポートするためには、論理アーキテクチャのデザイン・パーティションを導入しなければなりません。パーティションは特定の内部にあるユニットであり、粒度はレイヤーよりも小さいです。
各レイヤーのアーキテクトのパーティション設計が完了すると、「深さ優先」の反復開発は非常に自然です。

 

抽出機構の
機構定義:ソフトウェアシステム機構は、所望の目的、役割ベース協調抽象方法を完了するために、事前に定義された意味します。このメカニズムには、協力関係だけでなく、協力プロセスも含まれます。
オブジェクト指向メソッドの場合、「コラボレーション」は「特定の目標を達成するための複数のオブジェクトの相互作用」として定義でき、「コラボレーション」と「メカニズム」の違いは、次のように要約できます。インターフェース(および抽象クラス)に基づくコラボレーションはメカニズムですが、特定のクラスに基づくコラボレーションはメカニズムではありません。
階層化された改良、パーティションの導入、メカニズムの抽出という3つの戦略の背後にある4つの一般的な設計原則:
異なる責任を持つユニットは、異なるサブシステムに割り当てられます。
汎用性の異なるユニットは、異なるサブシステムに分割されます。
異なる開発スキルを必要とするユニットは、異なるサブシステムにグループ化されます。
ワークロードの相対的なバランスを考慮して、大きすぎるサブシステムをさらに分割します。
ホリスティックな思考ルーチンの論理アーキテクチャ設計の
ポイント:
尋問ドライブ。
構造設計と動作設計は分離されています。
建築設計は一晩では行われません。要求はアーキテクチャ設計に「推進力」の影響を及ぼし、中間結果を常に設計します->中間結果に疑問を投げかけます->中間結果を常に調整および調整します->疑問を持ち続けます->改善を続けます
より多くの経験の要約

物理的なインフラストラクチャ
私たちはデザインの物理的な構造が必要なのはなぜ
時々 、ハードウェアで問題を解決することができない可能性が増加している。
ソフトウェアだけでなく、実際のサービスの容量は、「ハードウェアリソース」でなく、「データのギャップ」と「データ競合」制約によって制約しました。
=計算能力を高めるために追加のハードウェアは、実際のサービス容量の拡張ソフトウェアと等しくない
ソフトウェアのシステムは、信頼性、スケーラビリティ要件、継続的な可用性、パフォーマンス、セキュリティなどを満たす方法に焦点を当て物理構造。
物理的なアーキテクチャの設計の仕事内容
:3つの主なタスクの物理的なアーキテクチャ
のハードウェアの選択と物理トポロジ。
ソフトウェアとハ​​ードウェア間のマッピング関係。
プログラムの最適化。
物理アーキテクチャのデザイン思考
などのデータ単位としての物理ノード、ネットワーク、ソフトウェア要素の内容よりも、設計レベルの結果から、より多くの何も周りの決定に展開します。

ファイル名を指定して実行アーキテクチャは
なぜアーキテクチャを実行する必要がない
システムは任意の並列または同時処理を導入していないとき、およびSDK、APIおよびその他のインフラストラクチャソフトウェアを与えていない、カスタム開発、それがデザインアーキテクチャを実行する必要はありません。
システムが複雑なビジネスロジックまたは複雑な相互運用ロジック(ハードウェアの相互作用を含む)を処理する必要がある場合、または重要なリソースの使用効率を最適化するために、複数の制御フローを並列または同時に実行する必要がある場合、オペレーティングアーキテクチャを設計する必要があります。
実行アーキテクチャ設計作業内容
実行アーキテクチャには、次の作業の内容を含む状況に応じて異なる可能性があります
導入される制御フローを決定します。
各制御フローのタスクを決定します。
関連する問題の処理:作成、破棄、制御フローの通信メカニズムなど
さらに検討する:制御フロー間の同期関係、リソースの競合がある場合は、ロックメカニズムも導入する必要があります。
制御フローグラフが重要です。アーキテクチャ設計の作業は複雑で複雑に思えますが、実際には「制御フローグラフ」を把握していれば、他の関連する設計を概説して実行することができます。
流れの制御を達成するために3つの一般的な手段
:ほとんどの場合、フロー制御のために使用される方法の3種類の
プロセス、スレッド、割り込みサービスルーチンを。
開発フレームワーク
のアーキテクチャを開発するのはなぜでなければなりませんで
必要な「プログラム・ユニット」、「ソースディレクトリ構造」などの開発を平行、特定のタスクを実行するために異なるプログラムチームの基本です。
並列詳細設計をサポートできます。
プログラムマネージャーにアーキテクチャの実践作業に参加させ、「単純なアーキテクチャ通信」の作業負荷を大幅に節約し、プログラムスタッフに「達成感」を持たせます。
コンテンツ開発アーキテクチャ設計作業は
、一般的に完了している:
1.「論理機能は、」「プログラム単位を」マッピングされた:
独立したソース書き込むには
、再利用可能なライブラリ、フレームワークの
(プラットフォームのサポートの下で、このようなシェルスクリプトとして、コンフィギュレーションファイル)他の方法での
2.技術選択の開発
開発言語の
開発ツール
3.「プログラムユニット」との間の関係
のプロジェクト分割
プロジェクトディレクトリ構造
コンパイル依存
テストの再利用がする鍵となる
年の修正同様の問題が後に問題の解決年間
基本的にメンテナンスコストを削減します
データ配信
データ配信ポリシーの6種類
1.独立スキーマ
関連するシステム・コンポーネントによって小さなシステムの大多数、および異なるシステムが相互に異なる小スキーマ定義データベースと呼ばれる条件有する「独立スキーマ」を
可能であれば、システム間の不要な相互作用を減らし、人為的に問題を複雑にすることを避けるために、アーキテクトはこの配布戦略を好むはずです。
2.集中型(集中型)
は、さまざまな場所からのアクセスをサポートする必要がある大規模なシステムを指します。または、システムが複数の関連する小規模なシステムで構成され、永続的な集中型データが集中型および統合形式で保存されます。
機能:集中ストレージ、分散アクセス
3.パーティション(パーティション)
パーティション方式には、水平パーティションと垂直パーティションがあります。
システムが「広く分散したユーザー」に「同じサービス」を提供したい場合、水平分割がよく使用されます。機能:2つは同じ、2つは異なる-同じアプリケーション、異なるアプリケーションデプロイメントインスタンス、同じデータタイプ、異なるデータ値。
一般に、垂直パーティションはほとんど効果がありません。機能:異なるデータノードのスキーマには、「部分的なフィールド」の違いがあります。
4.複製
分散システム全体では、データの複数のコピーが保存され、データの複数のコピー間のデータの一貫性は、特定のメカニズム(リアルタイムまたはスナップショット)によって維持されます。
機能:データの「ローカリゼーション」により、データアクセスのパフォーマンスが向上します。データの特別なコピーは、ターゲットを絞った最適化に役立ちます。データの特別なコピーは、管理性とセキュリティ制御を向上させます。
5.サブセット
サブセット 」は、「コピー」の特別な方法です。つまり、ノードは、機能的または非機能的な考慮事項により、データ全体の比較的固定されたサブセットを保存します。
サブセットの相対的なレプリケーション特性(利点):マシン間でのデータ転送のオーバーヘッドを減らし、データの冗長性を減らし、ストレージコストを節約します。
6.再編成された
さまざまなデータノードは、サポートされるさまざまな機能により、さまざまなスキーマにデータを格納しますが、基本的にこれらのデータは同種です。データは直接コピーされませんが、「再編成された」形式で送信または保存されます。
データ配信戦略の全体像

 

おすすめ

転載: www.cnblogs.com/sonofdemon/p/12671939.html
おすすめ