Apples and oranges: comparing top-down and bottom-up language product lines