Product Information Management: Configuration Technology Types

Please explain the difference between i) Predefined Variant. ii) Dimension Based Configuration. iii) Constraint Based Configuration with a simple example.

Thanks