有人可以解释一下软件设计和软件架构之间的区别吗?
更具体地说;如果你告诉某人向你展示“设计”——你希望他们展示什么? “建筑”也是如此。
我目前的理解是:
- 设计:特定模块/系统部分的 UML 图/流程图/简单线框图(用于 UI)
- 架构:组件图(显示系统的不同模块如何相互通信以及如何与其他系统通信),使用什么语言,模式......?
如果我错了,请纠正我。我已经提到维基百科有关于 http://en.wikipedia.org/wiki/Software_design 的文章和 http://en.wikipedia.org/wiki/Software_architecture ,但我不确定我是否正确理解了它们。
最佳答案
你说得对,是的。系统的架构是它的“骨架”。它是系统的最高抽象级别。存在什么样的数据存储,模块之间如何交互,有哪些恢复系统。就像设计模式一样,也有架构模式:MVC、3-tier 分层设计等。
软件设计是关于设计各个模块/组件。模块 x 的职责、功能是什么? Y级的?它能做什么,不能做什么?可以使用哪些设计模式?
所以简而言之,软件架构更多的是整个系统的设计,而软件设计则强调模块/组件/类层面。
关于architecture - 软件设计与软件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/704855/