Software Product-Line Engineering: A Family-Based Software Development Process