Supporting design tasks through constraint satisfaction tools