领域特定语言建模与MDA的经验总结
1. 领域特定语言建模的挑战与经验
在领域特定语言(DSL)建模过程中,我们遇到了诸多挑战,也积累了不少宝贵经验。
1.1 UML与业务框架DSL映射的问题
我们的目标是让建模语言符合熟悉UML的用户的期望,并且成功地使有一定经验的UML用户熟悉了相关约定。然而,令人惊讶的是,即使是经验丰富的UML用户,对UML语言的了解也并不全面。例如,“ ”的多重性究竟与“1.. ”还是“0..*”同义,很多人并不清楚。
将UML映射到业务框架DSL和CLR时,发现了大量的歧义。这并不奇怪,因为UML是通用目的语言。设计这种映射是一项耗时的工作,需要团队中一些资深人员参与。
我们仅为静态结构图构建了工具和约定,这可能是UML语言中最广为人知和使用最多的部分。但我们没有描述UML中哪些部分对业务框架没有意义,这导致了后续的一些问题。
1.2 畸形模型的问题与解决
开发人员经常会创建出有错误的模型,这会在生成代码、映射实体或在运行时使用畸形实体时导致错误。为了解决这个问题,我们创建了一个模型验证器,以确保在使用其他工具之前模型是正确的。模型验证器将错误发现提前到了流程中,提高了生产力,减少了开发人员的挫败感。
然而,模型验证器是一种被动的解决方案。如果我们能对Rational XDE设计界面有更多的控制,很多问题可以通过禁止某些类型的模型来避免。开发人员常犯的错误包括:
- 忘记对实体和其他模型元素进行构造型标注。
- 没有将任何实体属性标记为其标识符。
- 创建与子实体的关联(如上述图中的OrderL
超级会员免费看
订阅专栏 解锁全文

9

被折叠的 条评论
为什么被折叠?



