咖啡机:逻辑层¶
介绍¶
在逻辑层,我们将定义一个与技术无关的解决方案。这是中间层次的抽象,系统将通过其结构和行为进行描述。该层面的重点在于系统组件的组织方式及其相互间的交互机制。
功能边界行为¶
功能边界行为图是一种SysML活动图(Activity diagram),用于展示不同逻辑模块之间的交互关系。泳道将图表划分为不同区域,每个区域代表一个独立的功能模块或组件。
在本例中,该活动图包含了以下模块的泳道:人机界面(HMI)、控制器(Controller)、水泵(Water Pump)、加热器(Water Heater)、冲泡头(Group Head)及冲煮把手(Portafilter)。当咖啡师按下操作按钮时,人机界面接收指令并发送启动命令至控制器。控制器随即启动加热器工作,待水温达到设定值后,控制器将激活水泵运行。热水通过水泵输送至冲泡头,最终注入冲煮把手中的咖啡粉进行萃取。该活动图清晰展示了各逻辑模块间的信息传递与动作衔接,确保每个功能模块的行为能够正确连接并整合到系统中。
从逻辑(Logical)包中,在模型浏览器内展开行为(Behavior)包并双击名为Functional Boundary Behavior的图表。可通过点击泳道并在属性编辑器(Property Editor)中添加分区来增加更多泳道。冒号前的分区名称同样可在属性编辑器中修改。模块名称需在结构(Structure)包中更改,具体操作方式如领域图章节所述。Domain Diagram section
可使用工具箱创建其他对象流(Object Flow)、引脚(pin,注意区分输入与输出)及动作(Action)。位于图表最左侧与最右侧、依附于活动的参数节点(Parameter Nodes),需通过点击活动(Activity)并在属性编辑器中修改来完成创建与重命名。
逻辑状态机¶
咖啡机的逻辑状态机是一张展示机器在制作咖啡过程中所经历的不同状态及转换的示意图。在本例中,主要有两种状态:开机(On)和关机(Off)。
当咖啡机启动时,它将进入"开机(On)"状态。在"开机(On)"状态内部包含若干子状态,初始为"加热水(Heat Water)"状态。当水温达到设定值时,机器将从"加热水(Heat Water)"状态转换至"就绪(Ready)"状态。
机器进入就绪状态后,用户可选择单杯(one cup mode)或双杯模式(two cup mode)。根据所选模式,机器将相应切换至单杯模式或双杯模式工作状态。
打开逻辑状态图,通过属性编辑器在On状态中添加一个区域。接着使用工具箱添加额外的子状态和迁移线。对于迁移线的监护条件(以方括号显示),需先选中对应迁移线,然后在属性编辑器中添加监护条件。
咖啡机的逻辑状态机图展示了这些状态,以及触发状态转换的不同条件。这有助于设计机器的蚂蚁们理解咖啡机的工作原理,并确保其正常运行。
逻辑结构¶
逻辑结构展示了该咖啡机由哪些逻辑模块组成。由于我们处于逻辑层,这些模块应不受具体技术选型的影响。
以下逻辑模块是咖啡机的一部分:
水箱
水泵
热水器
冲煮把手
控制器
冲泡头
人机界面(HMI)
每个模块代表浓缩咖啡机的一个关键部分,而浓缩咖啡机与其逻辑部件之间采用了包含关系。
水箱:水箱是用于储存意式咖啡机所需用水的容器。通常具有特定容量,并设计为便于注水和清洁的结构。当需要时,水箱会将水供给至水泵。
水泵:水泵负责从水箱中抽取水,并产生所需压力,迫使水流穿过手柄中的咖啡粉。通过确保稳定的水流,水泵在浓缩咖啡萃取过程中发挥着关键作用。
热水器:亦称锅炉或加热元件,其核心功能是将水温提升至冲泡意式浓缩咖啡的最佳温度,并持续保持恒温状态以确保理想的萃取效果与风味呈现。
冲煮把手(Portafilter):冲煮把手是一种可拆卸的手柄状装置,用于盛装咖啡粉。它安装在意式咖啡机上,作为滤杯支架使用。水泵加压的热水穿透冲煮把手内的咖啡粉层,萃取出风味物质,从而制成浓缩咖啡。
控制器:控制器通常是微控制器或专用电路板,作为咖啡机的核心控制系统。它负责管理和协调水泵、加热器、人机界面等各部件的运行,确保萃取流程精准执行。通过实时监测并调控温度、压力等关键参数,保障咖啡出品稳定性,实现预期萃取效果。
冲泡头:冲泡头是意式咖啡机上连接冲煮把手的部件。它在冲煮把手与机器之间形成稳固连接,使萃取出的浓缩咖啡能从冲煮把手流出至杯中。该组件还能在冲泡过程中保持适宜的温度和压力。
人机界面(HMI):人机界面是浓缩咖啡机的用户操作面板,通过按钮、开关或触摸屏实现用户与机器的交互。该界面支持选择不同萃取模式、调整参数设置并监控机器运行状态,可实时反馈萃取时间、温度及杯量选择等关键信息,为用户提供完整的冲泡流程可视化交互体验。
我们目前尚未做出任何技术选型,例如未明确控制器类型、泵的容量或冲泡头的具体型号。这些细节将在技术层面阶段进一步确定。
蚂蚁们需要你更多的帮助来更新逻辑结构图(Logical Structure diagram),以使其与上方的图表保持一致。
逻辑边界¶
逻辑边界图是一种内部模块图(IBD),用于展现系统的内部结构,说明其内部组件或模块之间的关联关系。这种图表能直观呈现系统内部各模块如何交互及传递信息。此处使用的"边界"概念,特指在逻辑边界层面对咖啡机内部结构的透明盒视图。该图表沿用了上方逻辑结构图中各模块的部件属性。
浓缩咖啡机内部部件属性间的交互作用通过连接器(Connector)上的项目流(ItemFlows)呈现。
水(Water):表示从水箱到水泵的水流。
开/关(On/Off):代表开启或关闭浓缩咖啡机的指令或信号。
出液量调节:代表用户为咖啡输出选择的出液量调节。
加压水:代表在压力下用于萃取咖啡的水流。
加热指令:代表启动热水器并开始加热过程的命令或信号。
温度:表示指示当前水温的反馈信号。
高温加压水:代表用于冲泡咖啡的加压热水。
咖啡水混合物:代表冲泡过程中热水与咖啡粉的混合物。
注意
请注意,我们并未实际展示任何进出咖啡机边界的元素,比如咖啡师的输入或产出的咖啡。Gaphor目前不支持在内部模块图的边界上添加端口(Ports),但希望我们能尽快实现这一功能!
这些项目流(Item Flows)捕捉了浓缩咖啡机内部的关键交互与交换过程。它们展现了水流、控制信号、温度反馈以及最终形成的咖啡水混合物的流动路径。通过描绘各组件之间的运作顺序与连接关系,这些项目流(Item Flows)使我们能够更清晰地理解整台机器作为一个系统是如何协同工作的。
请再次协助蚂蚁们,更新逻辑边界图(Logical Boundary diagram)以使其与上方的图示保持一致。
逻辑需求¶
逻辑需求是指描述系统或产品应实现的高层规范和功能,但不涉及具体实现方式。这类需求聚焦于系统预期达成的目标与行为,而非具体技术细节。
我们已经完成了浓缩咖啡机在逻辑层面的行为和结构定义,因此当前的主要任务是将这些信息转化为文字形式的需求说明。
小技巧
如果需要撰写优质需求的指导,推荐参考以下资源: INCOSE Guide to Needs and Requirements以及Easy Approach to Requirements Syntax。
我们采用“派生关系”(Derive Requirement)将逻辑需求与先前创建的概念需求相关联。此关系的方向为"派生自"(derived from)方向——这可能与您习惯的上级需求指向下级需求的常规指向相反。
这里我们推导出两个要求:
控制器指令加热升温
900kPa水压
根据这些需求更新逻辑需求图(Logical Requirements diagram)。如果您愿意,也可以针对我们在其他图表中定义的所有逻辑行为和结构进一步开发额外的需求。