是否有任何可用于Scala的UML工具.我的问题的原因是它混合了功能和OO概念,因此我想知道这些工具如何表示UML图中的功能.
Von*_*onC 23
该主题总结了任何想要表示Scala类的UML工具所面临的障碍:
- 在UML中没有mixins的官方表示
- 很难代表:
- 关闭
- Scala类型的成员
- 类构造函数参数bounds(又名"模板类型"边界/约束)
- 协变和逆变类构造函数继承
- 类或特征与伴随对象之间的关系
这篇论文(" PDF文件","德国文学 ",pdf,德语)确实为特质混合和其他scala特定元素添加了刻板印象(第146页).
2009年由Meiko Rachimow添加的内容:

对于所有已发布的属性,存在隐式getter(
attribute1和attribute2),但可见性被声明为private(attribute3).如果已发布的属性使用构造型标记Var,则它们是变量,其中存在隐式setter(attribute2).构造型将lazy实例变量标记为lazy(attribute4).

与UML一样,泛型类使用抽象类型标记.通过使用Scala语言语法,可以为此类型(
EineKlasse)声明上限和下限.可以使用结构化类型作为边界,花括号(EineKlasse2)包含哪些属性和方法.方括号(operation)包含方法的通用类型参数.

特征显示为抽象类,并用构造型标记
trait.抽象属性和方法以斜体显示(attribute2,operation2).对于抽象属性,可以使用构造型requires(Trait3,attribute3)标记依赖项箭头.另一方面,构造型self用于自引用类型(Trait4).如果特征继承了另一个特征,则继承显示为继承箭头(Trait2).如果类扩展了trait(Klasse),也会使用此箭头类型.为了强调特征的"混合",可以使用构造型mixin(Klasse)标记继承箭头.

单例对象显示为类,并使用构造型标记
singleton.有可能存在两个具有相同名称的类元素.实际上它是属于伴侣类的单例对象.在这种情况下,依赖关系箭头标记为构造型hasA.
| 归档时间: |
|
| 查看次数: |
4439 次 |
| 最近记录: |