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) $.