Mathematica Student Edition
Mathematica Home Edition
Computable Document Format (CDF)
Aerospace Engineering & Defense
Biotechnology & Medicine
Finance, Statistics & Business Analysis
Financial Engineering & Mathematics
Financial Risk Management
Software Engineering & Content Delivery
Authoring & Publishing
Social & Behavioral Sciences
Design, Arts & Entertainment
Game Design, Special Effects & Generative Art
STEM Education Initiative
Community & Technical College Education
Primary & Secondary Education
Computable Document Format (CDF)
High-Performance & Parallel Computing (HPC)
See Also: Technology Guide
Other Ways to Buy
Volume & Site Licensing
Does My Site Have a License?
Wolfram User Portal
About Wolfram Research
Stephen Wolfram's Home Page
Wolfram Functions Site
More Info >>
Mark as an Answer
An equivalent of UML for Mathematica
(Please note I have an identical post on the Mathematica LinkedIn interest group)
There are times when I wish I could construct Mathematica applications in a graphical shorthand before I begin the code itself. I don't find that current software engineering notations fit all cases, especially the core functional programming constructs of Mathematica. Do any of you think it would be both useful and feasible to develop an equivalent of UML for Mathematica?
I think are a great many cases where it is much easier to express certain operations graphically, as opposed to in code or through a plain-text description. I think the recognition of this gap is one reason for the development of Wolfram SystemModeler (here's an article by Stephen Wolfram saying more
about the variety of interfaces and how they fit together
). The interesting thing about SystemModeler is how it exploits the similarity between the fixed topologies expressed by graphical diagrams and the fixed relations of equations in engineering components. What this says to me is that graphical interfaces might most readily be used to express invariant relations between mathematical structures, rather than more procedural processes, and that functions could take such diagrams of equations as inputs. In this way, I imagine the current interplay between SystemModeler and Mathematica might be the prototype of the inteplay between graphical and functional processing to come.
Just a start of what I am talking about...what about this?
I think it's charming from a visual perspective. I picture having a hard time doing all of the dragging-and-dropping necessary to graphically assemble a whole program, but that is probably informed by biases from the way I work currently. I could see generating one of these diagrams from existing code for documentation and presentations. I think one of the great powers of UML is its ability to abstract out structural and behavioral elements of the program. It might be worth thinking about the cases where a graphical notation, while being very informed by Mathematica, abstracts away somehow from direct structure of the code itself.
I like your thinking regarding a graphical shorthand, this and the existing code form would have its unique advantages . The ability to edit a fully native component diagram so that the textural code would automatically update and remain synchronized, and vice versa would be very useful .
In the cases where I need such a diagram, either because the complexity of the code warrants it and/or when I need to communicate the process flow to other non-programmers, I maintain a parallel diagram using Visio which can be clunky.
Have you seen “
What’s the analogue of UML in Mathematica land?
” at StackExchange?