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站点中的点 另一个例子是持久性子系统