любые инструменты UML для Scala - PullRequest
17 голосов
/ 19 октября 2011

Есть ли какие-либо инструменты UML для Scala.причина моего вопроса в том, что это сочетание функциональных и ОО-концепций, поэтому я хотел бы знать, как такие инструменты обозначают функции в диаграммах UML.

Ответы [ 4 ]

23 голосов
/ 19 октября 2011

Этот поток суммирует препятствия, с которыми сталкивается любой инструмент UML, желающий представлять классы Scala:

  • Официальное представление миксинов в UML
  • замыкания
  • члены типа Scala
  • границы параметров конструктора класса (также известные как "тип шаблона" границы / ограничения)
  • ковариантное и контравариантное наследование конструктора класса
  • связь между классом или признаком и сопутствующим объектом

Этот тезис (" Evaluierung des Einsatzes von Scala bei der Entwicklung für die Android-Plattform", pdf, German) действительно добавляет стереотипы для характерных миксинов и других специфических для scala элементов (стр. 146).

Что добавлено Meiko Rachimow в 2009 году:

атрибуты, геттер и сеттер

Scala attributes

Для всех опубликованных атрибутов существуют неявные геттеры (attribute1 и attribute2), не болееpt видимость была объявлена ​​как private (attribute3).Если опубликованные атрибуты помечены стереотипом Var, они являются переменными, для которых существует неявный установщик (attribute2).Стереотип lazy помечает переменные экземпляра как ленивые (attribute4).

классы и обобщения

Scala class and genericity

Как в UML,универсальные классы помечены абстрактным типом.Используя синтаксис языка Scala, для этого типа могут быть объявлены верхняя и нижняя границы (EineKlasse).В качестве границ можно использовать структурированные типы, атрибуты и методы которых заключены в фигурные скобки (EineKlasse2).Параметры общего типа методов заключаются в квадратные скобки (operation).

черты

Scala traits in UML

Черты отображаются в виде абстрактных классови помечены стереотипом trait.Абстрактные атрибуты и методы отображаются курсивом (attribute2, operation2).Для абстрактных атрибутов стрелка зависимости может быть помечена стереотипом requires (Trait3, attribute3).С другой стороны, стереотип self используется для самоссылающихся типов (Trait4).Если признак наследует другой признак, наследование отображается со стрелкой наследования (Trait2).Этот тип стрелки также используется, если класс расширяет черту (Klasse).Чтобы подчеркнуть «сочетание» признаков, стрелка наследования может быть помечена стереотипом mixin (Klasse).

одноэлементных объектов

Scala singleton in UML

Объекты-одиночки отображаются как классы и помечаются стереотипом singleton.Возможно, что существуют два элемента класса с одинаковыми именами.Фактически это одноэлементный объект с принадлежащим классом-компаньоном.В этом случае стрелка зависимости помечается стереотипом hasA.

2 голосов
/ 27 января 2015

Вы можете попробовать (экспериментально) Dia2Scala инструмент. Обозначение , используемое этим генератором кода, основано на примечании из тезиса Мейко Рахимова (описано в ответ от VonC).

1 голос
/ 22 апреля 2012

Только что протестировал плагин Green UML Eclipse .Несколько месяцев назад это не сработало, но в ночной версии Scala IDE (апрель 2012 г.) вы можете получить некую диаграмму классов.Выглядит многообещающе.

0 голосов
/ 04 июля 2019

Инструмент, который я использую, такой же для Java, UML-диаграмма (классы или зависимости) в Intellij, однако она доступна только для пользователей "Ultimate"

https://www.jetbrains.com/help/idea/class-diagram.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...