1.1 The Basic Idea of the Watch Example
Why develop a DSM environment for modeling watches instead of
adopting some pre-existing general-purpose modeling language and a
‘standard’ CASE tool? While it would be possible to apply such
‘standard’ technology here, there is much more to be gained by using
a DSM. Let us consider the following reported benefits of the use of DSM in
software development:
| 1) | Productivity
increases by as much as a factor of 10. Traditional software development
has required several error-prone mappings from one set of concepts to another.
First the domain concepts must be mapped to the design concepts and then further
mapped to the programming language concepts. This is equivalent to solving the
same problem over and over again. With DSM, the problem is solved only once on
the best possible level of abstraction by working with pure domain concepts.
After that, there is no need for mapping as the final products are automatically
generated from these models. Studies have shown that this kind of approach is
5-10 times faster than the usual current
practices. |
| 2) | Better
flexibility and response to change. Focusing on design rather than code
results in a faster response to requests for changes. It is easier to make the
changes at the domain concept level and then let the tool generate code for
multiple platforms and product variants from a single set of
models. |
| 3) | Domain
expertise shared with the whole development team. The usual problem within
development teams is the lack of domain knowledge among the developers. It takes
a long time for a new developer to learn enough to become productive. Even the
more advanced developers need to consult with domain experts frequently. In the
approach presented in this tutorial, the expert defines the domain concepts,
rules and mapping to code. Developers then make models with the concepts guided
by the rules, and code is automatically
generated. |
These are very important issues if
your development involves more than one of the following: domain-specific
knowledge, product families (variants of similar products), medium to large
development teams, critical time-to-market factors, and a strong need for
quality.
Thus the basic idea here is to show you, through the watch
example, how you too can reap these benefits by developing a DSM environment for
software development in your own domain. This is done in two stages. To begin
with we will explain how such an environment is developed in the first place.
Secondly we will show how it is used to develop applications for its specific
domain.