Filter
This page is a draft. It still needs to be completed.Problem
The user needs to search data among a myriad possible results. The filter provides a criteria to reduce the quantity of information and to narrow and keep the focus into the needed data.
Principle
Search, Focus.
Forces
- Methods for constraining the data available are need in order to not to overwhelm the user.
- Filter too complex or with too many options are less used that simple ones.
Solution
A filter is a criteria useful for searching for objects. Given a certain class, the user needs to search for objects satisfying a given condition. E.g. searching customer by name or surname in a the system.
A condition must be formulated in terms of the object properties. This condition can be checked again each object belonging to that class. All objects satisfying such condition conforms the subset to be shown to the user.
Rationale
Providing methods to constrains the amount of data. Keeping the focus.
Examples
Specification
A filter for a class can be viewed as a query method in such class. The filter has a unique name in the class and a list of parameters to concrete the searching criteria. The filter method returns, as a result, a collection of objects. The filter is expressed in a formula using filter parameters, attributes of the class, constants, literals and operators. The formula is always evaluated to a boolean type. The semantic of the formula is the following: the result returned by the filter is a collection of objects that satisfies (makes true) the formula.
Related patterns
Query By Example (QBE) techniques (Zloof, 1977) where the user can create on the fly the criteria could be also applied, but previous experiences reveal that, in general, users do not need a powerful search engine. On the contrary, users usually employ few filters for a given scenario and prefer easy to use specific tailored filters for the current tasks. In this way, usability is increased.
Edit

