UML Tool for Moose Perl -


im starting working moose/perl , im searching uml tool create diagrams , representing moose oo system. worked astah (former jude) designed java oo system. can give recomend other uml tool work moose/perl?

my 2 cents:

i have written extension (a .xom file) sybase powerdesigner. tool has powerful metaclass editor can script vbscript , proprietary language, gtl. has large collections of customizable metaclasses , templates.

my powerdesigner extension quite hacky , contains stale code didnt clean up. therefore haven't published anything. works me, , me. lessons learned, top of head:

  • i wanted uml modeling , code-generation, want that, too?

  • moose quite attribute-heavy uml approach worth doing in respect.

  • didn't use roles much, tried map them interfaces anyway.

  • i not satisfied how model relationships. lots of edge-cases , "impedance mismatches" of uml concepts , moose/perl concepts. (btw, whats moose equivalent of "association class"? )

  • native traits nice feature in moose haven't succeeded in creating gui editing them

  • i hurt brain designing comprehensible gui type coercions (i need check + coerce date values)

  • static attributes important feature in uml less important in moose. problem there no "static" keyword in perl/moose, have declare "use moosex::classattribute" or whatever called, , once per class, in right place (order matters)

  • the code generated impossible pretty-print, send through perltidy right away, bring "canonical" form, making diffing , versioning / committing svn easier.

  • when class generated , compactness of moose class gone, you'll have svn properties, header comments, lots of "use" + "use lib" statements, lots of pod, comment lines after each sub declaration parameter-passing doc, the obligatory footer ("no moose ....")-

  • unfortunately, reverse engineering perl code (to update uml model code) impossible. thus, @ point must stop working in uml tool, , start edit perl code directly, abandonig model. checking in these changes must done manually @ later time, time consuming , requires care.

advantages:

  • generating pod-documented code main productivity gain you'd doing uml modeling, imho. "enterprisey" programming environments.

  • you can autogenerate *.t files testcases (or stubs of testcases). requires thinking design smart tests, , avoid problems dave rolsky has written in blog post: "add(ing) absolutely nothing isn't tested moose itself"

  • you can define custom checks in model such "check if builder methods declared attributes exist, , if don't exist, create stub, or (ask me do)"

  • easy mapping of nightmarish database tables moose classes. (i have work lots of multi-column tables cannot touched). build own graphical orm-mapper!

  • there might more advantages


Comments

Popular posts from this blog

python - Scipy curvefit RuntimeError:Optimal parameters not found: Number of calls to function has reached maxfev = 1000 -

c# - How to add a new treeview at the selected node? -

java - netbeans "Please wait - classpath scanning in progress..." -