Why Switch to DSM Now?
DSM is not a new thing. Companies and organizations such as Lucent, NASA, Honeywell, USAF and Nokia use DSM and have gained order of magnitude improvements in developer productivity and code quality. Why then is DSM only now getting all this attention? One part of the explanation surely has to do with the emergence of UML as a standardized modeling language, heavily promoted by the Object Management Group (OMG) as the modeling language for all applications. While the trend promoted by OMG was to go to a unified, standard approach to modeling, DSM went 180 degrees the other way. For a tool vendor it is of course easier to provide an environment that supports just one modeling approach, but the past 10 years of UML show that such models then remain as little more than documentation, and the possibilities for raising the level of abstraction and generating code are pretty limited. UML proponents have realized this and are advocating adding extensions to the UML to make it more customizable. These include stereotypes for labeling, profiles, object constraint language and action language. But what they seem to forget is that adding all this stuff to UML simply makes it even more complex for developers than it already is.
Another reason for the rising popularity of DSM is that in its early days we did not have tools to create domain-specific languages and support modeling with them in a cost effective manner. Those wishing to adopt DSM were left to develop their own tools from scratch based on generic graphics libraries. Considering that building a modeling tool is an effort that requires many man-years of development, DSM was left as an option only for large organizations that could commit to such an undertaking. Nowadays this situation has changed. A growing number of experts (and luckily this time also tool vendors) see DSM as a viable solution that offers developers better tools to deal with the growing complexity of the problem domains surrounding them. The vendors and experts have come together to establish an independent organization called the DSM Forum
to spread DSM knowledge and know-how.
DSM copies the principle that made the compiler so successfulraising the abstraction level by removing the need for developers to write Assembly, and letting them work in 3GLs and OOP languages instead. But to make it work for a given company, the principle needs to be applied to that particular setting, tailor-made for the company's own problem domain and code style. The most feasible way of doing this is to give companies full control over creating and maintaining their own domain-specific modeling languages and generators. Because that investment is made by only one or two expert developers at any one company, it pays off quickly as all the other developers can then model in the new language, and use the generators to create full code.