首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >软件设计与软件体系结构

软件设计与软件体系结构
EN

Stack Overflow用户
提问于 2009-04-01 10:00:50
回答 41查看 254.6K关注 0票数 341

有人能解释一下软件设计和软件体系结构的区别吗?

更具体地说,如果你告诉别人给你“设计”--你希望他们呈现什么?“建筑”也是如此。

我目前的理解是:

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

如果我错了就纠正我。我提到过维基百科有关于设计建筑的文章,但我不确定我是否正确地理解了它们。

EN

回答 41

Stack Overflow用户

回答已采纳

发布于 2009-04-01 10:19:42

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

软件设计涉及到各个模块/组件的设计。模块x的职责、功能是什么?是Y级的?它能做什么,又能做什么?可以使用什么设计模式?

总之,软件体系结构更多的是针对整个系统的设计,而软件设计则侧重于模块/组件/类层次的设计。

票数 326
EN

Stack Overflow用户

发布于 2009-12-24 15:39:40

在对软件开发生命周期的一些描述中,它们是可互换的,但是consesus是不同的。它们同时存在:(1)阶段不同,(2)责任范围不同,(3)决策水平不同。

  • 架构是更大的图景:框架、语言、范围、目标和高级方法(理性瀑布敏捷化等)的选择。
  • 设计是一个较小的图景:如何组织代码的计划;系统不同部分之间的契约的外观;项目方法和目标的持续实施。规范是在这一阶段编写的。

这两个阶段似乎由于不同的原因而融合在一起。

  1. 规模较小的项目往往没有足够的空间将计划划分为各个阶段。
  2. 一个项目可能是一个更大的项目的一部分,因此这两个阶段的部分已经确定。(现有的数据库、约定、标准、协议、框架、可重用代码等等)
  3. 新的考虑SDLC的方法(请参阅敏捷方法)重新安排了这种传统的方法。设计(架构在较小程度上)是在整个SDLC过程中故意进行的。通常有更多的迭代法,在那里,整个过程会一次又一次地发生。
  4. 软件开发是复杂的,也是很难计划的,但是客户/经理/销售人员通常通过改变目标和需求而变得更加困难。设计,甚至是架构决策,都必须在项目的后面制定,不管这是计划还是计划。

即使各个阶段或各个领域的责任混合在一起,并发生在各地,它总是很好地知道什么层次的决策正在发生。)我们可以用这个永远继续下去。我试着把它做个总结。)最后我要说的是:即使你的项目似乎没有正式的建筑或设计阶段/AOR/documentaiton,但无论是否有人有意识地这么做,都是在发生。如果没有人决定做架构,那么默认的架构就会发生,这可能是很糟糕的。设计也是如此。如果没有表示这些概念的正式阶段,那么这些概念几乎是更重要的

票数 80
EN

Stack Overflow用户

发布于 2009-12-24 15:44:22

架构是战略性的,而设计是战术性的。

体系结构包括框架、工具、编程范例、基于组件的软件工程标准、高级原则.

而设计是一种与本地约束有关的活动,例如设计模式、编程习惯和重构。

票数 55
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/704855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档