Today’s software engineering practices are aimed at developing single systems. There are attempts to achieve reuse through
object- and component-based technologies with two specific goals: to cut development costs, and time-to-market and to improve
quality. But current research and practical experience suggest that only moving from the single system engineering to the
system-family engineering approach can bring significant progress with respect to these goals [4, 8, 10].