Creating MDELite Tools Using Bash Scripts

Find a partner and form a group of two (if you can).  As a group you will make one submission.  Download a fresh version of MDELite8 (as I had to modify it for this assignment), unzip it and follow the installation instructions.


The V2YTool

In this assignment, you will write a bash script to create an MDETool that translates a Violet class diagram into a beautiful Yuml class diagram.  The bash script that you will write is this (or something very similar):
               # takes a single argument (lead name of a violet class file "X" for "X.class.violet"
cp $1.class.violet $1.klass.violet
java Violett.KlassParser $1.klass.violet
# if all goes well, database file $1.vpl.pl is produced
java yourProject2ConformanceProgram $1.vpl.pl
# if all goes well, there are no runtime exceptions that halts this script
java Y2YTool $1.vpl.pl
# if all goes well, you will have produced a $1.ypl.pl file
java Yuml.Conform $1.ypl.pl
# if all goes well, there are no runtime exceptions that halts this script
java Yuml.UnParser $1.ypl.pl
# if all goes well, you have produced $1.yuml.yuml file
# copy the contents of this file and paste it into https://yuml.me/diagram/scruffy/class/draw
# to produce a beautiful Yuml class diagram
echo "translation finished $1.yuml.yuml produced!"

Ultimately, you will be able to draw a class diagram in Violet (like the on in the left diagram below) and produce the gorgeous Yuml diagram on the right.  Click on the left figure to see what Violet produces and click on the right figure to see its corresponding Yuml spec.

violet class diagram
yuml class diagram



What is missing is the M2M translation of a Violet database that encodes a class diagram to a Yuml database that encodes that diagram.  You are to write this tool.  I have created a NetBeans project shell to get you started.  Here is the shell.  You complete the M2M.v2y program contained within it.  Add your own test programs.

What to Submit

  1. a single zip file that unzips into <yourName>/<yourFilesAndDirectories> (I will return submissions that do not satisfy this constraint)
  2. a PDF file that convinces the TA that your program works, works on violet class diagrams that you yourself have created.
  3. a bash script that executes your tool and an explanation of how to run it.
  4. A bash-script called run.script that will run your examples (so that it is easy for me to see what you have done).

A critical part of any design is clarity and understandability.   Hence, you will be graded on the clarity of your project and its ability to work correctly.  Sloppy code, documentation, or anything that makes grading or understanding your program difficult will cost you points.  Beware, some of these "beauty" points are subjective. 


Remember: No late assignments/submissions will be accepted.