Misplaced Pages

Domain-specific modeling

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

This is an old revision of this page, as edited by 212.149.217.232 (talk) at 12:56, 30 June 2005 (minor fixes, added some internal links). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Revision as of 12:56, 30 June 2005 by 212.149.217.232 (talk) (minor fixes, added some internal links)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Introduction

Domain-specific modelling (DSM) is, beyond traditional CASE, a way to model data structures and logic in "domain concepts" independent from programming languages and thus also syntax details. The final compilable source code in a desired programming language is derived automatically from theese high abstraction models by using specific language generators. This is possible, because both the modelling concepts and language generators are defined by users of DSM software.

Differences between traditional CASE and DSM

Think of a DSM system as an "application to make a CASE tool (framework)" or an "application for making aplications to make applications". So there is an extra layer of abstraction when compared to traditional CASE tool, which would be just an "application to make applications". Traditional CASE tools are just fine IF AND ONLY IF they happen to fit nicely to your specific domain, let it be a mobile phone, for example. Usually this does not happen accurately enough, though. Building your own domain specific CASE tool from scratch with a programming language and without a DSM system is VERY expensive and thus the advantage of having a own domain specific CASE tool is often considered not worth the effort of creating one. DSM changes all of this. It's specifically designed for the task and does it's job brilliantly.

DSM example with two abstraction levels of DSM models - a digital clock

DSM domains can be of any abstraction level. Usually higher abstraction DSM domain concepts are modelled with lower abstraction DSM domain concepts. For example, a set of lower abstraction DSM domain concepts could be the internal functioning (logic gate implementation) of 7400 series of basic ICs. The resulting set of higher abstraction DSM domain concepts would be the DSM model of the 7400 series of ICs. A functioning highest level DSM implementation (using the 7400 series IC components as DSM domain concepts..) could be a digital clock circuit, compiled from the 7400 series DSM domain concepts.

In brief: digital clocks can be made of integrated circuits that can be made of logic gates. Thus we build IC:s out of logic gates and the clock out of IC:s. So we have total three levels of abstraction in our software simulation model of a digital clock: 1) logic gates, 2) integrated circuits 3) the digital clock circuit.

Many uses

Basically, you can do anything with a DSM system that you can do with a C compiler. The implementations of highest abstraction domains can be anything from enterprise systems, trough mobile phone software to electronic circuit simulation to computer games.

DSM brings 500% to 1000% increase in productivity over Java/c++/BASIC

DSM has been shown to increase productivity by 500% to 1000% when compared to plain java/c++/BASIC. In comparison the shift from assembler to BASIC showed an increase of 400% in productivity.

Focus on detail vs. focus on functionality

DSM still requires talented experts to do the language generators and the domain model, but the developers using the predefined DSM model need not to know about implementation details nor the target programming language syntax details. This enables the developers using a DSM model to think and develop in concepts (menu items, button clicks, for example). So in brief: detail minded domain specific experts specify the DSM model (framework) and the more-practically-minded developers use the high-level framework to do a nice application by concentrating on functionality. An example of highest abstraction level DSM model For example a mobile phone user interface.

Differences between UML and DSM

UML is, in a way, just a set of pre-defined "domain specific models". Theese "models" include Use Case Diagrams, Class Diagrams and Sequence diagrams amongst others. Some of theese diagrams have functionality ("logic") or certain places where certain types of data is stored in (a model / data structure, loosely speaking). UML is mainly intended for modelling business processes, organizational structure or object oriented software architectures. As such, UML can be easily modelled with DSM software, altough the UML "DMS models" itself are somewhat abstract and therefore do not allow generation of complete working application solely from them. Alltough UML models could succesfully be included amongst other DSM models to define the logic & functionality of a full application.

It works. Nokia does DSM

As of 2005, DSM is a hot topic of discussion amongst software professionals. Nokia has been succesfully using DSM.

See also


External links

Categories: