The ObjectAid UML Explorer for Eclipse
In its current form, the ObjectAid UML Explorer is optimized for the quick
and easy creation of class diagrams from existing code. As such, it is
useful for the exploration and documentation of an existing code base.
Especially the exploration of existing code is supported by several
ease-of-use features:
- Drag and drop from the Package Explorer and the Type Hierarchy View
are supported.
- Associations are determined from generic collections or can be added
manually.
- Two unidirectional associations can be merged into one
bidirectional association.
- Generalized, realized and associated classifiers can be added to the
diagram from a context menu of a classifier or attribute.
- Source code refactoring updates all diagrams as well.
Features
- Only class diagrams for existing Java classes are supported.
They are based on the OMG's UML 2.0 specification
(see http://www.omg.org/uml/).
JDK 1.5 generics, enumerations and annotations are supported.
- Class diagrams are created with a wizard (New wizard -> UML Diagram
-> Class Diagram). They can contain existing classes, interfaces,
enumerations and annotations (called classifiers henceforth in
accordance with UML 1.5). The diagram only reflects the existing
source code, which cannot be manipulated through the diagram.
- All user interaction with the class diagram is either graphical
(clicking, dragging, drag and drop) or with context menus. Exceptions:
- A toolbar combobox allows the selection of zoom factors.
- Accelerators are available for Delete (DEL), Open Source
(double-click or F3), Open Type Hierarchy (F4) and some other
common actions (Undo, Redo, Select All, Save, Save As).
- Source and binary classifiers can be added to the diagram in various
ways (as long as they are not there already):
- Classifiers can be dragged from the Package Explorer and the
Type Hierarchy View. Note that when you drag a file from the
Package Explorer, all classifiers in that file are added to the
diagram.
- Classifiers can be added directly by opening a
selection dialog from the class diagram context menu.
- Classifiers with a particular relationship to the currently
selected classifer can be added from the context menu. The supported
relationships are: generalization (parents only), realization,
association.
- When an attribute is selected whose type is a classifier, that
classifier can be added directly to the class diagram by selecting
is from the context menu.
- The following relationship types are supported:
Generalization, Realization, Association, Dependency, Nesting.
When a classifier is added to a diagram, relationships to other
classifiers in the diagram are reverse engineered. They can be deleted
from the diagram and reverse engineered again later.
- The reverse engineering of relationships is configurable on
the class diagram.
- The reverse engineering of associations knows generics: generic
Collections and Maps with type parameters are reverse engineered
as associations to the classifier of the type parameter if that
calssifier is in the diagram.
- A non-generic Collection or Map can be converted into an
association by selecting it and clicking the target classifier.
- Two unidirectional associations between two classifiers can be
merged into a single bidirectional association. The unidirectional
associations have to point in opposite directions, but they can
be on the same classifier.
- Relationships can be reverse engineered by type for a particular
classifer upon demand.
- Relationships can be routed automatically or manually. Moving a
bend point in a relationship turns off automatic routing. A context
menu option or moving the relationship back to a straight line turn
it on again.
- Attributes that participate in an association are not displayed
on their classifier.
- Various display options are available for classifiers.
- Automatic Resize - determines if a classifier is automatically or
manually sized. A manually sized classifier cannot become larger than
it automatic size, but it can be smaller. Automatic Resize is turned
off when you change the classifier's size.
- Show Package Name - shows or hides the package name of classifiers
that are not within the same package as the class diagram.
- Show Visibility - shows or hides the visibility (public '+',
package '~', protected '#', private '-') of attributes and
operations.
- Show Attributes - shows or hides the attribute (field) compartment.
- Show Operations - shows or hides the operation (method) compartment.
- Show Attribute Default - shows or hides the default (initial) values
of all attributes. If the initial value is an anonymous inner class,
the actual code is shown as '{...}'.
- Show Operation Signature - shows or hides the operation (method)
signatures.
- Layout options for classifiers include:
- Vertical and horizontal alignment along the middle and the edges.
- Automatic layout for the entire class diagram.
- Some display options are available for associations.
- Show Labels - shows or hides the names of the attributes upon which
the association is based.
- Show Multiplicity - shows or hides the reverse engineered
multiplicity. It is 0..1 for normal attributes and 0..* for
Collections and Maps.
- Class diagrams are saved to and loaded from XML files with the
extension '.ucls'.
- The Eclipse refactoring extension points are fully supported. All
refactoring events update all diagrams in the workspace appropriately.
The only exception are deletions affecting diagrams that are not open in
an editor; those are handled when diagram is opened.
Known Issues and Limitations
- The source code cannot be manipulated through the diagram.
This means that changing or deleting a classifier or relationship
within a diagram has no effect on the source code.
This is intentional.
- Dropping a classifer onto a freshly opened class diagram with many other
classifiers can take a little longer. This is because the reverse engineering
of relationships requires certain information to parsed for every classifier.
The second time a classifier is dropped on the diagram, it should be nearly
instantaneous.
- Drag and drop does not work from the Navigator in the Resource perspective.
- Binary classifiers do not have default/initial values because those
are parsed from the source code.
- Currently the Eclipse refactoring extension points do not support
everything you can actually do in the Java IDE. For example, the move of
inner classes or non-static class members via drag and drop does not
trigger the refactoring extension points.
Requirements
License
- This software is free to download and use, but it is not open source.
- You are free to redistribute the executable, but you may not change
it or charge for it.
- You may not reverse engineer or distribute the source code of this
application.
- This software is provided 'as is' without any warranties.
Acknowledgements
This software uses Castor XML by the Exolab Project which is subject
to the following license:
Copyright 2000-2002 (C) Intalio Inc. All Rights Reserved.
Redistribution and use of this software and associated
documentation ("Software"), with or without modification,
are permitted provided that the following conditions are met:
- Redistributions of source code must retain copyright
statements and notices. Redistributions must also contain
a copy of this document.
- Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
- The name "ExoLab" must not be used to endorse or promote
products derived from this Software without prior written
permission of Intalio Inc. For written permission, please
contact info@exolab.org.
- Products derived from this Software may not be called
"Castor" nor may "Castor" appear in their names without
prior written permission of Intalio Inc. Exolab, Castor
and Intalio are trademarks of Intalio Inc.
- Due credit should be given to the ExoLab Project
(http://www.exolab.org/).
THIS SOFTWARE IS PROVIDED BY INTALIO AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTALIO OR ITS
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
This software is based on the OMG's UML 1.5 specification which
is subject to the following license:
Copyright © 2000-2002 Alcatel
Copyright © 1997-2001 Computer Associates International Inc.
Copyright © 1997-2001 Electronic Data Systems Corporation
Copyright © 1997-2001 Hewlett-Packard Company
Copyright © 1997-2001 IBM Corporation
Copyright © 1997-2002 I-Logix
Copyright © 1997-2001 IntelliCorp
Copyright © 2000-2002 Kabira Technologies
Copyright © 2000-2002 Kennedy Carter
Copyright © 1997-2001 Microsoft Corporation
Copyright © 1997-2001 Object Management Group
Copyright © 1997-2001 Oracle Corporation
Copyright © 2000-2002 Project Technology
Copyright © 1997-2001 Ptech Inc.
Copyright © 1997-2001 Rational Software Corporation
Copyright © 1997-2001 Reich Technologies
Copyright © 1997-2001 Softeam
Copyright © 1997-2001 Taskon A/S
Copyright © 2000-2002 Telelogic
Copyright © 1997-2001 Unisys Corporation
USE OF SPECIFICATION - TERMS, CONDITIONS & NOTICES
The material in this document details an Object Management Group specification in accordance with the terms, conditions and
notices set forth below. This document does not represent a commitment to implement any portion of this specification in any
company's products. The information contained in this document is subject to change without notice.
LICENSES
The companies listed above have granted to the Object Management Group, Inc. (OMG) a nonexclusive, royalty-free, paid up,
worldwide license to copy and distribute this document and to modify this document and distribute copies of the modified
version. Each of the copyright holders listed above has agreed that no person shall be deemed to have infringed the copyright
in the included material of any such copyright holder by reason of having used the specification set forth herein or having
conformed any computer software to the specification.
Subject to all of the terms and conditions below, the owners of the copyright in this specification hereby grant you a fully-paid
up, non-exclusive, nontransferable, perpetual, worldwide license (without the right to sublicense), to use this specification to
create and distribute software and special purpose specifications that are based upon this specification, and to use, copy, and
distribute this specification as provided under the Copyright Act; provided that: (1) both the copyright notice identified above
and this permission notice appear on any copies of this specification; (2) the use of the specifications is for informational
purposes and will not be copied or posted on any network computer or broadcast in any media and will not be otherwise resold
or transferred for commercial purposes; and (3) no modifications are made to this specification. This limited permission
automatically terminates without notice if you breach any of these terms or conditions. Upon termination, you will destroy
immediately any copies of the specifications in your possession or control.
PATENTS
The attention of adopters is directed to the possibility that compliance with or adoption of OMG specifications may require use
of an invention covered by patent rights. OMG shall not be responsible for identifying patents for which a license may be
required by any OMG specification, or for conducting legal inquiries into the legal validity or scope of those patents that are
brought to its attention. OMG specifications are prospective and advisory only. Prospective users are responsible for protecting
themselves against liability for infringement of patents.
GENERAL USE RESTRICTIONS
Any unauthorized use of this specification may violate copyright laws, trademark laws, and communications regulations and
statutes. This document contains information which is protected by copyright. All Rights Reserved. No part of this work
covered by copyright herein may be reproduced or used in any form or by any means--graphic, electronic, or mechanical,
including photocopying, recording, taping, or information storage and retrieval systems--without permission of the copyright
owner.
DISCLAIMER OF WARRANTY
WHILE THIS PUBLICATION IS BELIEVED TO BE ACCURATE, IT IS PROVIDED "AS IS" AND MAY CONTAIN
ERRORS OR MISPRINTS. THE OBJECT MANAGEMENT GROUP AND THE COMPANIES LISTED ABOVE MAKE
NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS PUBLICATION, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF
MERCHANTABILITY OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE.
IN NO EVENT SHALL THE OBJECT MANAGEMENT GROUP OR ANY OF THE COMPANIES LISTED ABOVE BE
LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS, REVENUE, DATA OR
USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION WITH THE FURNISHING,
PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
The entire risk as to the quality and performance of software developed using this specification is borne by you. This
disclaimer of warranty constitutes an essential part of the license granted to you to use this specification.
RESTRICTED RIGHTS LEGEND
Use, duplication or disclosure by the U.S. Government is subject to the restrictions set forth in subparagraph (c) (1) (ii) of The
Rights in Technical Data and Computer Software Clause at DFARS 252.227-7013 or in subparagraph (c)(1) and (2) of the
Commercial Computer Software - Restricted Rights clauses at 48 C.F.R. 52.227-19 or as specified in 48 C.F.R. 227-7202-2 of
the DoD F.A.R. Supplement and its successors, or as specified in 48 C.F.R. 12.212 of the Federal Acquisition Regulations and
its successors, as applicable. The specification copyright owners are as indicated above and may be contacted through the
Object Management Group, 250 First Avenue, Needham, MA 02494, U.S.A.
TRADEMARKS
The OMG Object Management Group Logo®, CORBA®, CORBA Academy®, The Information Brokerage®, XMI® and
IIOP® are registered trademarks of the Object Management Group. OMG™, Object Management Group™, CORBA logos™,
OMG Interface Definition Language (IDL)™, The Architecture of Choice for a Changing World™, CORBAservices™,
CORBAfacilities™, CORBAmed™, CORBAnet™, Integrate 2002™, Middleware That's Everywhere™, UML™, Unified
Modeling Language™, The UML Cube logo™, MOF™, CWM™, The CWM Logo™, Model Driven Architecture™, Model
Driven Architecture Logos™, MDA™, OMG Model Driven Architecture™, OMG MDA™ and the XMI Logo™ are
trademarks of the Object Management Group. All other products or company names mentioned are used for identification
purposes only, and may be trademarks of their respective owners.
COMPLIANCE
The copyright holders listed above acknowledge that the Object Management Group (acting itself or through its designees) is
and shall at all times be the sole entity that may authorize developers, suppliers and sellers of computer software to use
certification marks, trademarks or other special designations to indicate compliance with these materials.
Software developed under the terms of this license may claim compliance or conformance with this specification if and only if
the software compliance is of a nature fully matching the applicable compliance points as stated in the specification. Software
developed only partially matching the applicable compliance points may claim only that the software was based on this
specification, but may not claim compliance or conformance with this specification. In the event that testing suites are
implemented or approved by Object Management Group, Inc., software developed using this specification may claim
compliance or conformance with the specification only if the software satisfactorily completes the testing suites.
ISSUE REPORTING
All OMG specifications are subject to continuous review and improvement. As part of this process we encourage readers to
report any ambiguities, inconsistencies, or inaccuracies they may find by completing the Issue Reporting Form listed on the
main web page http://www.omg.org, under Documents & Specifications, Report a Bug/Issue.