This document discusses software product line engineering. It defines software product line engineering as developing a set of software systems that share common features to satisfy market needs in a prescribed way using core reusable assets. The document outlines the key concepts of domain engineering to define common and variable features, and application engineering to build applications exploiting this variability. Implementing software product lines can reduce development costs and time to market by promoting reuse across applications.