I have a question about some terminology that's been confusing me for ages and I just can't seem to figure it out. Wikipedia tends to explain these things very formally which is very hard for me to understand...
The terms I've been struggling to understand are: problem domain, conceptual model, domain model, business model, business domain, business logic, domain logic etc. Some of them mean the same thing, some of them are used interchangeably, some of them mean different things in different contexts. What I'm asking for is a high level overview so I don't get confused about these terms...
Are these terms all part of domain driven design? Is it OO speak? In what context should I place them?
This is what I understand so far:
- A domain is the subject matter (i.e. the world that you're modelling), and a model tries to explain a concept/subject concisely.
- Thus a domain model (=conceptual model) tries to explain the domain concisely.
- Thus a business model would explain what a business does, and therefore a business would be the same as a domain, except that a domain is broader, it's not just limited to a business.
I have some experience in ER modelling, and I understand from wikipedia that an ER model is one of many techniques that is used to represent the conceptual model (domain model).
I might be totally wrong, but it should show you where my confusion is...