软件体系结构vs系统体系结构vs类图?


11

我对以下术语感到困惑:

软件架构

软件应用程序体系结构是定义满足所有技术和运营要求的结构化解决方案的过程,同时优化了诸如性能,安全性和可管理性之类的通用质量属性。它涉及基于各种因素的一系列决策,并且这些决策中的每一个都会对应用程序的质量,性能,可维护性和整体成功产生重大影响。(微软

系统架构

系统体系结构是概念模型,用于定义系统的结构,行为和更多视图。1体系结构描述是对系统的形式化描述和表示,以支持有关系统结构和行为的推理的方式组织(Wiki

类图

在软件工程中,统一建模语言(UML)中的类图是一种静态结构图,它通过显示系统的类,其属性,操作(或方法)以及对象之间的关系来描述系统的结构。(维基

如果我阅读了这些描述,所有这些都描述了应用程序不同模块之间的交互。但是,这些之间有什么区别?
我认为/尝试比较这些术语

  • 类图不是系统体系结构的一种形式,因为上面的描述(structure, behavior, and more views of a system)暗示体系结构中不存在任何实现细节,而类图描述了实现,并且可能更倾向于设计而不是体系结构?
  • 我认为系统架构是还包括外部交互(如数据库)的架构,而软件架构则专注于应用程序本身?

1
也许类图是软件体系结构活动的输出,类似于建筑物的蓝图是建筑物的建筑师的输出...
FrustratedWithFormsDesigner

Answers:


7

系统架构描述了系统的组件。例如,您可能有一个包含以下内容的订单输入系统:

Web前端,业务层服务和数据存储。

因此,您应该显示一个高级图。

软件应用程序体系结构描述了特定组件的体系结构。例如,订单输入系统的组件之一是Web前端。应用程序体系结构将显示该组件的各个层和交互。响应式用户界面,模型视图控制器,Web服务调用,如何完成日志记录等。它给出了每个组件的构想和构想,并且该组件中的层是较大系统的一部分。

通常,会创建一个更详细的图来显示如何构造该组件。

最后,类图将更深入地研究软件应用程序体系结构。例如,日志接口的协定是什么样的?View将如何与Controller交互...等等。这些将进一步详细说明系统特定组件的软件应用程序体系结构。

如果特定的组件又大又复杂,那么应该有很多。


2

其他一些要点:

  • 系统是最广泛的术语,通常是最高级别,最不详细。
  • 系统的一部分可以分类为软件。
  • 可以使用类图描述部分软件。

最后但并非最不重要的一点:体系结构是关于一次性的选择,这些选择很难或不可能在以后不重新构建所有内容的情况下恢复。最好的建筑定义将其与设计区分开来,即“任何更改真正昂贵的东西”。因此,在体系结构中,通常会找到选择编程语言,操作系统,关系数据库的品牌的选择,而无论您选择哪种解决方案。因此,分类为体系结构的内容还取决于系统本身,以及该方面的灵活性。


0

类图与这两个术语的其余部分有很大的不同-它们显示了类为其他类提供的内容以及它们之间的交互方式。但是,术语“系统体系结构”和“软件体系结构”会造成混淆,需要进一步说明。

重要的是要认识到“系统”不仅指软件组件,而且还指其他组件,例如硬件组件。如果系统仅包含软件系统,则两个术语之间没有区别。但是,显然,如果系统包含其他非软件组件,则软件体系结构将与系统的系统体系结构显着不同。


系统架构是否还应该包含GUI模块?@Tushar
KingBoomie

是的,它可能并且不一定是软件组件。@RickBeeloo
Tushar

但是您需要软件中的一个类来接受用户输入并向用户显示某些内容吗?因此,它也应该是软件组件?
KingBoomie

是和否。并非软件系统的所有使用者都是人类:)
Tushar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.