In his blog "ISerializable", Roy Osherove talks about modeling with domain-specific languages and the ongoing "Software Factories" project in the healthcare sector. Besides the debate on whether the project is a failure or not - (Could it be the type of area Microsoft picked out? My thoughts earlier were that it seems that team Redmond is going far too generic with their Factories) - Roy wonders about "What scale is worth the effort?"
I believe it depends on many factors, such as complexity of the software you are creating, functionality, number and skill of the developers you have, number of possible variants or the amount of reuse of components and libraries you are planning (i.e. in product-platform-based approaches), and therefore it is difficult to answer.
Maybe we should look at the problem of "when does it make sense to apply domain-specific modeling" in the same way as "when does it make sense to apply modeling techniques?".
Currently many developers like it better to write code whenever they can do so, since it is faster than first modeling and then writing code. Complexity of the software forces you to make a model of it prior to coding but in itself thus forces you to solve the same problem on three levels: First in the problem domain, then in the domain of the modeling language and finally in the domain of the programming language. DSM attempts to bring the first two as close together as possible and automate the third step with generators. That way, they have to solve the problem only once. Much faster than writing it in code.
The other reason for modeling may be merely for documentation reasons where, as Roy mentions in his earlier post, models are usually out of date. If models however form the main artefacts of your development effort then both code and documentation will always be up to date as both are generated from the models.
I believe it depends on many factors, such as complexity of the software you are creating, functionality, number and skill of the developers you have, number of possible variants or the amount of reuse of components and libraries you are planning (i.e. in product-platform-based approaches), and therefore it is difficult to answer.
Maybe we should look at the problem of "when does it make sense to apply domain-specific modeling" in the same way as "when does it make sense to apply modeling techniques?".
Currently many developers like it better to write code whenever they can do so, since it is faster than first modeling and then writing code. Complexity of the software forces you to make a model of it prior to coding but in itself thus forces you to solve the same problem on three levels: First in the problem domain, then in the domain of the modeling language and finally in the domain of the programming language. DSM attempts to bring the first two as close together as possible and automate the third step with generators. That way, they have to solve the problem only once. Much faster than writing it in code.
The other reason for modeling may be merely for documentation reasons where, as Roy mentions in his earlier post, models are usually out of date. If models however form the main artefacts of your development effort then both code and documentation will always be up to date as both are generated from the models.
No comments:
Post a Comment