What is Domain Model and Conceptual Classes?. Tutorial
Summary
TLDRIn this educational video, the presenter introduces the concept of domain models, focusing on their role in software design. Using UML class diagram notation, the video explains the difference between conceptual classes and software artifacts, emphasizing that domain models should reflect real-world entities and relationships, not software-specific constructs. The script guides viewers through creating a domain model, illustrating how to define conceptual classes, their attributes, and associations. It also highlights common mistakes, such as confusing attributes with classes, and provides examples to clarify these concepts, aiming to enhance understanding of domain modeling in software development.
Takeaways
- 😀 Domain models are visual representations of conceptual classes, distinct from software classes.
- 📚 The video introduces chapter nine focusing on domain models, starting with an example in Figure 9.1.
- 📊 Figure 9.2 illustrates a partial domain model using UML class diagram notation, highlighting attributes and associations.
- 🔗 Associations in domain models are represented by lines linking classes, indicating relationships between them.
- 🚫 Domain models exclude software artifacts to focus on real-world concepts, such as 'sales database' being a software artifact, not part of the domain model.
- 💡 Conceptual classes are ideas, things, or objects, and are the building blocks of a domain model, representing real-world entities.
- 🎯 The purpose of a domain model is to understand the vocabulary and key concepts of a system, facilitating better system comprehension.
- 🛠️ To create a domain model, one should identify conceptual classes from different categories and represent them with attributes and associations.
- 📝 An important guideline is to differentiate between attributes and classes to avoid common mistakes, ensuring clarity in the model.
- 🔍 The video provides examples and guidelines on how to correctly represent relationships and avoid misrepresenting real-world entities as software artifacts in domain models.
Q & A
What is the main topic of chapter nine in the video?
-The main topic of chapter nine in the video is 'Domain Models'.
What is the difference between a domain model and a class diagram?
-In a domain model, only attributes are shown, while a class diagram includes both attributes and operations or methods.
What are the lines and links between classes in a domain model called?
-The lines and links between classes in a domain model are called associations.
What is a domain model according to the video?
-A domain model is a visual representation of conceptual classes, also known as conceptual models.
Why are software artifacts not included in a domain model?
-Software artifacts are not included in a domain model because a domain model represents real-world concepts, not software classes or artifacts.
What is a conceptual class?
-A conceptual class is an idea, thing, or object that is abstract and not tied to software implementation.
What are the three key elements of a conceptual class mentioned in the video?
-The three key elements of a conceptual class are intension, extension, and identification.
Why do we create a domain model?
-We create a domain model to understand the vocabulary and key concepts of a system and to get a better understanding of the system.
How can conceptual classes be identified from different categories?
-Conceptual classes can be identified from different categories by looking at examples like sales, payments, reservations, and other real-world scenarios.
What is the guideline for creating a domain model?
-The guideline for creating a domain model involves identifying conceptual classes, giving them attributes, and creating associations between them using UML class diagram notation.
What is a common mistake when creating a domain model?
-A common mistake when creating a domain model is confusing attributes with classes, which should be clearly separated.
Outlines
📚 Introduction to Domain Models
The video begins with a warm welcome to the YouTube channel and introduces Chapter 9 on Domain Models. The speaker explains that domain models are visual representations of conceptual classes, which are distinct from software classes. An example of a partial domain model is given, depicted using UML class diagram notation. This notation includes attributes and operations or methods, but domain models focus solely on attributes and their associations. The speaker emphasizes that domain models are conceptual and do not include software artifacts, using 'sales database' as an example of something that would not be part of a domain model. The importance of understanding domain models for representing real-world situations is highlighted.
🌐 Understanding Conceptual Classes
Paragraph 2 delves into the concept of conceptual classes, which are ideas, things, or objects that form the basis of domain models. The speaker clarifies that domain models are graphical representations of real-world concepts and are not related to software artifacts. The paragraph distinguishes between conceptual classes and software classes, using 'gender' and 'age' as examples of attributes that can be part of a domain model. The speaker also discusses the intention behind conceptual classes, explaining that they are defined by their name, phone number, age, and address. The paragraph concludes with an emphasis on the importance of conceptual classes in creating a domain model for a better understanding of the system.
🛠 Creating a Domain Model
Paragraph 3 discusses the process of creating a domain model, starting with identifying conceptual class categories and their examples, such as 'sale', 'payment', and 'reservation'. The speaker explains that these conceptual classes can act as candidates for inclusion in a domain model. The paragraph also touches on the importance of understanding the vocabulary and key concepts of a domain model for system comprehension. The speaker provides a guideline on how to create a domain model, suggesting that one should start by identifying conceptual classes from different categories and then proceed to draw them using class diagram notation, focusing on attributes and associations.
🎯 Sketching Domain Models with UML
In Paragraph 4, the speaker demonstrates how to create a domain model using UML class diagram notation. The process involves identifying classes such as 'line item', 'item register', 'ledger', 'cashier', 'customer', 'store', 'product description', and 'product catalog'. The speaker corrects a mistake made in the initial sketch, emphasizing the importance of accurately representing relationships and attributes. The paragraph also discusses the common mistake of confusing attributes with classes, using 'airport' as an example to illustrate the correct approach. The speaker concludes by emphasizing the use of UML for sketching domain models in agile modeling.
🔍 Correcting Mistakes in Domain Model Attributes
Paragraph 5 addresses common mistakes in domain model creation, particularly the confusion between attributes and classes. The speaker uses the example of 'product description' and 'item' to illustrate how they should be correctly represented in a domain model with a one-to-many relationship. The paragraph also discusses how to improve the representation of a domain model, suggesting that a better approach is to clearly define the relationships and attributes. The speaker provides examples from figures 9.10 and beyond to show how descriptions and relationships should be correctly depicted in a domain model.
Mindmap
Keywords
💡Domain Model
💡UML Class Diagram
💡Conceptual Classes
💡Associations
💡Attributes
💡Software Artifacts
💡Conceptual Class
💡Multiplicity
💡Agile Modeling
💡Common Mistake: Attributes vs. Classes
Highlights
Introduction to chapter nine on domain models.
Definition and discussion of domain models as conceptual models.
Explanation of the difference between domain models and class diagrams, including the inclusion of operations in class diagrams.
Description of associations in domain models as connections between classes.
Emphasis on the importance of remembering that methods are not included in domain model classes.
Clarification that domain models represent real-world concepts, not software artifacts.
Discussion on the exclusion of software-related classes from domain models.
Definition of conceptual classes as ideas, things, or objects.
Explanation of the three aspects of conceptual classes: intension, extension, and conceptual symbols.
Purpose of creating domain models for understanding vocabulary and key concepts of a system.
Guidelines on how to create a domain model using UML class diagram notation.
Common mistake clarification between attributes and classes in domain models.
Example of correctly associating conceptual classes in a domain model.
Discussion on the importance of correctly identifying conceptual classes for domain modeling.
Agile modeling's use of UML diagramming notation for sketching domain models.
Final thoughts on the practical application of domain models in understanding system concepts.
Transcripts
assalamualaikum viewers welcome to our
youtube channel
today the chapter that we are going to
start is chapter number nine that is
domain models
so first we will discuss what is domain
models so let's first discus
example that is 9.1 we say that figure
9.2 shows a partial domain model drawn
with uml class diagram notation
diagram so
diagram you don't know
in domain model we have just attributes
but in class diagram we have attributes
along with operations or methods
fine so again
now you can see this figure figure 9.2
what is happening in this domain model
we are having some of the classes
and there is some association in between
them these
lines and links are actually called
associations
fine we can see these relationships
concepts
so these are the attributes here this
line is
actually called association it is also
told here fine
so these are the things to be noted and
remember that methods are not
included in these classes as these are
conceptual classes
and when we combine all the conceptual
classes we get a domain model
okay so what is a domain model a domain
model is a visual representation of
conceptual classes
or
can also be called conceptual models so
it means if somebody asks you
or if you come across a multiple choice
question like
top secret domain model conceptual model
domain object model yeah analysis object
model be here
okay so you can see figure 9.3 here a
domain model shows
real situation conceptual classes not
software classes
the real situation the conceptual
classes could represent software classes
could represent
[Music]
[Music]
say real world concepts are related some
guests are thinking a real world
situation
a real situation conceptual classes
representation
visualization a graphical representation
has so this is a domain model
next remember 9.4 a domain model does
not show software artifacts or classes
software's related to software artifacts
you can see this in this diagram like we
are going to avoid such
classes first one sales database
what does this mean yex software
artifact it is not a part of domain
model why
is sales database
[Music]
gender and age like that
so this can't be a part of a domain
model as it is a software artifact
next is
it is fine it is perfect but we are
talking about domain model
this is a software class we can't
include it in the domain
[Music]
this is a conceptual class okay okay so
next we are having is
definition what are conceptual classes
conceptual classes
basically conceptual class is an idea
thing or object
simply conceptual class
objective
[Music]
if we talk about intention we said that
it is the definition of conceptual class
a definition they are in the basic
definition
let's take another example
it has name phone number age and address
job attributes some include classmates
there has a concept intention or tia
pass what is the concepts
extension you could example something
like sale one sale to sell three sale
three things that we discussed regarding
conceptual classes concept
symbol intention and extension
making a general
so this is the reason of creating the
main model so that
we can get the understanding of
vocabulary key concepts
and also to get better understanding of
the system let's discuss
an important guideline that is how to
create a domain model
hum of domain model could create
questions
then we discussed why do we create a
domain model and now we are going to
discuss
here so you can see here that from these
conceptual class categories we are
getting some of the examples like
sale payment reservation yes sales line
similarly from other conceptual class
categories we are getting
different examples find
different classes like a place of
transaction your place of service so to
store
transactions at the airport plane see
these all can be our conceptual classes
from these type
[Music]
foreign
scenario here
as conceptual classes they can act as a
candidate
customer also appears check out also
goods services
cashier sale item identifier sale line
item item description price total taxes
payment accounting sales again
commissions inventory
and many more the case 7 i was received
so these all can be what these can be
our
conceptual classes candidate conceptual
classes like
these all can be our candidate
[Music]
sale line item or amount rendered
classes identification one two three
four five six
and all our next job is what
we have to draw conceptual
line item item register ledger cashier
customer store product description and
product catalog
correct list simply domain model created
simply
through class diagram notation okay so
like this you will complete all of the
classes
only attributes after giving
sorry let's correct it after giving
attributes here we are going to make
associations as well
attributes associations create
like this we can give a star here
that indicates multiplicity so this is
what
association is there
same is the case here for monopoly
domain same
value identification then you are going
to make classes
afterwards we can see these are six
classes here
i'm gonna identify here i'm gonna draw
here further we also
let's check them no it's enough you have
my personal six classes he identified
scenario like monopoly game player
piece board square and diet classes
giant modeling sketching a class diagram
we already
read that agile modeling uses uml
diagramming notation
so that is why we use uml class diagram
for sketching agile modeling
okay okay now let's discuss an important
topic that
is guideline a common mistake with
attributes versus classes
common mistake attributes or classes
let's see an example is here
that is discussed
separate
[Music]
then we will come to know about it okay
so airport is
another conceptual class that is having
some separate
attribute like name in the real world
destination airport is not considered a
real world
okay let's see these associations
that is not right this is worse we
should make something
else so this is a better one like a
product description
description and we are having
a conceptual class that whose name is
item
uh attribute has serial number now
they can have a one-to-many relationship
easily the egg product description
against
maximum any many items
so this is a better approach let's see
some particular figures
like figure 9.10 description about other
things
the other things
flight
this is worse but this is better how is
it better
let's see flight is being described
description
you
関連動画をさらに表示
Aggregates, Entities & Value Objects | Modeling Rules of Thumb + Modeling Steps
Domain Driven Design: What You Need To Know
Introduction to OOPs in Python | Python Tutorial - Day #56
Every Kind of Class in Kotlin
Software testing methodologies (STM) important questions| CSE 3-2 JNTUH R18
Belajar Membuat ERD (Entity Relationship Diagram) | Belajar UML & Perancangan Sistem
5.0 / 5 (0 votes)