With the advent of software in cars, the automotive industry has been undergoing a radical change. More and more vehicle functions are today implemented by software, making software development a key activity in the development of an overall vehicle system. One of the most important challenges in this field is how to cope with the software's complex variability, resulting from the wide range of models and variants in which today's cars are offered. However, the methods and techniques proposed in the computer science literature for managing such variability during software development are not as a rule directly applicable in the automotive domain. In this dissertation, the manifold reasons for this are discussed in detail and it is shown how they relate to several specific characteristics of the automotive domain, for example the interaction between automotive manufacturers and their many suppliers. Based on this investigation, two fundamental software engineering concepts are presented for developing highly variable software systems in an industrial context: subscoping and configuration links.