We want to develop an information system to support the counter activities
in a supermarket. The system must also support the back-end activities,
such as statistics on the sales performed by the employees and on the
products bought by the customers.
A typical interface at the supermarket counter consists of a touch screen
and a bar code reader, information on product prices and stock levels are
kept in a separate server machine. The server machine centralizes most of
the computing activities and allows monitoring of the ongoing activities by
the sales manager.
Focus: this case study exemplifies the separation of concerns between
data presentation, data processing and data persistence, introducing the
OO techniques: proxy objects are used to make the communication
among components transparent.
Java features: sockets are used as a communication means; the JDBC
technology is used to access a relational database.
The activities performed in a supermarket are mainly located at the
counters (or points of sale) where the customers present the products they
want to buy to an employee, who registers the products and accepts the
payments. These activities involve accessing the product database in order
to retrieve prices and to update their quantities.
Each counter is equipped with a terminal. Terminals are low-cost PCs
with cheap processors and limited memory and an LCD touch screen. The
touch screen emulates the functionalities of a mouse; this simplifies the
interface and eliminates the need for a keyboard. A central server computer
performs all the operations and interacts with a database containing all the
information about products, employees and customers. The supermarket
has a local area network connecting all the terminals and the central server.
The typical usage scenario takes place at the counter. At the beginning of
her shift, the employee activates the counter. The counter remains
active until the end of the shift when the employee deactivates it. The