A multiple-view modelling and meta-modelling approach for software product lines (SPLs) using the unified modelling language notation is described. A multiple-view model for an SPL defines the different perspectives of the product line, namely the use case model, static model, collaboration model, statechart model and feature model, including the commonality and variability. The meta-model for SPLs depicts the life-cycle phases, views within each phase and meta-classes within each view. The relationships between the different meta-model views are described. Consistency checking rules are specified based on the relationships among meta-classes in the meta-model. These rules, which are specified formally using the object constraint language, are used to resolve inconsistencies between multiple views in the same phase or different phases, and to define allowable mappings between multiple views in different phases. Finally, tool support for the approach is described.