Product line development has proven a successful approach to achieve strategic and large-grained reuse and hence time-to-market and productivity. A key to successful software product lines is to identify and anlyze the right functionality for reusable implementation, and thus perform detaled requirements analysis for product lines to exploit commonality and variability (C&V) within a family of related systems. In this paper, we describe the goal and scenario driven approach for developing software product lines, which elicits product line requirements and analyzes C&V in products of a product line, as well as supports developing a paricluar product in the product line. We also discuss our ultimate goal that is to develop a dynamic software product line, which can produce new products at runtime by dynamic reconfiguration of the product line based on goals and scenarios.