系统分析中的关键概念与实践
1. 列表移除机制
历史事实无法被删除,而视图是历史事实的投影。然而,无限制增长的视图很快会变得无用,因此视图规范需要一种从列表中移除项目的方法,这可通过负存在条件来实现。
在餐厅场景中,有“请求餐桌”“安排就座”和“离开”等操作。“请求餐桌”按钮会引导主持人进入一个表单,用于记录到达派对的详细信息;“安排就座”和“离开”按钮则会立即创建新的事实,这些决策会影响视图显示的信息。
1.1 可用餐桌列表
餐厅开业时,所有餐桌都可用。当派对就座时,相应餐桌从可用列表中移除;餐桌清理后,又会重新加入列表。可用餐桌的规范如下:
tablesAvailable = (r: Restaurant) {
t: Table [
t→restaurant = r
∄ {
s: SeatParty [
s→table = t
∄ {
b: BusTable [
b.seatParty = s
]
}
]
}
]
}
1.2 等待派对列表
派对请求餐桌时被添加到等待列表,就座或离开时从列表中移除。等待派对的视图规范如下:
partiesWaiting = (r: Restaurant) {
rt: RequestTable [
rt→restaurant = r
∄ {
s: SeatParty [
s→requ
超级会员免费看
订阅专栏 解锁全文

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



