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