对PlantUML们的评价-《软件方法》全流程引领AI-第1章 02
AI辅助的建模步骤-《软件方法》全流程引领AI-第1章 03
圈子割裂历史和封闭引用-《软件方法》全流程引领AI-第1章 06
1.6. 伪创新的乐土:“互联网”-《软件方法》全流程引领AI-第1章 08
1.6.3 “领域驱动设计”的乐土-《软件方法》全流程引领AI-第1章 09

2.1 系统
2.1.3 系统和系统规格
由于本书只深入讨论信息系统相关的建模,因此从以下内容开始,我们说到信息系统时只说“系统”,这样可以在称呼上减少一半字数。也许后续讨论的内容其中一部分也适用于非信息系统,但本书就不加以鉴别了。
目前为止,我们对“系统”的定义其实是模糊的。
如果有两名.NET程序员马宝国和张雪风,他们的电脑都安装了Visual Studio 2022,这到底算几个系统?如果认为是多个系统,那就会出现多个“系统”对象属性值完全相同的情况。例如,很多系统的名称都叫“Visual Studio 2022”,其厂商都是“Microsoft”(如果关注这些属性的话)。
因此,需要区分“系统规格”和“系统”。我们把“Visual Studio 2022”看作一个“系统规格”,某个人脑或计算机容器中安装的“Visual Studio 2022”是一个“系统”。添加上“系统规格”后,类图如2-6。

图2-6 系统和系统规格
用上面的马宝国、张雪风数据实例化图2-6,得到的对象图如图2-7。

图2-7 对象图
如果更严谨地追问,上面的模型还是存在模糊。
我们把“.NET程序员”和“Visual Studio 2022”看作是对等的,但马宝国后面可能会使用“Visual Studio 2026”,或者改用另一个厂商出品的.NET集成开发环境“Rider”。那么,“.NET程序员”最合适的对应应该是“Visual Studio 2022”、“Visual Studio”还是“.NET集成开发环境”?
这个模糊的根源可能是:我们比较清楚 “Visual Studio”和“Rider”的差别、“Visual Studio 2022”和“Visual Studio 2026”的差别、“Visual Studio 2022社区版”和“Visual Studio 2022专业版”的差别,但是不清楚“.NET程序员”之间的差别。
这个问题我们暂时搁置,以上所提炼的概念对于本书的建模够用了。
后续的建模过程中,我们在研究系统时会有意忽略容器。我们只要知道有两个人脑系统“.NET程序员”和“浑元太极教练”就够了,它们是不是驻留在同一个人脑中,或者说这两个岗位(角色)是不是指向同一个人,是无所谓的。软件系统也是如此。
所以,在描述系统之间的协作时,我们可能会像图2-8这样建模:

图2-8 “.NET程序员”和“Visual Studio 2022”的协作
“.NET程序员”和“Visual Studio 2022”安装在容器(人脑或计算机)中,这两个系统事实上并不直接接触。如图2-8左侧的场景,两者的接触点是人的手指和键盘。人的大脑指挥手指去敲击键盘,键位的变化被捕获并翻译成相应键的编码……但这些都属于容器相关的行为,图2-8右侧的序列图不用表达。
容器类型也不会经常被提到,因为从系统规格的名称就可以判断,例如,“.NET程序员”是人脑系统,“Visual Studio 2022”是软件系统。
2.2 组织
--待续--
923

被折叠的 条评论
为什么被折叠?



