An abstract
sieve can be used to sort ideas into categories. Start with an unstructured collection of ideas, define some categories, and then "sieve" the ideas into the
categories. If some ideas don't fit well, you may need to redefine the sieve and start again.
Applicable to
software design, especially when assigning
responsibilities to components. Sometimes described as "separation of concerns".