Hi Tom,
Thanks for the tips.  I haven't used ArgoEclipse before, but in truth, I
would be hard-pressed to put more crap into my IDE.  I'm using STS, eGit,
and a few other plugins and I don't want it running any slower than it
already is.


> They do in my version (0.34).  What version are you using?
>
>
I'm running 0.32.2 on my Mac, and whatever the last release was on my
Winblows box at work.


> > That goes for any other shortcuts. It would be nice to have shortcuts
> for creating
> > classes, interfaces, attributes and operations.  Ctrl-Shift C might
> create a
> > class, Ctrl-Shift A an attribute in the selected class, Ctrl-Shift D the
> > documentation, etc.
>
> You know about Edit->Settings->Configure Shortcuts, right?  It should
> be that big a deal for you to add new commands, although honestly, I
> wonder how much time they're going to save you when you have to use
> the mouse to select the object that you're adding to anyway.  There's
> a fair amount of overhead in switching back and forth from keyboard to
> mouse.
>

I'll take a look at adding those shortcuts and see what happens.

The overhead of switching back and forth between the diagram and typing was
what I was getting at.  My typical class diagramming workflow goes
something like this:

   1. Create the interfaces.
      1. Create the interface box and add a name and interface-level
      documentation (typing)
      2. Create the methods, and method attributes in the one line method
      box in the diagram. (more typing)
   2. Create a new class diagram
      1. Add the interfaces from the previous step.
      2. Drag the realization arrows out from the interfaces to create
      concrete implementations.
      3. Document the implementations where necessary. (more typing)
   3. Create packaging using the tree. (discussed this on a previous
   thread)  Would also be nice if CG created package-info.java files for me.
   4. Generate the design review presentation and put it on a shared
   location and get feedback.  It would be nice to be able to use critics for
   this, but it's not that mature yet.
   5. Make any recommended changes.
   6. Create the API project in maven and generate the code from the
   interface diagram created in Step 1.  At some point it would be nice to be
   able to do this from a deployment diagram.
   7. Create the implementation project in maven and generate the code from
   the class diagram created in Step 2.
   8. Open the POMs and add any dependencies (another nice feature I'd like
   to be able to do from the deployment diagram).
   9. Open the projects in Eclipse, fix all of the CG weirdness
   (search/replace Vector -> List, remove extraneous @'s in the comments) and
   get it to compile and check it in.

At this point things begin to change as we realize that parts of the design
don't really fit with the way in which we'll be using the code.  We make
modifications to the code, and the code and models begin to diverge almost
immediately.  When we're diligent about it, we RE another model after
making code changes, and do another design iteration.  But this often
results in extra work because the RE'd model often contains some weirdness
that propagates back to code, and we'll spend extra time merging and
re-fixing the new CG'd code with the existing codebase created in iteration
1.  This is where using Argouml's Maven module might come in handy to keep
the model in sync with the code but the CG and RE code would need to be
cleaned up in any case.  Not sure if the Maven module still works.

Months later when we revisit things with the new guy that we brought on
board, the code doesn't even vaguely resemble the model and we spend a few
hours whiteboarding and hand waving and consulting the code to make sure
that we're telling the guy the truth about the software.  We could probably
resync the design with the code as part of the code review work, but that
would extend our code reviews.

Does the process above roughly fit the way everyone else is using ArgoUML
at work?  Has anyone had any problems getting other people to use ArgoUML
at work?  If so, what get's in the way?  How do people use ArgoUML in
teams?  Do you do design reviews, if so, how do you use ArgoUML to make
that happen?  Do you generate code from ArgoUML models?  If not, why not?


Mark

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2943016

To unsubscribe from this discussion, e-mail: 
[[email protected]].
To be allowed to post to the list contact the mailing list moderator, email: 
[[email protected]]

Reply via email to