The difference between the conventional software engineering and software product line engineering is variant management. The main idea of software product line is to identify the common core functionality that can be implemented once and reused afterwards for all members of the product line. To facilitate this reuse opportunity the domain engineering phase makes the domain model comprising common as well as variant requirements. Common requirements are easy to handle. However, problem arises during handling the variants. Different variants have dependencies on each other. A single variant can affect several variants in the domain model. These problems become complex when the volume of information grows and there are a lot of variants with several interdependencies. A separate model is required to handle the variants. This book discusses an approach to modeling variants in a domain model. Deriving from the common requirements, the default domain models are drawn in UML. By using the variant model the required variants are then added to or deleted from the defaults for the specific system.