I am studying Domain Modeling/UML Class diagrams and some of the words aren't being explained in a way I can understand.
I just found out through this wonderful website what "domain" means, is application domain just as simply explained?
I am studying Domain Modeling/UML Class diagrams and some of the words aren't being explained in a way I can understand.
I just found out through this wonderful website what "domain" means, is application domain just as simply explained?
There is typically a problem domain and a solution domain. The problem domain describes a situation that needs improvement. For example, it can describe the concepts and processes in a human resources department. The solution domain describe one of possibly many solutions to a problem. One solution might be a streamlined process, another might be an application that takes over parts of a process. An application domain would fall under the solution domain. It would be a description of an application that improves the state of the problem domain.
So, there are three main levels you should distinct:
Project - how you work is organized Product - the result of your work Domain : your work helps to some business. That business and its rules and flows is the Domain.
Project is above product, product is above domain.
Some may nit pick over a perception of subtle (or major) differences between the application and solution domain. For the most part and at least in all the software engineering text books I've read the terms are often used interchangeably and will differ in their precise meaning from author to author. This can cause confusion as I've seen application used in two conflicting contexts.
Problem/ Application Domain: The domain in which the software system will be expected to run and survive. As in this is the domain in which the software system will be applied to.
Application/Solution Domain: The software solution/application applied to the problem domain to meet a client's requirements
For these reasons, I dislike the phrase Application Domain because of its potential for ambiguity in how it may be interpreted. I prefer to say 'Problem Domain' (situation in which the software will be used) and 'Solution Domain' (the software and systems built to solve issues in the problem domain).