这两个术语非常分散。它们究竟有何不同?

有没有现实生活中的例子或场景可以阐述这种差异?

有帮助吗?

解决方案

在我的理解,设计更具体到一个系统中。两个系统可以有一个的类似的设计,但共享的相同的架构。

因此,一个设计定义了一个选定的架构如何施加到给定的要求。 (或者类似的东西这一点)

不过,这更是我的感觉,让我感兴趣的其他答案...

其他提示

建筑学设计.

程序的软件体系结构 或者说计算系统是结构 或系统的结构,其中 包括软件组件, 这些的外部可见属性 组件和关系 在他们之间。[...] 记录软件架构 促进 利益相关者,尽早记录 有关高级设计的决策,以及 允许重复使用设计组件和 项目之间的模式。

--

软件设计是解决问题解决方案的问题和计划的过程。之后的目的 软件规格为 下定决心,软件开发人员将 设计或聘请设计师进行开发 解决方案的计划。它包括 低级组件和算法 实施问题以及 建筑视图。

--

因此,它们彼此共享部分,但它们所指的软件方面略有不同。从技术上讲,架构应该包括 各方面, ,但实际上它们通常指的是软件的高级拓扑或结构。例如,决定是否将系统实现为基于文件的命令行软件、Web 应用程序或应用程序 n层 丰富的互联网应用程序将是一个架构决策。

软件设计包括做出架构决策,但它还包括更深层次的决策,例如有多少个字符 address1 应该在数据库中,这实际上并不是一个架构决策。

编辑: :为了简化差异,架构是指软件解决方案的已知模式,通常涉及子组件/层/层之间的放置和关系。这些模式还指定数据存储、处理和呈现的方式和位置。架构可以用方框和箭头来描述,例如 自主机器人范式.

软件设计是针对给定软件需求思考解决方案的过程。每个问题都有其独特的方式,因此设计也会有所不同。

我对这个..

  • 设计 是的规划过程 你要如何结构你 软件

  • 建筑 是的现实如何 你的代码结构。如果 你的代码不是结构你 真的不能要求有一个 建筑。

理想的情况是你想让你的建筑设计阶段(或一系列设计周期期间代码基寿命),但有时良好架构可以来自持续的增量改进从重构,而仅仅是一种做什么是"正确的"。

这些不是正式定义的说虽然;)

考虑一下这种方式:盖房子,你从设计师(建筑师)的蓝图。然后构造函数中使用此蓝图,并就多少列都需要做什么样的水泥和砖的使用,需要什么类型的着色性等,这些都是设计决策的决定(设计师)。然后工人从制造商负责顺序,构建房屋(编码器)。

架构设计。但不是周围的其他方式。 “建筑”通常用于标识和命名一个大的(多层)系统的设计。一种系统是由多个定义组件或子系统的协作。一个可以称之为“系统设计”或只是“设计”,但结构,由于某种原因或另一种,给它一个更加公正重量它回避从其子系统或部件的设计而不同。

架构意味着概念结构和计算机或基于计算机的系统的逻辑组织。

设计装置的俯视或拉延加工,以显示它的外表和功能或系统的运作或对象作出之前它。

如果你正在“架构”的成分,要定义它在更大的系统中的行为。如果您在“设计”同样的成分,你定义它内部的行为。

所有体系结构是设计但不是所有的设计是架构。

How部分是设计与What的交点和How是建筑 “图片用于区分建筑与设计”

有还设计决定,即在结构上并不显著,即不属于设计的体系结构的分支。例如,一些组件的内部设计决策,算法的喜欢 - 选择,数据结构等。任何设计决定,这不是它的元件边界的外部可见的选择是一个组件的内部的设计和是非架构。这些都是设计决策,只要他们的设计不会破坏通过系统级架构强加的结构限制的系统设计师将离开模块设计者的自由裁量权或执行团队。

这给出了一个良好的链路类比

架构是组件和它们之间的关系。 E.g当你从千米高度看到的建筑,你只能看到连接路径和房间。但它是什么,在设计中描述的室的内部。

设计是一个规划,你将如何做到这一点。建筑师是你如何实现的。 他们的舞台1.In而言,负责的领域和决策水平 2.Architecture是在框架,工具,语言,范围,目标和高层次的方法论方面的大局观,而设计是实施方法论的小图片,随着系统的不同部分如何看局部约束,设计模式,编程成语,重构的代码及如何组织。 3.Architecture面向策略,结构和目的是在较高的水平。设计是战术和面向的实施和实践,更朝混凝土。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top