ABSTRACT: Typically, we think of modelling some business domain when we see the word modelling in the context of software -- some business domain is not understood and therefore we build models of it to express our understanding of the business domain. In this paper we think of the software domain as the domain that is not understood and therefore we build models of it to express our understanding of the software domain. We present a model universe that illustrates our view on modelling in general, and we use the model universe and the domains to discuss models of software. Our discussion revolves around the familiar object modelling technique to express of models of software. The object modelling technique is discussed in terms of mechanisms in a special OO language and in terms of UML. We y by representing abstractions such as design patterns in OO software. We conclude that describing software architecture should be understood as a subdicipline of building models of software, and th...