Login | Register
My pages Projects Community openCollabNet

ArgoUML in Google's Summer Of Code 2006

The ArgoUML project is participating in the Google Summer of Code and is looking for students to contribute.

We are looking for enthusiastic students with a solid knowledge of Java, who are interested in software development tools and modeling, particularly the UML modeling language. Most, although not all, tasks will be easier for those who already have an working knowledge of the OMG's UML.

This page include a list of suggested projects that the development team is interested in mentoring, but we are happy to consider projects which are not on this list if they are worthwhile. If you'd like to suggest a different project, please contact the team so that we can work with you to develop the strongest possible proposal for evaluation. There's also a more general list of development tasks which have been suggested over time available in our Job Jar which may offer additional sources of inspiration.

Also check the bug database for enhancements: a suitable project may be to implement one or more of these features / enhancements.

Here is a list of some additional information that you will likely find useful:

When you are ready to apply, you can start your application on the Google Summer of Code site at http://code.google.com/soc/student_step1.html.

ArgoUML Performance

ArgoUML hasn't had any formal performance analysis or tuning since it switched to using the NetBeans MDR library. There are also some known issues with scalability to support large models.

Suggested tasks include:

  • Identify and resolve CPU hotspots:
    • Select a Java profiling tool with the assistance of your mentor.
    • Profile the ArgoUML application to establish a baseline and develop a plan of attack.
    • Refine the granularity and scope of the profiling.
    • Fix identified hotspots.
    • Iterate.
  • Profile for memory usage and resolve any significant memory leaks.
  • Investigate specific performance issues (space & time) with handling of large models.

ArgoPrint Improvements

ArgoPrint is a tool to extract the information from the UML model and present it in written form as a report.

Two things needs to be done to it:

  • Improve it to make it usable.
  • Improve the template editing capabilities.

One thing that needs rework is the template language. An investigation to decide if it would be a good idea to switch to an existing open source template language engine is expected comparing the existing language, XSLT, Velocity, JET, and StringTemplate to see how well they are suited based on extendability and integrability, availability of extendable open source editor, creating html including diagrams (pictures), and creating docbook including diagrams (pictures). Other candidates and criteria can be added later.

Graphics Subsystem Improvements

The Tigris Graph Editing Framework (GEF) is used by ArgoUML to draw and manipulate all UML diagrams. (It should not be confused with the Eclipse framework of the same name). Drawing functionality is divided between the GEF component and ArgoUML components.

This is a list of suggested projects for GEF or the ArgoUML drawing components:

  • Complete undo facility
  • Implement graph layout algorithms
  • Add support for dragging edge endpoints to new nodes to change connection (see issues 1521-1524 in bug database)
  • Add Eclipse compatibility
  • Implement demonstration projects

Eclipse Integration

There are a number of possibilities related to integration between Eclipse and ArgoUML that we are interested in.

Some basic possibilities are listed below, but these can be mixed and matched depending on the skills and interest of the student(s):

  • Implementation of a ArgoUML Model subsystem using the Eclipse UML2 2.0 plugin which is layered on the Eclipse Modeling Framework and implements support for the OMG's UML 2.1.
  • Implementation of Eclipse plugin wrappers for major ArgoUML components such as the property panels or diagram panes so they can be integrated with Eclipse.
  • High level basic integration of ArgoUML and Eclipse so that they can share coarse-grained communication and control (but without any graphical integration).

This page was last updated on $Date: 2006-05-14 02:44:48 -0700 (Sun, 14 May 2006) $.

Back to ArgoUML Home