Hi again! I forgot to ask something. You say that DDD is "a way of thinking on how to develop within the business logic layer" You add that, "Such way of thinking consists in the following: * Finding a model for your problem; * Creating objects and their relations according to the problem (this is what we call the domain model); (...)" The question is: what do you mean by finding a model for your problem? As you already know (and who doesn't know can read in my blog -- http://www.joaoferreira.org ), I follow a mathematical approach when modeling problems. Mathematical models are nice, because you can manipulate the model and derive new/desired/interesting properties. So, my interest is in knowing how do you represent your problem.