Architecture 设计和建筑有什么区别?

Architecture 设计和建筑有什么区别?,architecture,ooad,Architecture,Ooad,这两个术语非常分散。它们到底有什么不同 是否有任何真实的例子或场景可以详细说明这种差异?在我的理解中,设计更具体地针对一个系统。两个系统可以具有相似的设计,但共享相同的体系结构 因此,设计定义了如何将选定的体系结构应用于给定的需求。(或类似的事情) 但这更多的是我的感觉,所以我对其他答案感兴趣…请参阅和 程序的软件体系结构 还是计算系统的结构 或系统的结构 由软件组件组成 这些设备的外部可见特性 组件,以及它们之间的关系 在他们之间。[...] 记录软件体系结构 促进彼此之间的沟通 利益相关者,

这两个术语非常分散。它们到底有什么不同


是否有任何真实的例子或场景可以详细说明这种差异?

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

因此,设计定义了如何将选定的体系结构应用于给定的需求。(或类似的事情)

但这更多的是我的感觉,所以我对其他答案感兴趣…

请参阅和

程序的软件体系结构 还是计算系统的结构 或系统的结构 由软件组件组成 这些设备的外部可见特性 组件,以及它们之间的关系 在他们之间。[...] 记录软件体系结构 促进彼此之间的沟通 利益相关者,尽早提交文件 关于高级设计的决策,以及 允许重用设计组件和 项目之间的模式

--

软件设计是一个过程 解决问题和规划一个团队 软件解决方案。目的之后 软件的规格是 下定决心,软件开发人员将 设计或雇佣设计师进行开发 解决方案的计划。它包括 底层组件与算法 执行问题以及 建筑视图

--

因此,它们彼此共享部分,但它们所指的是软件稍微不同的方面。从技术上讲,架构应该包括,但实际上它们通常指的是软件的高级拓扑或结构。 例如,决定是否将系统实现为基于文件的命令行软件、web应用程序或富internet应用程序将是一项体系结构决策

软件设计包括做出架构决策,但它将包括更深层次的决策,如数据库中应包含多少字符
address1
,这实际上不是架构决策

编辑: 为了简化差异,架构指的是已知的软件解决方案模式,通常涉及子组件/层/层之间的布局和关系。这些模式还指定如何以及在何处存储、处理和显示数据。 架构可以用方框和箭头来描述,例如

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

我对此的看法

  • 设计是规划的过程 你将如何组织你的团队 软件

  • 架构是如何实现的 您的代码库是结构化的。如果 您的代码不是结构化的 不能真的声称自己有 建筑

理想情况下,您可以从设计阶段(或代码库生命周期中的一系列设计阶段)获得体系结构,但有时好的体系结构可以来自重构带来的持续增量改进,以及做“正确”的事情的感觉


但这些并不是正式定义的词;)

设计了体系结构。但不是相反。”“体系结构”通常用于识别和命名大型(多层)系统的设计。根据定义,系统是多个组件或子系统的协作。人们可以称之为“系统设计”或仅仅是“设计”,但出于这样或那样的原因,建筑给予了它一个更公正的权重,因为它要求不同于其子系统或组件的设计。

这样想:为了建造一座房子,你可以从建筑师那里得到一份蓝图。然后,建造师使用该蓝图,并决定(设计师)需要多少根柱子,使用何种水泥和砖,需要使用何种颜色等。这些都是设计决定。然后工人从建设者那里得到命令并建造房屋(编码员)。

建筑是指计算机或基于计算机的系统的概念结构和逻辑组织

设计是指在设计之前为显示系统或对象的外观、功能或工作而制作的平面图或图纸

如果您正在“设计”一个组件,那么您就是在定义它在更大的系统中的行为。如果您正在“设计”同一个组件,那么您就是在定义它在内部的行为方式

所有的架构都是设计,但并非所有的设计都是架构

How
部分是设计,是
What
How
是架构的交叉点

还有一些设计决策在架构上不重要,即不属于设计的架构分支。例如,某些组件的内部设计决策,如算法选择、数据结构选择等。任何在其组件边界之外不可见的设计决策都是组件的内部设计,并且是非体系结构的。这些是系统架构师将留给模块设计师或实现团队的设计决策,只要他们的设计没有打破系统级体系结构施加的体系结构约束


给出

设计的链接是一个如何进行设计的计划。架构师是您实现的方式。 1.就其阶段、责任范围和决策水平而言 2.架构是框架、工具、语言、范围、目标和高级方法的大图,而设计是实现方法的小图,系统不同部分的外观、设计模式、编程习惯、重构以及代码的组织方式都受到局部约束。 3.建筑面向更高层次的战略、结构和目的。设计是战术性的,面向towa