Implementation of the Specification software design pattern