Architecture 软件工程中的子系统及其组成部分

Architecture 软件工程中的子系统及其组成部分,architecture,components,system,Architecture,Components,System,如何在软件工程中轻松区分子系统和系统组件 对每一项都给出详细的定义 P>并让我更清楚,让我们考虑系统是一个堆栈溢出的站点,它的组件和子系统是什么? < P>我很谨慎地回答这个问题,部分是因为我们可以根据上下文定义很多。 例如,您可以在UML文献中搜索系统和组件的定义,发现它不同于操作系统书籍 也就是说,这些是我对组件和子系统的拙劣定义。我不是说那是完全正确的 这只是我在投影应用程序时发现的一种在头脑中组织事情的方法 让我们首先定义“系统”。注:我称之为“The”,而不是“a”系统。因为这里的系

如何在软件工程中轻松区分子系统和系统组件

对每一项都给出详细的定义


<> P>并让我更清楚,让我们考虑系统是一个堆栈溢出的站点,它的组件和子系统是什么?

< P>我很谨慎地回答这个问题,部分是因为我们可以根据上下文定义很多。 例如,您可以在UML文献中搜索系统和组件的定义,发现它不同于操作系统书籍

也就是说,这些是我对组件和子系统的拙劣定义。我不是说那是完全正确的

这只是我在投影应用程序时发现的一种在头脑中组织事情的方法

让我们首先定义“系统”。注:我称之为“The”,而不是“a”系统。因为这里的系统是我们的环境,我们的世界

这个系统就是我们正在进行的项目。作为一名软件工程师/架构师/开发人员,您的任务是将其付诸实践、维护并使其蓬勃发展

我对“系统”没有一个简单的定义,因为不同的项目有不同的上下文

由于内部文化的原因,即使是不同商店的类似项目,语言也略有不同

IMHO的定义依赖于语言,语言依赖于文化,文化从语境中演化而来

但我离题了。在简历中,定义取决于您的上下文

例如,在DDD中,有必要定义 确保每个人都在同一页

让我们把“蓝图”称为用于抽象项目的图表,不管它是否在UML、Bizagi等中

子系统的一般定义可以是:

从系统的角度来看,它是你的顶层蓝图上的一个黑匣子。一般来说,子系统本身有一个蓝图,从它的角度来看,它就是系统

子系统可以独立存在,并且在系统上有明确的目的和意义

示例:

它们是一间厨房、一间卧室、一间房子的地下室

因此,你可以说有一个标点子系统,负责管理用户如何获得和失去分数

请注意,SE站点的每个实例都可以有这样的子系统,甚至它们可以通信以跟踪您在许多SE站点中的点

另一个例子是用于持久化和获取相关数据的持久化子系统

组件的一般定义可以是:

他们很少出现在系统蓝图上,自己也很少得到蓝图

通常,组件在系统之外没有意义。它们可以被系统和子系统使用,但其用途是通用的

在房子里,它们是墙壁和家具。在某个地方放一把椅子听起来是不对的,会议室里的椅子是有用的,但不是一个子系统。 因此,组件可以是用于编写/编辑答案和问题的在线文本编辑器

值得一提的是第三方组件

它们可以是系统本身,甚至是非常复杂的系统,如DBMS或jQueryJavaScript库

一般来说,在任何蓝图中绘制它们都是错误的。它们可以在世界范围内使用,是优秀的工具,但它们是具有通用用途的黑匣子。 因此,它们可以是SQL DBMS和JavaScript库

总结:

  • 子系统可以在没有父系统的情况下存在

  • 组件不能单独使用,必须是系统的一部分才能存在

    打个比方:

  • 汽车是旅游基础设施的一个子系统

  • 车轮是汽车的一个部件


正如我所说,这只是IMHO。

我谨慎地回答这个问题,部分原因是我们可以根据上下文给出许多定义

例如,您可以在UML文献中搜索系统和组件的定义,发现它不同于操作系统书籍

也就是说,这些是我对组件和子系统的拙劣定义。我不是说那是完全正确的

这只是我在投影应用程序时发现的一种在头脑中组织事情的方法

让我们首先定义“系统”
。注:我称之为“The”,而不是“a”系统。因为这里的系统是我们的环境,我们的世界

这个系统就是我们正在进行的项目。作为一名软件工程师/架构师/开发人员,您的任务是将其付诸实践、维护并使其蓬勃发展

我对“系统”没有一个简单的定义,因为不同的项目有不同的上下文

由于内部文化的原因,即使是不同商店的类似项目,语言也略有不同

IMHO的定义依赖于语言,语言依赖于文化,文化从语境中演化而来

但我离题了。在简历中,定义取决于您的上下文

例如,在DDD中,有必要定义 确保每个人都在同一页

让我们把“蓝图”称为用于抽象项目的图表,不管它是否在UML、Bizagi等中

子系统的一般定义可以是:

从系统的角度来看,它是你的顶层蓝图上的一个黑匣子。一般来说,子系统本身有一个蓝图,从它的角度来看,它就是系统

子系统可以独立存在,并且在系统上有明确的目的和意义

示例:

它们是一间厨房、一间卧室、一间房子的地下室

因此,你可以说有一个标点子系统,负责管理用户如何获得和失去分数

请注意,SE站点的每个实例都可以有这样的子系统,甚至它们可以通信以跟踪您在许多SE站点中的点

另一个例子是持久性子系统