Tuesday, April 29, 2008

Domain Modelling

Domain modelling is a technique commonly leveraged by solution architects in order to build a conceptual model which describes the problem domain to be solved. A domain model is a static view of the problem domain, which describes the various relevant entities (such as customer, order, etc), their relationships, their major attributes and any relevant actions they perform in the context of the problem domain.

As such, a domain model is a visual representation of the vocabulary of a problem domain. A domain model does not assume that software is to be used as part of the solution. An example domain model is shown below.


The domain to be modelled is not restricted to a specific business problem to be solved. It may in fact simply be an area of the business (such as marketing or sales) we wish to model. In this context, the domain model is a single static viewpoint of an enterprise which visually describes the language used to describe the business from that perspective.

It is interesting to note the significance of perspective in domain modelling. One might think that in the real world a customer is a physical entity with a fixed set of attributes and actions he or she can perform, not open to interpretation. However we need to consider that a customer of one organisation is an employee of another.

As such, the same physical entity may have vastly different representations in different domain models. Perspective is everything, and we need to ensure that the perspective of a given domain model is sufficiently specific so that it does not become confused and overly complex.

In the context of SOA, each service will have its own domain model. We strive for high cohesion within a service domain model by ensuring that the described business area is highly specific, but loosely coupled with business areas supported by other services.

Eric Evans in his classic book Domain Driven Design provides considerable guidance on domain modelling and outlines many of the design patterns we may leverage in designing software systems centred around domain models. It is essential reading for those looking to design and develop custom built services.

It must be noted however that despite its many uses, domain modelling gives us only a static view of the business. We look to process mapping to provide a dynamic view that describes how entities interact over time. But more on that in my next post, so stay tuned!

4 comments:

Seo Service Company said...

SWTGROUPINDIA.IN is a professional static Website improvement business enterprise that provides Website improvement offerings to its clients at inexpensive costs. Our expert builders have surpassed the expectations of our clients within confined time. We have got the famous call for our vibrant website improvement services. When it comes to net website online designing, humans now do no longer hold some static websites together to maintain content material. Nowadays people are so clever that they lose interest with content except the content is fully updated at the Website and customers go to the web all the time. Unluckily, many static web site design corporations can not crawl it earlier than they believe it. Static websites include pages which can be updated in step with the user's desires, which each time a consumer visits a web page, it provides clean statistics. Those kinds of websites vary in step with user, vicinity, time and extra. With a purpose to apprehend the layout of static website, we must start viewing the distinction among dynamic and static Website pages. Though the distinction is clear, younger developers have in no way had the opportunity to learn the distinction, it goes here.
http://www.swtgroupindia.in/static-website-designing.html

Anonymous said...

try this web-site Dolabuy Goyard anchor go to this site go Extra resources

tareares said...

essayez ici https://www.dolabuy.su trouver plus d'informations Dolabuy Celine imp source sacs à dos de créateurs de répliques

Anonymous said...

l1r28t7w59 t6n31r7r12 g5j74d7g78 s7n24e6q85 t7n60a4k80 g2g97j3s03