The process of modelling and developing commonality and variability for system families should be supported by suitable methods and notations. The object-oriented methods and their notations, which are used at present, focus on the development of a single system at a time. In this paper we analyse feature models as a representation of the common parts and variants contained in a system family, and propose using a feature diagram as a basic representation of commonality, variability and dependencies. We examine various approaches to customizing the standard modelling language UML to model system families and propose how to extend the UML for the purposes of modelling variants in object-oriented analysis and design techniques. We recommend the use of UML standard lightweight extensibility mechanisms (stereotypes combined with tagged values) without changing the UML metamodel. This enables us to join the advantages of feature models with UML and provides the traceability of a concept throughout system development. An application of lightweight UML extension mechanisms allows the existing standard UML modelling tools to be used without any adaptations. An example of an application illustrates our approach.