Menu

Blog

Domain Inconsistencies and Concepts

March 2, 2018

Something that we have to remind ourselves when we do Domain Engineering is that we are working with people. Be individuals or groups, people have different perspectives of the domain and different goals they want to accomplish with said domain. This will probably bring out some inconsistencies.

Inconsistencies come out of different domain description units that contradict each other. For example, you might have the following description unit: "Every day, concessionaires open from 7:00am to 7:00pm" and another which states: "Every Saturday and Sunday, concessionaires open from 7:00am to 10:00pm". This is inconsistant because the first unit applies for Saturday and Sunday but, the next one contradicts it by being until 10:00pm. This inconsistancies can be resolved by speaking with the stakeholders that provided you the information or looking into the sources that you utilized to obtain the information.

If everything goes well, then you will have the domain description units sorted out and you will eliminate the incorrect one; but, what happens when you can't solve it by verifying the information. What if, you are spoke to one of the corresponding stakeholders and they say that their version of the domain description is the correct one but when you ask the other stakeholder that is involved and they say the same thing; what do you do in that case? You can first start by classifying it as a Domain Conflict, a Domain Inconsistency which cannot be resolved because the involved stakeholders cannot decide on a description unit that solves the inconsistency. These conflicts are problems you can't resolve. Your job is to point them out and let the stakeholders resolve this situation

Now, let's say you've resolved all of your inconsistencies. What now?

You indexed all of your information and you still might find that there is a lot of information. Is there a way to make this information more usable? Yes, actually. You can create what the book calls, Domain Concepts. With Domain Concepts, we can take domain descriptions that contain information that can be abstracted and grouped into a term. For example, utilizing the airport domain, we can generalize all the places that customers utilizes money as a Point Of Purchase.