As software continues to drive new products and product differentiation, the amount of embedded software in products is growing exponentially. Product functionality is becoming more dependent on software and less on hardware and mechanical components. Consumers are demanding smarter, more connected products. This demand has led to the explosive growth of software and networks. New technologies, applications, and devices are emerging in industries from aerospace and defense, agriculture, and automotive to high-tech, medical devices, and many more. This staggering growth of software creates both business and technical challenges – specifically how to produce quality software fast enough without a prohibitive increase in cost. A promising solution is to reuse as much code as possible.