Hello!
I’m in a situation where I may need to develop some UML diagrams for a Scala program I’m working on. I’m not very knowledgeable about UML right now but my preliminary attempts to work with it have run into some problems. Am I correct in saying that UML is not expressive enough to really capture Scala design patterns? UML seems like a good match for Java’s expressive capabilities, but I get the feeling that it can’t keep up with Scala. Just as one small example, I’m not sure how to use UML to model things like abstract type members of traits.
So this leads to my next question… is there a modeling language that can cope with the richness of Scala? I did a little digging around and I found some posts on other forums pertaining to modeling functional languages. The people in those threads said things like, “use the type system,” or “use the language itself to model your programs.” I can appreciate those ideas. On the other hand it seems like Scala’s OO/functional hybrid nature makes the question a richer one. In Scala I can have stateful objects that interact in complicated ways. Yet I still find UML not up to the task of dealing with the richness of even just Scala’s object oriented features. Perhaps I just need to study more UML.
Peter
I’m in a situation where I may need to develop some UML diagrams for a Scala program I’m working on.
In my case, I think the reason is a combination of your second (communicate the design) and third (that’s what the guidelines say) points, with an emphasis on the third point. I’m not in love with UML. In fact, I don’t really know much about it and I don’t feel a burning need to learn it for its own sake. If I can convince others in my group that it’s not an appropriate way to go, particularly in a Scala context, I’d be happy with that.
On the other hand I can see the value in having an effective way of communicating the software’s design that’s less verbose than the source code itself… or long winded narrative text.
Peter
Hello!
I’m in a situation where I may need to develop some UML diagrams for a Scala program I’m working on. I’m not very knowledgeable about UML right now but my preliminary attempts to work with it have run into some problems. Am I correct in saying that UML is not expressive enough to really capture Scala design patterns? UML seems like a good match for Java’s expressive capabilities, but I get the feeling that it can’t keep up with Scala. Just as one small example, I’m not sure how to use UML to model things like abstract type members of traits.
In my case, I think the reason is a combination of your second (communicate the design) and third (that’s what the guidelines say) points, with an emphasis on the third point. I’m not in love with UML. In fact, I don’t really know much about it and I don’t feel a burning need to learn it for its own sake. If I can convince others in my group that it’s not an appropriate way to go, particularly in a Scala context, I’d be happy with that.
It’s there a graphical/geometrical design representation of functional programs/designs?
Is this an issue of graphical versus algebraic communication preferences?
We know UML hasn’t kept pace with innovation (well, Lisp has been around for decades so I don’t know if it’s innovation it hasn’t kept pace with or ‘mainstream’) the question is why?
UML is the medium of choice for many organizations, for instance in the telecom space (tmf.org) and there have been already some discussions about its limitations, but to no avail.
In any case, this discussion is probably limited to UML class diagrams – others like use case, deployment etc have no dependency or issues with scala…
Cheers,
Razie
From: scala...@googlegroups.com [mailto:scala...@googlegroups.com] On Behalf Of Geir Hedemark
Sent: April-02-12 6:56 AM
To: Chapin, Peter @ VTC
Cc: scala...@googlegroups.com
Subject: Re: [scala-user] Scala and UML
On 2012, Apr 2, at 12:46 PM, Chapin, Peter @ VTC wrote: