The sample application

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.