# 1DV607 Notes ### Domain model Use cases are an important requirements analysis artifact, but are not object-oriented. They emphasize an activity view. The quintessential object-oriented analysis step is the decomposition of a domain into noteworthy concepts or objects. Visar klasser vars relationer är meningsfulla att notera. Applying UML notation, a domain model is illustrated with a set of class diagrams in which no operations (method signatures) are defined. It provides a conceptual perspective. It may show: domain objects or conceptual classes associations between conceptual classes attributes of conceptual classes A UP Domain Model, as shown in Figure 9.3, is a visualization of things in a real-situation domain of interest, not of software objects such as Java or C# classes, or software objects with responsibilities (see Figure 9.4). Therefore, the following elements are not suitable in a domain model: Software artifacts, such as a window or a database, unless the domain being modeled is of software concepts, such as a model of graphical user interfaces. Responsibilities or methods. **What are Conceptual Classes?** The domain model illustrates conceptual classes or vocabulary in the domain. Informally, a conceptual class is an idea, thing, or object. More formally, a conceptual class may be considered in terms of its symbol, intension, and extension [MO95] (see Figure 9.5). **Symbol** words or images representing a conceptual class. **Intension** the definition of a conceptual class. **Extension** the set of examples to which the conceptual class applies. --------------- ![](https://i.imgur.com/jNY3m3Y.png) If we do not think of some conceptual class X as a number or text in the real world, X is probably a conceptual class, not an attribute. -------------- --------------- ![](https://i.imgur.com/mLEGtpA.png) Name an association based on a ClassName-VerbPhrase-ClassName format where the verb phrase creates a sequence that is readable and meaningful. Simple association names such as "Has" or "Uses" are usually poor, as they seldom enhance our understanding of the domain. For example, good example: Sale Paid-by CashPayment bad example: (doesn't enhance meaning): Sale Uses CashPayment --------------