我试图弄清楚为什么我们首先解决设计问题并决定使用可视化方法 (UML),而不是从碰巧也可以执行的正式规范(RAD 原型设计)开始,我们从可以'的图表开始'不容易证明有效。所以当需要证明模型的属性时,我们发现我们需要在设计中定义约束,因此我们设计了一种形式语法(OCL)来定义模型上的约束。我很难理解这种回到我们开始的地方的飞跃。我发现 OCL 阻碍的 UML 设计(甚至是小册子中显示的示例)不可读,甚至比无数 UML 符号和约定更难以理解。所以我想知道的是:OCL 在当今工作软件开发世界中使用的关键领域是什么,它对谁有意义或值得学习?你的工作角色是什么样的?从不编写代码的架构师会使用 UML 和 OCL,还是与实现它的团队一起设计和架构系统的程序员也使用它?
[更新:其次,在我看来,敏捷开发似乎有点反对“重量级”程序,并且像 OCL 这样的设计图约束的领域特定语言似乎不是很敏捷。UML+OCL 是否在任何“敏捷”商店中使用,还是被 Scrummers 普遍回避?]