¿Hay herramientas UML disponibles para Scala? El motivo de mi pregunta es que se trata de una combinación de conceptos funcionales y OO, por lo que me gustaría saber cómo estas herramientas denotan funciones en los diagramas UML.herramientas UML para Scala
Respuesta
Este thread resume los obstáculos enfrentados por cualquier herramienta UML queriendo representar clases Scala:
- no hay representación oficial de mixins en UML
- es difícil de representar:
- cierres
- miembros del tipo Scala
- límites de parámetros de constructor de clases (a.k.a. "plantilla tipo" límites/limitaciones)
- covariante y clase contravariant constructor de herencia
- la relación entre una clase o rasgo y el objeto compañero
Esta tesis ("Evaluierung des Einsatzes von Scala bei der Entwicklung für die Android-Plattform", pdf, alemán) agrega estereotipos para las mezclas de rasgos y otros elementos específicos de scala (pág. 146).
Lo que se añadió por Meiko Rachimow en 2009:
atributos, get y set
Para todos los atributos publicados existen captador implícita (
attribute1
yattribute2
), excepto la la visibilidad fue declarada comoprivate
(attribute3
). Si los atributos publicados se etiquetan con un estereotipoVar
, son variables, para las cuales existe un setter implícito (attribute2
). El estereotipolazy
marca las variables de instancia como flojas (attribute4
).
clases y genéricos
Al igual que en UML, clases genéricas están marcados con un tipo abstracto. Al usar la sintaxis del lenguaje Scala, se pueden declarar límites superiores e inferiores para este tipo (
EineKlasse
). Es posible usar tipos estructurados como límites, cuyos atributos y métodos se incluyen con llaves (EineKlasse2
). Los parámetros de tipo genérico de los métodos se incluyen entre corchetes (operation
).
rasgos
rasgos se muestran como las clases abstractas y etiquetados con el estereotipo
trait
. Los atributos y métodos abstractos se muestran en cursiva (attribute2
,operation2
). Para los atributos abstractos, la flecha de dependencia se puede etiquetar con el estereotiporequires
(Trait3
,attribute3
). Por otro lado, el estereotipoself
se utiliza para tipos de autorreferencia (Trait4
). Si un rasgo hereda otro rasgo, la herencia se muestra con una flecha de herencia (Trait2
). Este tipo de flecha se usa también, si una clase extiende un rasgo (Klasse
). Para enfatizar la "mezcla" de rasgos, la flecha de herencia se puede etiquetar con el estereotipomixin
(Klasse
).
Singleton objetos
objetos Singleton se muestran como las clases y etiquetados con el estereotipo
singleton
. Es posible que existan dos elementos de clase con el mismo nombre. De hecho, es un objeto singleton con la clase compañera de pertenencia. En este caso, la flecha de dependencia está etiquetada con el estereotipohasA
.
Acabo de probar el Green UML Eclipse plugin. Hace algunos meses no funcionó, pero con la versión nocturna Scala IDE, abril de 2012) puede obtener algún tipo de diagrama de clases. Parece prometedor.
Puede intentar (experimental) Dia2Scala herramienta. Notation utilizado por este generador de códigos se basa en una notación de la tesis de Meiko Rachimow (descrita en answer de VonC).
Parece prometedor. Pero, ¿puede generar un diagrama a partir del código? –
@ Wei-ChingLin No, es solo una herramienta de una sola manera: dia -> scala. Escribir un analizador de Scala podría ser bastante difícil, imagino. – monnef
- 1. inversa UML de herramientas de ingeniería para Eclipse o Maven
- 2. UML para Ruby
- 3. Herramientas de cobertura de código para Scala
- 4. Representación textual para diagramas de clase UML: DSL para UML
- 5. ¿Hay herramientas para la ofuscación de código para Scala?
- 6. UML para javascript?
- 7. ¿Cómo instalar el complemento UML para Eclipse?
- 8. Generación de diagrama UML a partir de las fuentes de Scala
- 9. Biblioteca para generar diagramas UML
- 10. Plugin UML para Netbeans 7.0?
- 11. UML visualización en tiempo
- 12. Formato de archivo UML estándar
- 13. ¿Puedo usar UML para modelar la navegación del sitio web
- 14. UML herramienta gratuita, ideal para .NET
- 15. Diagrama UML para llamadas a funciones
- 16. UML para el lenguaje de programación C
- 17. Los mejores complementos UML para Eclipse
- 18. ¿Existen herramientas que mantengan la sincronización de los modelos UML con el código?
- 19. Cómo dibujar diagramas UML usando Eclipse
- 20. ¿Hay alguna forma de escanear diagramas UML escritos a mano en una herramienta UML?
- 21. Diagrama de secuencia UML
- 22. Diagramas UML que en realidad son bonitos?
- 23. Intellij UML Diagrams
- 24. ¿Qué utilidad tiene UML?
- 25. UML asociación multiplicidad
- 26. Complementos NetBeans UML recomendados
- 27. TDD y UML juntos
- 28. Clases privadas y uml
- 29. Uso común de UML
- 30. UML class diagram enum
En realidad, el enlace a la tesis no funciona. –
@PeterSchmitz: he arreglado el enlace a ese archivo PDF. – VonC
@VonC Realmente me ayudaría (y podría haber otros) si puede agregar firmas de scala (o esqueletos) para el diagrama de clases de rasgos. (por ejemplo, 'trait Trait2 extends Trait', etc.) – dips