This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 165647 - request for enhancement
Summary: request for enhancement
Status: NEW
Alias: None
Product: uml
Classification: Unclassified
Component: Reverse Engineering (show other bugs)
Version: 6.x
Hardware: All All
: P3 blocker (vote)
Assignee: issues@uml
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-20 20:16 UTC by jmkyria
Modified: 2009-05-20 20:16 UTC (History)
0 users

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jmkyria 2009-05-20 20:16:09 UTC
I would like to request some simple enhancements to the UML modelling plugin for reverse engineering which would make
creating and building diagrams so much easier.

First of all, I would like to clarify that in all of the places I have worked, we never write or modify programs via
UML.  In most cases, reverse engineering is meant as a tool to understand the code base that is there in order to fix a
bug or enhance the functionality.

Therefore, I would like to request a mode in the UML plugin that ensures that I am not changing any code while trying to
build the diagram. This mode may not have been necessary if the plugin were easier to use in this context, but since it
is counter-intuitive to the environments I have worked in, this mode is truly needed for peace of mind.

Secondly, there needs to be a much more intuitive and easier way to include classes into a class diagram.  I suggest an
"Add to diagram" menu item be added to the right-click menu for the source file you are looking at in the editor.  This
should work not only for application classes, but even for java classes (e.g. in java.util or javax.swing).  So often an
application class inherits from an existing java class, and it is very helpful to see what the class inherits.  It is
also very helpful, let me be more direct, imperitive, to allow java classes to be added to a diagram so that the user
can gain an understanding of related classes in java, for example, to see all the relationships between Swing classes
that perform a specific function, say the 26 classes that interact for JTables or to understand the various kinds of
collection classes.

Thirdly, there should be an easier, more intuitive way to add classes to a diagram you're currently looking at.  For
example, all class references could be hyper-linked, so that clicking on the class name would add that class to the
diagram. A right-click menu over a class in the diagram could also allow the user to add superclasses or subclasses or
all other class references (via checkboxes next to the class name in a pop-up dialog) by that selected class.

These features would allow class diagrams to be built in a very short time and save the user from great frustration in
trying to use the UML plugin to understand currently existing code.

The currently existing ways of creating diagrams have been very frustrating for me to use.  Only rarely would I ever
want to see every class in a package in a class diagram; for how many times is existing code so well designed that the
files in a package is all you need to see in a class diagram? You either get far too many or too few classes. The more
badly designed a code base, the more one needs the UML plugin to easily add classes in order to understand the class
relationships and (so-called) design of the code.

I spent 10 minutes or so, carefully selecting all the JTable-related classes in the projects window from various
packages that I needed to see in a class diagram. After this work, when I right-clicked on them, I found only one
right-click menu item I could select as an operation that I could perform on them, and it had nothing to do with UML or
its diagrams. This was a frustrating waste of time and effort.

My last enhancement suggestion is to see displayed what package each class in a diagram belongs to.

Thank you for listening.