Architecture 软件设计与软件架构

Architecture 软件设计与软件架构,architecture,definition,Architecture,Definition,有人能解释一下软件设计和软件架构之间的区别吗 更具体地说;如果你告诉某人向你展示“设计”,你希望他们展示什么?“建筑”也是如此 我目前的理解是: 设计:系统特定模块/部分的UML图/流程图/简单线框(用于UI) 架构(Architecture):组件图(显示系统的不同模块之间以及其他系统之间的通信方式)、要使用的语言、模式 如果我错了,请纠正我。我参考了维基百科上关于和的文章,但我不确定我是否正确理解了它们。是的,我觉得这听起来不错。设计是你要做的,而架构是将设计的各个部分连接在一起的方式。

有人能解释一下软件设计和软件架构之间的区别吗

更具体地说;如果你告诉某人向你展示“设计”,你希望他们展示什么?“建筑”也是如此

我目前的理解是:

  • 设计:系统特定模块/部分的UML图/流程图/简单线框(用于UI)
  • 架构(Architecture):组件图(显示系统的不同模块之间以及其他系统之间的通信方式)、要使用的语言、模式

如果我错了,请纠正我。我参考了维基百科上关于和的文章,但我不确定我是否正确理解了它们。

是的,我觉得这听起来不错。设计是你要做的,而架构是将设计的各个部分连接在一起的方式。它可能与语言无关,但通常会指定要使用的技术,即LAMP v Windows、Web Service v RPC。

你说得对,是的。系统的架构是其“骨架”。它是系统的最高抽象级别。存在什么样的数据存储,模块之间如何交互,有什么恢复系统。与设计模式一样,也有体系结构模式:MVC、三层分层设计等

软件设计是指设计各个模块/组件。模块x的职责和功能是什么?Y班的?它能做什么,不能做什么?可以使用哪些设计模式


因此,简言之,软件体系结构更多地是关于整个系统的设计,而软件设计强调模块/组件/类级别。

当您需要将更高体系结构级别识别的业务和功能投影到应用程序中时,最好在系统级别使用软件体系结构

例如,您的业务是关于交易员的“损益”,您的主要功能包括“投资组合评估”和“风险计算”

但当遗嘱详述其解决方案时,他会意识到:

“投资组合评估”不能只是一个应用程序。需要在可管理的项目中对其进行改进,如:

  • 发射装置
  • 调度员
(因为所涉及的操作非常庞大,需要在多台计算机之间进行拆分,同时仍然通过通用GUI随时进行监控)

软件设计将检查不同的应用程序、它们的技术关系及其内部子组件。

它将产生上一个(“技术架构”)所需的规范(在技术框架或横向组件方面)以及项目团队所需的规范(更侧重于业务功能的实现)开始各自的项目。

在一些描述中,它们是可互换的,但其共同点是它们是不同的。它们同时是:不同的(1)阶段,(2)责任领域,(3)决策层

  • 更重要的是:框架、语言、范围、目标和高级方法的选择(、等)
  • 是较小的图片:如何组织代码的计划;系统不同部分之间的合同外观如何;项目方法和目标的持续实施。在此阶段编写规范
这两个阶段似乎因不同的原因而融合在一起

  • 较小的项目通常没有足够的范围将规划分为这些阶段
  • 一个项目可能是一个更大项目的一部分,因此两个阶段的部分都已经确定。(已有数据库、约定、标准、协议、框架、可重用代码等)
  • 新的SDLC思维方式(请参阅)在某种程度上重新安排了这种传统方法。设计(在较小程度上是体系结构)在整个SDLC中有目的地进行。通常,整个过程反复发生的地方更多
  • 软件开发是复杂的,无论如何也很难计划,但客户/经理/销售人员通常会在中途改变目标和需求,从而使开发变得更加困难。无论是否是计划,设计甚至架构决策都必须在项目后期做出

  • 即使责任的各个阶段或领域融合在一起,并在各地发生,了解决策的级别总是很好的。(我们可以一直这样做。我试着把它作为一个总结。)我将以:即使你的项目似乎没有正式的架构或设计阶段/AOR/文档,不管有没有人有意识地这样做,它都在发生。若并没有人决定做架构,那个么默认的架构可能很差。设计也一样。如果没有代表这些概念的正式阶段,这些概念几乎更为重要。

    好问题。。。虽然它们之间的界限很难清晰明了,但如果你同时使用这两个术语,那么架构包含了更多关于如何构建或构建某物的技术或结构决策,尤其是那些一旦实现就很难(或更难)改变的决策,然而,设计包括那些以后容易更改的决策(如方法名称、类文件组织结构、设计模式、是使用单一类还是静态类来解决某些特定问题等)和/或那些影响系统或应用程序外观或美学方面的决策(人机界面、易用性、外观和感觉等)

    Cliff Notes版本:

    设计:根据所需产品的规格实现解决方案

    架构:基础/工具/基础设施/组件