第一个案例研究是NextGen电子收款机(POS)系统。在这个看起来简单明了的问题域中,我们将发现有许多有趣的需求和设计问题需要解决。而且,这是一个实际问题,确实有一些公司在使用对象技术开发POS系统。
POS系统是计算机化应用,用于(部分地)记录销售信息和处理支付过程,零售店通常会用到这种系统。该系统包括计算机、条码扫描仪等硬件,还包括使系统运转的软件。它还要为不同服务的应用程序(比如第三方的税金计算器和库存控制)提供接口。这种系统要求具有一定的容错性,即如果远程服务(如库存系统)暂时中断,系统必须仍然能够获取销售信息并且至少能够处理现金付款(这样业务才不会瘫痪)。
POS系统必须支持日益增多的各种的客户终端和接口。其中包括瘦客户的Web浏览器终端、具有类似Java Swing用户图形界面的个人计算机、触摸屏输入装置、无线PDA等。
更进一步,假设我们正在开发一个商用的POS系统,并打算把它出售给在业务规则处理上具有全异需求的不同客户。每个客户都希望在使用系统过程中的某些可预知条件下,执行一组独特的业务逻辑规则,例如在开始新的销售过程或添加一个新的产品时。因而,我们需要一种机制来提供这种灵活性和定制能力。
我们将使用迭代开发策略依次完成需求、面向对象分析、设计和实现。