Raise your level of abstraction
A basic division of models can be determined by the objects of the models (i. e., what a model modeled). See the illustration (from my essay here). Under the subject of enterprise applications, there are two camps I called application system technical domain and applied domain (the domain the application system well be applied in) and the latter has two important states: AS IS and TO BE. Another idea is, to pick up the old concept black/white-box for a classification of models.
The entities, such as products and servers, work centers (a concept from ERP), organizations (corporations, organizational units and roles), business processes..., and the application system.
But I feel the expressions appear somewhat not very well or satisfied. On other hand, such the terms like domain, application domain, domain models are used for some specific meanings...
What you call "App System Technical Domain", I would call "Solution Domain". The solution domain is where we keep the concepts that are related with the implementation, like a database, a file, protocols (HTTP, SOAP, etc).
What you call "Applied Domain", I would call "Problem Domain". The problem domain is where we put the concepts related to the real-world problems we want to solve, like a customer, a bank account, etc.
In MDA terms, the solution domain is implemented in a PSM, Platform Specific Model. The problem domain is implemented in a PIM, Platform Independent Model. Then you need to implement model transformation, to translate a PIM into a PSM, that on its turn would generate the final working code.
In ABSE, both solution and problem domains are implemented in Atom Libraries. Model transformation is achieved by Atom inheritance and/or composition.
In my understanding, the terms solution domain and problem domain are separately belonged to (a part of) the app system technical domain and the applied domain, and I'm feeling that it's not suitable to be a background of my division of the models and the entities. Maybe the more suitable words for my thought should be 'field' instead of domain, simply say "technical field" and "business field"?
- App System Technical Domain
Personally, I call it mostly "(IT) System Domain", since there exist IT Systems.
- Applied Domain
I prefer "Business Domain" or simply "Domain" (like e.g. "Domain Model")
I don't like the prefix "Application/Apllied", since here always the "IT perspective" peeks out. Nobody who's not in IT would call his own domain "application domain", would he?
Same holds for PIM, it underlines platform independency, but obviously a platform and a dependency is in ones mind. Maybe a better expression would be PISM - platform independent system model.
So alltogether there's
- a (business) domain
- a model of that, a (Business) Domain Model (an ontological model)
- an (IT) system
- a model of that, an (IT) System Model
AS-IS & TO-BE are just different versions in a history to me, obviously one can become the other, and there may be many of them.
Thanks for your very apropos comment.
What I had in mind to using “applied domain”, is an attempt to avoid the problems of the “problem domain”, which are problem-centered and may have somewhat a tendency that leads to ignore the integrity and relevance of business. As stated on my blog (link):
“It may be reflected such a thinking: we don’t need to model the whole enterprise/business, but “unfortunately, there may be not a clear boundary, or exact criteria to demarcate it, because the requirements (problems) and the possible solutions are naturally various and changeable. Moreover, the system will only be existed in the TO BE domain which is in some imagination in developing time. In other words, an applied domain (or problem domain) may be hard to be demarcated around the application system it self, it may be had to be divided by the business. So, this is also one of the reasons, we had to grasp some approach to modeling the whole enterprise/business.”
However, as you said, it was still standing on a IT system developer's position, so may have no substantive difference. And the “application system technical domain” seems too clumsy. :-p
It seems a good expression that, using such the “business domain” and “IT domain” directly, in an appropriate context.
In much discussions about the subject, the AS IS and TO BE distinction was ignored, I want to highlight that, this is an significant understanding for some sort of applications, such as enterprise applications: an application is not mechanically inserted into the old business (AS IS) but will be an organic component of a new business (TO BE).
(from my blog)