Hi Thomas,
Thanks for the feedback.  It's always interesting to see how people are
using ArgoUML.  My personal feeling is that ArgoUML's value goes up in
proportion to the number of artifacts that it can generate, and the number
of software development processes it supports.  So it's always good to see
how people use it to support design reviews, and implementation.

I also believe that taking the time to do a decent design usually results
in better code -- if nothing else, it gets everyone on the same page.  The
one thing I have noticed is that even if everyone agrees on the design, as
soon as people start writing code, the design begins to change.  Either
reality sets in, or people change the way they think the new code should
work with the old... (insert list of excuses here).

Most software development lifecycles have check points in them to insure
that these divergences are accounted for (primarily design reviews and code
reviews).  But if the time between these check points is too long, then the
divergences tend to be very wide, and things begin to fall down.

Your approach of starting with the code, doing RE on it, and going through
a couple of cycles like that is interesting.

And like you, I've also run into cases where I've suggested using ArgoUML,
only to have people run into problems (like the CG weirdness) and put the
tool aside.  Highly regulated environments, seem to make better use of
ArgoUML.

The other thing I've noticed is that it's often easier to go from a use
case, to a series of mockups, to a data or domain model, than it is to go
from a use case directly to a class diagram.  And the push back I tend to
get seems to confirm that the areas of resistance occur either because
people don't know how UML can support their process; or in fact, it doesn't
support their process as it is, and any changes would require a learning
curve.

As I've indicated before, if we can address the problems with CG, and
support design reviews, it will be easier for people to see how the tool
can support their processes beyond simply creating pictures.

Mark


On Mon, Apr 2, 2012 at 2:52 AM, Thomas Neustupny <[email protected]> wrote:

> Hi Mark,
>
> interesting conversation you've started, especially on the UML based Java
> development process. Here's another experience review on that topic (mine).
>
> First some feedback on your process: as you design the implementing code
> using UML you run, at some point, into a phase where you have some initial
> transition from UML to code. From that phase on the problems with keeping
> code and (implementation) model in sync begin. Because of ArgoUMLs CG
> shortcomings (or the shortcomings of the CG modules), this can be
> hard/impossible. Do you think that the benefit from starting with UML leads
> to better designed code?
>
> I'm asking because I have a different approach. IDEs are capable of
> managing a good structure, so I start my implementation work in the IDE,
> not with UML (which doesn't mean that I overall start with code, more about
> this later). There, it's no problem to rename/move packages and containing
> classes/interfaces. Also, the structure is often straightforward because
> I've got experienced over time.
>
> So, as I found CG to not be very useful (not only in ArgoUML), I'm using a
> more RE based approach in the implementation phase. From the code, I
> reverse engineer right into my (diagram-less) implementation model. Always
> reliably gives the same result, no problem with manually post-processing.
> The only issue is with manually cleaning up the model when
> deleting/renaming appears in the code. Also, like you, I only RE parts, not
> the whole code base. It's easy to add further parts to the model though.
>
> Based on the implementation model (without diagrams, gained by RE), I then
> manually create diagrams. ArgoUML has good support for class diagrams and
> sequence diagrams here. I create only those diagrams I need, so they are
> just selected views on the implementation. Especially for class diagrams,
> it's fun how these diagrams automatically get updated when I do further RE
> runs!
>
> Of course I start my project with some analysis work, not with
> implementation. For this, UML is perfect. The outcome is a (constantly
> maintaines) analysis model (I start with use case diagrams). I keep it
> strictly separated from the implementation model! By this I avoid the need
> to keep it synchronized with my code. It's amazing how small the
> overlapping between analysis model and implementation model is! Also, I
> believe that I can maximize the benefit from both models with that approach.
>
> Regarding modeling and team/collaboration: I never worked on
> implementation models in teams. But of course I did with analysis models.
> Unfortunately, not using ArgoUML here, because team support is not
> succifiently available (I used Sparx EA here). In May there will be another
> EA based project on my new job, I'm exited how it will be like. Back on
> implementation models and teamwork: what I experienced is, that only one
> team member takes over the task to maintain the model at once, so team
> support of the UML tool is not really needed here. There's less frequent
> activities here, compared to working on the code directly.
>
> Ah, I was not very succesful in convincing colleague using ArgoUML, btw.
> :-)
>
> Hope sharing my experiences is somewhat helpful, otherwise just ignore it.
>
> Best Regards,
> Thomas
>
>
> -------- Original-Nachricht --------
> > Datum: Sun, 1 Apr 2012 12:29:37 -0700
> > Von: Mark Fortner <[email protected]>
> > An: [email protected]
> > Betreff: Re: [argouml-dev] Usability Observations
>
> > Hi Bob,
> > Thanks for clarifying things.
> >
> > At some point I'd like to create a simple web app to make design reviews
> > easier to do.  Something which will render the model, but also allow
> > people
> > to comment on the model and provide feedback.
> >
> > I've used RE in the past on small portions of larger projects (usually on
> > a
> > package or module) but rarely the whole application.  And I've also
> > noticed
> > (as you pointed out) that we get inundated with detail.  It would be nice
> > to be able to turn off getters and setters, constructors, and
> > implementations of interface methods to cut down on some of the visual
> > noise that you see.
> >
> > When you create the document and share it with others, do you send it via
> > email, or is it on a shared server or checked in somewhere for people to
> > view? Also, do you also keep track of changes that people suggest and
> > whether or not those changes were acted upon? The reason I ask, is that
> > I'm
> > planning on incorporating Commons VFS with the ArgoPrint, and with the
> new
> > code generation stuff I've been tinkering with, and I wanted to know if
> it
> > would be useful to be able to save documents into a WebDAV repository --
> > something VFS currently supports.
> >
> > Mark
> >
> >
> > On Sun, Apr 1, 2012 at 12:02 PM, Bob Tarling <[email protected]>
> > wrote:
> >
> > > Mark Said
> > >
> > > These sound like really good ideas. If I'm adding attributes and now
> I'm
> > >> finished and want to add operations, what would I need to do?
> > >>
> > >
> > > Imaging first another missing feature.
> > >
> > > If you have multiple attribute and operations in a class you should be
> > > able click on the first attribute to just select it (which you can).
> > >
> > > If you then press down arrow the attribute below that should become
> > > selected instead (this is currently a missing feature and if you try it
> > you
> > > will see a defect with the current attribute)
> > >
> > > Pressing down arrow on the last attribute should then move to the first
> > > operation.
> > >
> > > Your question was what if there is no operation - in that case ArgoUML
> > > should create one and place it in edit mode.
> > >
> > >>
> > >>> I don't do CG/RE
> > >>>
> > >>
> > >> Why not?  (Sorry if that sounds like a very pointed question, but I'm
> > >> curious about the answer).
> > >>
> > >
> > > CG - As you've rightly pointed out. It doesn't generate code for Java
> > that
> > > is close enough to how it should look. I applaud your attempts to
> > improve
> > > this.
> > >
> > > RE - This tends to give me too much detail. Usually I only want
> > > documentation for a fraction of the full system. I don't want every
> > class,
> > > I don't want every getter/setter method. I usually just have a section
> > of
> > > some design document where I describig one particular issue and I only
> > want
> > > my diagram and classes to shown the few classes that are relevant. I
> > would
> > > rarely show all the methods for those classes.
> > >
> > > Sound like you use it when brainstorming ideas with yourself.  Does
> that
> > >> mean that you don't use ArgoUML in a team environment? For design
> > reviews,
> > >> for instance?  If that's the case, have you shown ArgoUML to any of
> the
> > >> people that you collaborate with, and what do they think of it?
> > >>
> > >>
> > > Generally I am working things out for myself as you say - usually I am
> > > working solo. Eventually this will form part of some document that I
> > will
> > > send off to some other team. They tend to give me general feedback on
> > the
> > > whole document and I amend according to that feedback.
> > >
> > > Cheers
> > >
> > > Bob
> > >
> > >
> >
> > ------------------------------------------------------
> >
> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2943412
> >
> > 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]]
>
> --
> NEU: FreePhone 3-fach-Flat mit kostenlosem Smartphone!
> Jetzt informieren: http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a
>
> ------------------------------------------------------
>
> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2943676
>
> 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]]
>

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

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