Designing Software Product lines With UML : from use cases to pattern-based software architecture - Hassan Gomaa (Addison-Wesley)