Up Previous Next Title Page Contents

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’ modeling tool? While it would be possible to apply such ‘standard’ technology here, there is much more to be gained by using 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.

Up Previous Next Title Page Contents