![]() |
1
327
软件设计是指设计各个模块/组件。模块x的职责和功能是什么?Y班的?它能做什么,不能做什么?可以使用哪些设计模式?
|
![]() |
2
80
在对 SDLC (Software Development Life Cycle) 它们是可互换的,但其共同点在于它们是不同的。它们同时是不同的(1) , (2) 责任领域 决策水平 .
似乎 由于不同的原因混合在一起。
即使责任的各个阶段或领域融合在一起,并在各地发生,了解决策的级别总是很好的。(我们可以一直这样做。我试着把它作为一个总结。)我将以:即使你的项目似乎没有正式的架构或设计阶段/AOR/文档,不管有没有人有意识地这样做,它都在发生。若并没有人决定做架构,那个么默认的架构可能很差。设计也一样。这些概念几乎完全相同 更重要的 如果没有代表他们的正式阶段。 |
![]() |
3
55
架构是战略性的,而设计是战术性的。 体系结构包括框架、工具、编程范例、基于组件的软件工程标准、高级原则。。 而设计是一项与局部约束有关的活动,如设计模式、编程习惯和重构。 |
![]() |
4
38
我发现这一点是因为我在寻找建筑和设计之间的简单区别;
|
![]() |
5
21
区分建筑和设计的形象 :
任何在其组件边界之外不可见的设计决策都是组件内部设计,并且是非体系结构的。这些是系统架构师将留给模块设计师或实现团队的设计决策,只要他们的设计没有打破系统级体系结构施加的体系结构约束。 |
![]() |
6
15
用我自己的话来说,你是对的; 建筑学 是将系统需求分配给系统要素。关于体系结构的四种说法:
基本工程步骤 当系统的复杂性被细分时。 例如:想想你的房子,你的厨房不需要建筑师(只涉及一个元素),但整个建筑需要一些互动定义,比如门和屋顶 设计 是功能(建议)实现的信息表示。其目的是征求反馈意见,并与利益相关者进行讨论。这也许是个好习惯,但是 这不是一个必要的工程步骤 在厨房安装之前看到厨房设计会很好,但这不是烹饪要求的必要条件 : 如果我想一想,你可以说:
|
![]() |
7
14
|
![]() |
8
6
因此,例如,如果您看到一个类图或序列图,您可以使用类语法构造将一个类及其关系映射到一种面向对象编程语言。这显然是一种设计。此外,这可能会使我们明白,本讨论与您将用于实现软件系统的编程语言有关。如果您使用Java,前面的示例适用,因为Java是一种面向对象的编程语言。如果您提出一个显示包及其依赖关系的图表,这也是设计。您可以将元素(本例中是一个包)映射到Java语法结构。 现在,假设您的Java应用程序被划分为多个模块,每个模块都是一组包(表示为一个jar文件部署单元),您将看到一个包含模块及其依赖项的图,这就是体系结构。Java中没有一种方法(至少在Java7之前)将模块(一组包)映射到语法结构。您可能还注意到,此图代表了软件模型抽象级别的更高一步。在使用Java编程语言进行开发时,包图上方(粗粒度)的任何图都表示体系结构视图。另一方面,如果您在模块a-2中开发,那么模块图表示一种设计。 (一段 http://www.copypasteisforword.com/notes/software-architecture-vs-software-design |
![]() |
9
5
就我个人而言,我喜欢这个:
SCEA for Java EE学习指南 马克·凯德和汉弗莱·谢尔 |
![]() |
10
5
我同意许多解释;从本质上讲,我们认识到软件系统的体系结构设计和详细设计之间的区别。 而设计师的目标是在规范中尽可能精确和具体,因为这是开发所必需的;架构师的基本目标是指定系统的结构和全局行为,就像详细设计开始时所需的那样。
|
![]() |
11
5
|
![]() |
12
3
是的,我听上去不错。设计是你要做的,而架构是将设计的各个部分连接在一起的方式。它可能与语言无关,但通常会指定要使用的技术,即LAMP v Windows、Web服务v RPC。 |
![]() |
13
3
(摘自维基百科, http://en.wikipedia.org/wiki/Software_architecture 软件设计是解决问题和规划软件解决方案的过程。软件的目的和规格确定后,软件开发人员将设计或雇佣设计师为解决方案制定计划。它包括底层组件和算法实现问题以及体系结构视图。 (摘自维基百科, http://en.wikipedia.org/wiki/Software_design
|
![]() |
14
3
我认为软件也是如此。 您可以将设计布局视为“设计布局”。。。 |
![]() |
15
3
好问题。。。虽然它们之间的界限很难清晰明了,但如果你同时使用这两个术语,那么架构包含了更多关于如何构建或构建某物的技术或结构决策,尤其是那些一旦实现就很难(或更难)改变的决策,然而,设计包括那些以后很容易更改的决策(如方法名称、类<->文件组织结构、设计模式、是使用单一类还是静态类来解决某些特定问题等)和/或那些影响系统或应用程序外观或美学方面的决策(人机界面、易用性、外观和感觉等) |
![]() |
16
3
软件 建筑学 体系结构并不是具体的实现细节(例如,算法和数据结构)。体系结构设计涉及比面向对象设计(OOD)通常提供的更丰富的抽象集合。 涉及设计元素的模块化和详细接口、它们的算法和过程,以及支持体系结构和满足需求所需的数据类型。 架构通常被用作设计的同义词(有时在前面加上形容词high-level)。许多人使用术语“架构模式”作为设计模式的同义词。
|
![]() |
17
3
架构:
设计:
|
![]() |
18
3
我真的很喜欢这篇文章,因为它提供了将架构与设计分离的经验法则: http://www.eden-study.org/articles/2006/abstraction-classes-sw-design_ieesw.pdf 这被称为强度/局部性假设。关于非本地和内涵的软件性质的陈述是体系结构的。地方性和内涵性的陈述是设计。 |
![]() |
19
3
…很久以前,在一个遥远的地方,哲学家们担心一和多之间的区别。架构是关于关系的,它需要很多。体系结构具有组件。设计是关于内容的,这需要一个。设计具有属性、品质、特征。我们通常认为设计是在架构中进行的。二元思维使许多人成为原始的。但建筑也在设计中。这都是我们选择如何看待我们面前的事物——一个或多个。 |
![]() |
20
3
很主观,但我认为: 建筑学 系统的总体设计,包括与其他系统的交互、硬件需求、总体组件设计和数据流。 设计 |
![]() |
21
2
例如,您的业务是关于交易员的“损益”,您的主要功能包括“投资组合评估”和“风险计算”。 Software Architect 将详细说明他的解决方案,他将意识到: “投资组合评估”不能只是一个应用程序。需要在可管理的项目中对其进行改进,如:
软件设计将检查不同的应用程序、它们的技术关系及其内部子组件。
|
![]() |
22
2
如果他随后将引擎的构建委托给另一个团队,他们将创建一个“引擎架构”。。。 因此,这取决于抽象或细节的层次。一个人的建筑可能是另一个人的设计! |
![]() |
23
2
建筑是 “难以改变的设计决策。” 企业应用程序体系结构模式 ,作者:马丁·福勒 这意味着体系结构取决于系统的语言、框架和域。如果您可以在5分钟内从Java类中提取一个接口,那么它就不再是一个简单的架构决策了。 |
![]() |
24
1
Cliff Notes版本: 设计:根据所需产品的规格实现解决方案。 架构:支持您的设计的基础/工具/基础设施/组件。 这是一个相当广泛的问题,会引起很多反应。 |
![]() |
25
1
我想设计是用来把所有这些结合在一起的创意? |
![]() |
26
1
软件设计有着较长的历史,而软件架构这个术语只有20年的历史。因此,它正在经历成长的阵痛。 学者们倾向于将架构视为软件设计更大领域的一部分。尽管人们越来越认识到拱门是一个属于自己的领域。 实践者倾向于将Arch视为具有战略意义的高级设计决策,在项目中撤销这些决策可能代价高昂。 Arch和design之间的精确界限取决于软件领域。例如,在Web应用程序领域,分层体系结构目前最受欢迎(业务逻辑层、数据访问层等)。该体系结构的较低层次部分被视为设计(类图、方法签名等)。这将在嵌入式系统、操作系统和,编译器等。 |
![]() |
27
1
体系结构是高层次、抽象和逻辑设计,而软件设计是低层次、详细和物理设计。 |
![]() |
28
1
|
![]() |
29
1
Architectural Styles and the Design of Network-based Software Architectures
他强调“运行时元素”和“抽象层次”。 |
![]() |
30
1
这个问题没有明确的答案,因为“软件架构”和“软件设计”有很多定义,并且没有一个规范的定义。 Len Bass、Paul Clements和Rick Kazman认为“所有的架构都是设计,但并非所有的设计都是架构”[实践中的软件架构],这是一种很好的思考方式。我不确定我是否完全同意这一点(因为体系结构可以包括其他活动),但它抓住了一个本质,即体系结构是一种处理设计的关键子集的设计活动。 SEI definitions page )这是一组决策,如果决策错误,会导致项目被取消。 几年前,Amnon Eden和Rick Kazman在一篇题为“架构、设计、实现”的研究论文中对将架构、设计和实现作为概念进行了有益的尝试,该论文可在以下位置找到: http://www.sei.cmu.edu/library/assets/ICSE03-1.pdf 建筑学 是一种可在多种环境下使用的设计,旨在应用于整个系统, 是(err)设计,可用于多种环境,但应用于系统的特定部分,以及
我希望这有帮助! |
![]() |
Kazi · 如何让两个用户同时登录Laravel应用程序 6 年前 |
![]() |
Mahdi GB · 如何在MVC中通过控制器将模型数据发送到视图# 6 年前 |
![]() |
Denis Liger · 一个API两个通道 6 年前 |
![]() |
codematix · 利用gRPC构建解决方案 7 年前 |
|
Filip T · 流量与全局变量(服务中) 7 年前 |
![]() |
user3429660 · 如何使用RabbitMQ实现可靠性? 7 年前 |