Imagine you develop an application for managing customers’ orders. This application consists of three logical software Modules (which can consist of one ore more files and/or libraries):
· GUI: implements the user interface,
· CONTROL: manages the product stock, and
· DBS: persistent data store, using a database system.
The names GUI, CONTROL and DBS are used as the Module names in the logmessages of the application.
Your business logic consists of three functions (use-cases):
· INSERT: insert a new order
· UPDATE: modify an existing order, and
· DELETE: delete an order.
The names INSERT, UPDATE and DELETE are used as the Case names in the logmessages of the application.
Now each logmessage that a Module produces can be marked with its Module name and with the use-case in the context of which the logmessage is used.
The logmessage text can be used freely. It can contain:
· the actual input parameters of the use-case (customer ID, order ID, …)
· executed statements (in the case of Module DBS these can be SQL statements)
· results of the execution, including error messages.
Let’s look now how we can use filters to select logmessages that are based on this software design.