質問
これら 2 つの用語は非常に拡散しています。それらは正確にどのように異なるのでしょうか?
この違いを詳しく説明できる実際の例やシナリオはありますか?
解決
私の理解では、デザインが一つのシステムに複数の特定です。 2つのシステムは、の似たのデザインを持っていますが、のと同じのアーキテクチャを共有することができます。
だから、デザインが選ばれたアーキテクチャが与えられた要件に適用される方法を定義します。 (またはこのようなもの)
しかし、これはそれ以上は私の気持ちですので、私は他の回答に興味がある...
他のヒント
プログラムまたはコンピューティングシステムのソフトウェアアーキテクチャは、システムの構造または構造であり、ソフトウェアコンポーネント、それらのコンポーネントの外部的に表示されるプロパティ、およびそれらの間の関係を含みます。...]ソフトウェアアーキテクチャの文書化は、利害関係者間のコミュニケーションを促進し、高レベルの設計に関する早期決定を文書化し、プロジェクト間の設計コンポーネントとパターンの再利用を可能にします。
--
ソフトウェア設計は、ソフトウェアソリューションの問題解決と計画のプロセスです。ソフトウェアの目的と仕様が決定された後、ソフトウェア開発者は設計者を設計または採用してソリューションの計画を開発します。これには、低レベルのコンポーネントとアルゴリズムの実装の問題、およびアーキテクチャビューが含まれます。
--
したがって、これらは相互に部分を共有していますが、ソフトウェアのわずかに異なる側面を参照しています。技術的に言えば、アーキテクチャには次のものを含める必要があります。 あらゆる面, 、しかし実際には、通常、ソフトウェアの高レベルのトポロジーまたは構造を指します。たとえば、システムをファイルベースのコマンド ライン ソフトウェアとして実装するか、Web アプリとして実装するか、または n層 リッチ インターネット アプリケーションはアーキテクチャ上の決定になります。
ソフトウェア設計にはアーキテクチャ上の決定が含まれますが、文字数などのより深い決定も含まれます。 address1
データベース内に置く必要がありますが、これは実際にはアーキテクチャ上の決定ではありません。
編集:違いを単純化するために、アーキテクチャとはソフトウェア ソリューションの既知のパターンを指し、多くの場合、サブコンポーネント/階層/レイヤー間の配置と関係が関係します。パターンは、データが保存、処理、表示される方法と場所も指定します。アーキテクチャとは、次のようなボックスと矢印を使用して説明できるものです。 自律型ロボットのパラダイム.
ソフトウェア設計は、与えられたソフトウェア要件に対する解決策を考えるプロセスです。それぞれの問題は独自の方法でユニークであるため、設計も異なります。
私のとこ..
デザイン は計画策定プロセスの どういう構造にお ソフトウェア
建築 現実とはどのよう ドする構成にしています。の場合 コードはでないだ できません請求項において ます。
理想的に学んだ建築デザインからの相はシリーズのデザイン期間中にcodebases寿命でも良い建築からの継続的な漸進的な改善からのリファクタリングに、直感のあるいは"す。
これらのない正式な定義の言葉から)
それをこのように考える:家を建てるために、あなたは建築家(建築家)からの青写真を取得します。その後、コンストラクタは、この青写真を使用し、これらは、設計上の決定です行われる必要がある発色の種類、セメント、使用するレンガの種類などを必要としているどのように多くの列に決定(デザイナー)を行います。その後、作業者は、ビルダーから順番を取り、家を構築する(コーダ)。
アーキテクチャが設計されています。しかし、その逆ではありません。 「アーキテクチャ」は、典型的に識別し、大きな(複数層)システムの設計に名前を付けるために使用されます。システムは、定義により、複数のコンポーネントまたはサブシステムのコラボレーションです。それはそのサブシステムやコンポーネントの設計と異なって頼むように、1つは、それを単なる重みを与える一つの理由または別のための「システム設計」または単に「デザイン」、しかし、建築、それを呼び出すことができます。
アーキテクチャは、コンピュータまたはコンピュータベースのシステムの概念的な構造と論理的組織を意味する。
デザインは、計画や図面は、それが行われる前に外観と機能またはシステムやオブジェクトの働きを示すために、生産を意味します。
コンポーネントを「設計する」されている場合は、、あなたはそれがより大きなシステムにどのように振る舞うかを定義しています。あなたは同じコンポーネントを「デザイン」されている場合、あなたはそれが内部でどのように動作するかを定義している。
すべてのアーキテクチャで設計ですが、すべてではないデザインはアーキテクチャです。
How
部分がデザインされ、What
とHow
の交点がアーキテクチャであります
、すなわち、設計のアーキテクチャブランチに属していない、アーキテクチャ重要ではない決定を、デザインもあります。例えば、いくつかのコンポーネントの内部設計の決定、アルゴリズムのlike-選択などのデータ構造の選択そのコンポーネントの境界の外に表示されていない任意の設計上の決定は、コンポーネントの内部設計であり、非建築です。これらは、システムアーキテクトがいる限り彼らのデザインは、システムレベルのアーキテクチャによって課される建築制約を壊さないように、モジュール設計者の裁量や実装チームに残して設計決定されます。
リンクhref="http://iankoenig.com/blog/2009/03/21/the-difference-between-architecture-and-design/" rel="nofollow noreferrer">良いですの類推アーキテクチャの構成要素とそれらの間の関係です。あなたは千メートルの高さから建物を見たとき例えばあなただけのパスと部屋を結ぶ見ることができます。しかし、それは設計で記述されている部屋の中に何がある。
のデザインは、あなたがそれをやろうとしているかの計画です。建築家は、あなたが実装されている方法です。 1.In彼らのステージの観点から、責任範囲と意思決定のレベル デザインは、実装方法論の小さな絵がある一方で2.Architectureは、システムの異なる部分がどのように見えるかの局所的な制約、デザインパターン、プログラミングで、フレームワーク、ツール、言語、範囲、目標とハイレベルの方法論の面で大きな画像ですイディオム、リファクタリングの&コードがどのように編成されています。 3.Architectureは、より高いレベルにある戦略、構造及び目的に面します。デザインは戦術的であり、より具体的な方に、実装と実践に向いています。