域建模
随着列出的事件的增加,我们可以将它们分解到一组主题域中,这样我们可以集中精力分别研究系统特定的部分。例如,我们更愿意将会员如何预订以及如何成为会员分开考虑,虽然这两个部分并不是完全独立的。
事件——按主题域分类
出租(Renting)
会员租借录像带会员还录像带
会员预订录像带(按片名)
会员取消预订
预订过期
出售(Selling)
顾客购买录像带
雇员将拷贝标记为销售
雇员将某一影片的所有拷贝标记为销售
管理存货(Managing inventory)
雇员增加一部新影片
雇员增加一个拷贝
雇员删除一部新影片
雇员删除一个拷贝
管理会员(Managing membership)
雇员增加一个会员
雇员删除一个会员
其它需要建模的主题域
钱
支付
时间
推敲列表(Polishing the lists)
随着我们理解的增加,我们希望对一些实体重新考虑。例如,我们如何发现“预订失效”事件?我们可能发现“工作日结束”事件。我们可能发现所有预订都可能过期。我们可能要定义一个操作来确定预订失效的时间。
我们还可能决定,例如,将一个影片的所有拷贝标记为可销售是替代将每个拷贝进行标记的好方法,因此,可以仅关心将一个拷贝标记为销售即可。
从域建模转移到系统建模
当我们转到系统模型,必须考虑我们先前模型的范围。这意味着我们确定的主题域和技术域的范围。如果不能一次发布,这些决定必须与系统哪些部分先发布相关。我们假定出租部分先发布,我们的建模任务就围绕出租为核心,其它模型将考虑设备、用户界面、固定存储设备等。