[RSS]

UML Developer Wiki

What's New

A port to the Netbeans Visual Library is underway. See the Current Projects tab for more info.

UML on netbeans.org

UMLDrawingAreaReplacement

A complete replacement of the UML drawing area control is underway. Currently we use a closed source graphing package. We are now building the UML designer on top of the Netbeans Visual Library .

Plan and Schedule

Features

  • Simpler Palette
The current implementation of the palette is pretty complex. The current palette uses a click - multiple drop approach. In order to exit the drop mode, you have to either right click or hit the ESC key. To make the palette more intuitive, we have adopted the standard NetBeans palette behavior. The diagram palette can now accept nodes that have been dragged from the palette. Clicking on a node also puts the designer in drop mode. The multi-drop mode is still supported. By pressing the shift key when clicking on the diagram, the active palette node will remain active, and allow you to drop another model element.
  • Context Palette
To help simply the palette we have added a context palette. The context palette will contain palette actions that are valid for a selected node. Usually the context palette will contain only edges, however that will not always be the case. For example on the Sequence diagram, the LifeLine node will also contain the destory action as well.
  • Class Diagram
  • Sequence Diagram
  • Use Case Diagram
  • Deployment Diagram
  • Component Diagram
  • Activity Diagram
  • Collaboration Diagram
  • State Diagram
  • General Diagram
  • Diagram Persistence
  • Importing Existing Diagrams

Planing

Documentation

Bug Filing Conventions

  • Bugs opened against against the meteora branch should be filed as follows:
    • Version = current
    • Target Milestone = current
    • Keyword = NO61

Issue Tracking

M1

UML will not be released in M1.

Beta

  • Weekly fixes delivered:
From To Created Fixed
Jun 02 Jun 08 45 36
Jun 09 Jun 15 27 53
Jun 16 Jun 22 33 46
Jun 23 Jun 29 50 35
Jun 30 Jul 06 25 31
Jul 07 Jul 13 67 52
Jul 14 Jul 20 18 40
Jul 21 Jul 27 20 43
Jul 28 Aug 03 18 27

FCS (code freeze 9/15/2008)

Waivers

Summary

Build

UMLCommunityProjects

Table of Contents

C/C++ UML Support

Project Page

Prof. Vladimir Safonov et al.

vos.png
eMail: v_o_safonov@mail.ru
WWW: http://user.rol.ru/~vsafonov/

Professor Vladimir O. Safonov is an eminent specialist in computer science and software engineering in Russia. He has 30 years experience in managing and leading major software projects and teaching software technologies at St. Petersburg University (http://www.spbu.ru) and 15 years experience of managing and technical leading international software projects.

Areas of expertise:
  • Compilers and programming languages
  • Java technology
  • Microsoft.NET platform
  • Software engineering technologies and tools
  • Aspect-oriented programming
  • Knowledge engineering and management
  • Trustworthy computing

XMI Import/Export Prototype

Roy Feldman

eMail: roy@opensoftsolutions.com
NetBeans User ID: royfeldman

Roy Feldman is the project leader of Open Software Factory (OSF) on java.net, which is developing tools and techniques for Model Driven Software Development. OSF development is sponsored by the Software Industry Promotion Agency (SIPA), of Thailand. He has been an adviser to SIPA in the areas of Open Source, emerging software technologies, and software development methodologies since mid 2004.

Java Reverse Engineering Parse Upgrade

Supun Liyange

eMail: supunliyanage@yahoo.com
NteBeans User ID: supunliyanage

Supun is a MSc Mobile Computer Systems, student at the Staffordshire University, UK. He has been involved with NetBeans since September 2004 as an Observer for the NetCat 5.0 program.

Supun's current research includes Artificial Neural Networks (ANN)/Artificial Intelligence (AI) for mobile and wireless bots and devices in addition to research on Intelligence Persistence (Storing Intelligence it self) and Data/Object Bases.

Supun participates in NetBeans UML, CORBA, QA and J2EE forums.

SVG Image Export

Bruno Matos

bmm.png
eMail: bruno.matos@gmail.com
NetBeans User ID: bmm

Bruno is a 4th year IT student at the University of Minho. He has worked in of the department's distributed operating systems lab and is currently working on an advanced Java technology project. Bruno has been a Java programmer since 2002.

UML Community Wishlist

Table of Contents

UML Profile Missing

From - Rahul Mahajan(rahul_maha@yahoo.com)

Sterotypes project feature is something critically missing, UML profiles project feature should be available which should allow users to define new Sterotypes, their attributes etc. and then these profiles can be attached to UML projects.

Sterotypes should have inheritance, should have constraints e.g. <<Facade>> can only be applied to components, it may have attributes like allowTransaction etc.

This will act as a metadata for code generations.

This is something very critical for MDA based projects.

-- Trey Spiva -- Yes we agree. We do have profile support on our roadmap. In a profile editor is planned for the second half of next year. See our road map for more information.

Rahul -Thanks for reading above comments. Just like to add few more lines -

UML Profiles created project will have versions so attached UML modeling projects should have feature of migrating them.

Developers should be able to write custom code generator modules. UML Model reading API framework should allow developers to write custom code generators. So from Netbeans perspective, in future ideally their should be something like create a UML Transformation module.

These modules can be exported as plugins and UML projects should be able to select a transformation module and generate code. This may trigger a callback in Model reading API which will trigger custom templates written in freemaker etc.

I hope it make sense.

Copying UML projects or their elements across projects

From - Moises Lejter (moilejter@gmail.com)

I noticed you have the ability to copy projects, or elements within a project to another project, in the roadmap - but listed under "Future". I would like to put in a vote (word?) for it to be given more importance: it seems to me that a very common use of UML is to play "what-if" scenarios, to sketch out potential design alternatives, to then be able to compare them to each other. This is very cumbersome to do now in NetBeans UML, since one may need to recreate the whole project from scratch, in order to have a second copy that can illustrate an alternative design. I teach classes on Java and OO design - and this lack makes using NetBeans UML in class very unattractive...

I wrote a little shell script to allow me to copy a complete NetBeans UML project to a second directory, renaming the internal model tag to make it independent of the first - but it seems that NetBeans does not like to then open two of these projects side-by-side. It would be nice if one could, for example, make a copy of an existing UML sequence diagram, then be able to edit the second copy, without the changes propagating back to the first one - that way, one could show the two designs, side by side...

UMLRoadmap

Table of Contents

Introduction

The roadmap represents the development team's latest thinking on current and future projects. Don't see you favorite feature listed? Please add it to our wishlist .

UML Meteora (October 2008 target)

  • Port to NB Graph Library
  • Standard NetBeans look and feel
  • Full open source solution
  • Mac support

Fourth quarter of 2008

First half of 2009

  • Undo/Redo
  • Compartment filtering
  • Multiple element customization
  • Reverse engineering upgrade
    • Replace antlr with NB Java framework
      • provides fully qualified types and names
      • allows reverse engineering of class files
    • Modeling Libraries:
      We need to allow users to reference preexisting models. For example, when the user creates a class to extend JFrame, he/she has to create a generic DataType instance to represent the JFrame class. Instead, the user should be able to reference a Java Library that contains the Java classes, interfaces, and enumerations. We want to provide users with a standard set of libraries and also allow users to create their own.

Second half of 2009

  • Meta model upgrade
    • UML Level 1 compliance
    • scale to large projects
    • version control aware
  • UML Level 2 compliance
  • Version Control
    • Visual diff/merge
  • Profile Editor:
    In UML, users can create stereotypes to extend the UML language. A Profile is basically a library of stereotypes. We should allow users to design profiles and plug that into our template based code generation.
  • Modeling Framework
    • Public API
    • Visual meta model editor
    • Prerequisite for partner engagements

Future

Additional Languages
Currently we only support Java reverse engineering, sequence diagram reverse engineering, and code generation. We need to be able to support multiple languages. The code generation that will be added in Hydra will make it very easy to add code generation for multiple languages. We need to make reverse engineering just as easy.
  • Scripting Languages
  • C++ Support
  • Support of Generic Helper Classes
  • Support for a Source Model Classes
Model Driven Development
In NetBeans 6 we are going to start adding some model driven development support. We would want to continue to grow our model driven devleopment features.
  • Code Generation
    • State Diagram
    • Activity Diagrams
  • Mode to Model Transformation
Stereotype Faces
We should allow customization of a model element based on the applied stereotype. For example, if a WebService stereotype is applied to a class, maybe the user only want to see the operations that where tagged as web service operations. Context menus could also change based on the stereotype as well.
Sun Product Integration
As a Sun product we should tie back to Sun server products. We need to determine if there is any areas that Sun servers can benefit from modeling tools.
  • Java Enterprise Edition
  • JES support
Collaboration Integration
Add the ability to share diagrams between team members via the Collaboration server.
Advanced Code Generation
It would be nice to be able to generate code for more than the class diagram. Other diagrams that could benefit from code generation is the interaction, state, and activity diagrams.
Activity Method Body Reverse Engineering
Currently we can only create interactions when a method is reverse engineered. By reverse engineering into an activity diagram we should be able to display more details. For example better exception processing.
Model Duplication
We have the ability to duplicate a model or any part of a model. This would be useful when creating a second project that is similar to a existing model.
Logging API
Because of historical reasons, UML has it's own logging API. The new Netbeans Logging API is much more robust. We need to migrate to the new API.
Enhanced Color and Font Resource Management
<TODO: Add more Information>
Enhanced Diagram Navigator
With the new diagram, we are now able to have a navigator that shows an overview of the diagram. There are still a number of features that would be nice to add the satellite view. One would to be able to specify the viewable area of the diagram, by resizing the viewing rectangle. By resizing the viewing rectangle the zoom level of the diagram should change.
Robust Filtering
We need to be able to allow the user to specify the compartment that should be shown. The user should be able to specify that all attribute compartments should be collapsed for example.
Live Roundtrip
Automatically keep source and model in sync in real time as the user edits either.
Many to 1 reverse engineering
With template based code generation and customization, users have the ability to generate several source files from a single model element, e.g. EJB. Reverse engineering gets tricky if the user edits one or more of these files and attempt to reverse engineer.
Reverse Engineering Diagram Creation
We need to create a standard set of diagrams as the result of a reverse engineering process.

UMLMacIssues

Mac Users Can Use UML!

If you are a Mac OS X 10.4 user, you have certainly noticed that UML does not support your platform. This is due to some incompatibilities with the Apple(tm) JDK on the Mac OS X 10.4. This is not the end of the story. The UML module will run on your Mac. You simply need to be aware of the problems you may experience (see the next sections).

NetBeans UML will run on the Mac OS X 10.5 without any performance problems with both JDK 1.5 and JDK 1.6.

Current Development

For NetBeans 6.5 the UML drawing area has been completely rewritten. One of the goals for drawing area redesign is to better support the Mac. In the beta release of NetBeans 6.5 UML will be on the update center.

Here is how to get UML running on your Mac.

  1. Download and start the newest version of NetBeans on your Mac.
  2. Select the menu item Tools->Plugins.
  3. Select the "Available Plugins" tab.
  4. Find UML in the "Available Plugins" list that appeared and check its check box.
  5. Click install. On NetBeans 6.1, you will be warned that this module is not supported on Mac as the installation completes.

Happy Modeling!

UML performance issue on Mac OS X 10.4 when scroll bars exist for the diagram window

issue 78346

The performance problems occur when a diagram has scrollbars. After the scollbars appears, any action in the diagram takes a very long time.

With jdk1.5.0_06 the flag "-J-Dapple.awt.graphics.UseQuartz=false" needs to be used to have decent performance on the Mac. However, this flag may cause side-effects in other parts of the IDE. Depending on which other modules are being used, you may or may not ever see these side-effects.

With jdk 1.5.0_07-154 the performance problems are a little better. The performance of selection, and context menu actions are barely usable, however scrolling is still extremely slow.

In jdk1.6 this bug has been fixed for the Intel platform. However, the problem still exist on the Power PC. There are other problem that occur with the jdk 1.6 (see issue 86850). NetBeans has a general refreshing problem with jdk 1.6. One of the refershing issues is show in the below image.

Mac_jdk16_refresh.png

Creating class diagram from selected elements returns StackOverflowError exception

issue 82831

This is a known problem Mac bug: Bug ID#4647508.

UI performance on Mac OS X system is very slow when jdk 1.6 is used to start ide

Issue 82943

It is important to note that this bug is filed against a very specific configuration: PPC Mac with Java1.6

UMLQualityEngineering

UML Functional Testing Guidelines For Community Testers

  • NetBeans 6.5 UML only supports the following 5 diagrams. Please do not file issue on the missing diagrams since there are already issues to track them.
    • Activity Diagram
    • Class Diagram
    • Sequence Diagram
    • State Diagram
    • Use Case Diagram
  • Since some UML 2.0 features are not yet supported in NB UML, if to file bugs for missing features please file them as feature issues instead of defect issues.
  • UML bug filing, use the following component & version and reference the following bug priority guidelines. Before filing a bug, it's good to confirm to see if such a bug already exists by searching in the existing unresolved bug list first.

Attachments

Document.rtf Info on Document.rtf 1957407 bytes