b / w设计和架构有什么区别?

时间:2009-03-29 06:51:05

标签: architecture ooad

  

有什么区别黑白设计和   架构?

嗨,我问了很多老师这个问题,但没有人给我满意的答复。这两个术语非常分散..我没有正确地得到它们......等待准确答案......

可以详细说明这种差异的任何实时示例或场景吗?

8 个答案:

答案 0 :(得分:9)

请参阅architecturedesign

  

程序的软件架构   或计算系统是结构   或者系统的结构   包括软件组件,   外部可见的属性   组件和关系   它们之间。 [...]   记录软件架构   促进之间的沟通   利益相关者,文件早   关于高级设计的决定,以及   允许重用设计组件和   项目之间的模式。

-

  

软件设计是一个过程   问题解决和规划   软件解决方案目的之后   和软件的规格是   确定,软件开发人员将   设计或聘请设计师来开发   一个解决方案的计划。这包括   低级组件和算法   实施问题以及   建筑观。

-

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

软件设计包括制定架构决策,但它会包含更深层次的内容,例如数据库中应有多少个字符address1,这实际上不是架构决策。

修改: 为简化差异,架构是指已知的软件解决方案模式,通常涉及子组件/层/层之间的放置和关系。模式还指定了数据的存储,处理和呈现方式和位置。 架构可以使用框和箭头来描述,例如autonomous robotic paradigms

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

答案 1 :(得分:4)

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

因此,设计定义了所选架构如何应用于给定的要求。 (或类似的东西)

但这更像是我的感觉,所以我对其他答案很感兴趣......

答案 2 :(得分:1)

我对此的看法..

  • 设计是计划的过程 你将如何构建你的 软件

  • 架构是如何实现的 你的代码库是结构化的。如果 你的代码不是你的结构 不能真的声称拥有 架构。

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

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

答案 3 :(得分:1)

以这种方式思考:为了建造房屋,您将获得建筑师(建筑师)的蓝图。然后构造函数使用这个蓝图,并决定(多少)列需要使用哪种水泥和砖,需要做什么类型的着色等等。这些是设计决策。然后工人接受建造者的命令并建造房屋(编码器)。

答案 4 :(得分:0)

架构是设计的。但不是相反。 “架构”通常用于识别和命名大型(多层)系统的设计。根据定义,系统是多个组件或子系统的协作。人们可以将其称为“系统设计”或“设计”,但由于某种原因,架构赋予它更大的权重,因为它与其子系统或组件的设计不同。

答案 5 :(得分:0)

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

设计是指制作一个计划或图纸,以显示系统或对象在制作之前的外观和功能或工作方式。

如果您正在“构建”某个组件,那么您将定义它在较大系统中的行为方式。如果您正在“设计”相同的组件,那么您将定义它在内部的行为。

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

How部分是设计,WhatHow是架构 Image for differentiating Architecture and Design

还有一些设计决策,这些决策在架构上并不重要,即不属于设计的架构分支。例如,某些组件的内部设计决策,例如算法的选择,数据结构的选择等。任何在组件边界之外不可见的设计决策都是组件的内部设计,并且是非架构的。这些是系统架构师在模块设计人员自行决定或实施团队留下的设计决策,只要他们的设计不会破坏系统级架构所施加的架构限制。

提供good analogy

的链接

答案 6 :(得分:0)

建筑是'组件和关系bw他们......例如,当你看到一千米高的建筑物时,你只能看到连接路径和房间......但是房间里面是什么它在设计中被描述....

答案 7 :(得分:-1)

设计是一个计划你将如何做到这一点。建筑师就是你实施的方式。 1.在阶段,责任领域和决策层面 2.架构在框架,工具,语言,范围,目标和高级方法方面是更大的图景,而设计是实现方法的较小图景,局部约束系统的不同部分将如何看,设计模式,编程成语,重构&如何组织代码。 3.架构面向更高层次的战略,结构和目标。设计是战术性的,面向实施和实践,更多地面向具体。