Friday, 22 June 2012

What is Domain in Domain Specific Language (DSL)

Various talks about Model Driven Software Development (MDSD)  and Domain Specific Languages (DSL) discuss the "Domain" witout elaborating their definition of domain. Domain is an overloaded terms that means different to different people. The following paragraph will try to elaborate this terms in the context of MDSD and DSL.


Horizontal domains are actually the solution space and the horizontal domains based efforts to raise the level of abstraction results in the horizontal abstractions. These abstractions do not deal with accidental complexity as they have nothing to do with the reusability of the conceptual structures. These abstractions ease the software development and make the expression of the design very much easy and deals only with accidental complexity. These technical abstractions can be well reused among the different technical domains. Their examples include (web applications, software architecture, deployment architecture, data persistency, concurrency, scalability and user interface).

Vertical domains are actually the problem space and the vertical domains based efforts to raise the level of abstraction results in the vertical abstractions. These abstractions deal with the essential complexity as they promote the reusability of the conceptual structures among the different software applications of that domain and also at the same time they make the expression of the design very much easy. But it is only the reusability of the conceptual structures that makes it relevant to deal with the essential complexity. Horizontal abstractions are prerequisite to the vertical abstractions and these vertical abstractions are built on the top of the horizontal abstractions. Therefore both kind of abstractions are important from the LOP perspective. 


No comments:

Post a Comment