Login | Register
My pages Projects Community openCollabNet

Wiki: Ideas for GSoC 2009

Edit this page | Links to this page | Page information | Attachments | Refresh page


The ArgoUML organization had hoped to be accepted as an organization for the Google Summer of Code 2009. Alas we were not selected this year.

We can revisit these ideas if applying again.

Here is a link to the Official Google Summer of Code 2009 site.

1. Project ideas

1.1. Multiple Configuration Items within a model

See issue 3497.

1.2. Finish the manual label adjustment

See issue 1048. The remaining work comprises:

  • update the DTD, (it may even be that there is no need to update it)
  • extend the mechanism to handle figmessages
  • have GEF return the right size of a text Fig

1.3. Copy/Paste

See issue 808.

1.4. Parameterized classes

See issue 1446.

In UML, parameterized classes are used to model parameterized types. This is somewhat similar to Java and C# generics and C++ templates. ArgoUML doesn't yet support showing parameterized classes on a diagram which makes it less useful for modeling for these languages.

This project would only implement the GUI support for modeling parameterized classes, since these are already supported in the model sub-system. It will require working in the several presentation elements of the ArgoUML GUI, such as the explorer pane, the class diagram and the properties panel. Potentially interesting is the correct display of the parameterized classes and of the bound elements (classes that are defined by defining actual types for the parameterized class' parameters).

1.5. UML 2.0 / euml

The next step or steps towards UML 2.0 support.

I hope Bob or someone can flesh this out.

1.6. Eclipse RCP

The next step or steps towards using the Eclipse RCP.

I hope Tom or Bogdan can flesh this out.

1.7. Settings API for code generators

This includes both the introduction of a settings API like the existing one for source import and a GUI that makes use of this API. It must be usable by code generator modules. It has to be adapted to the Java code generator module. A setting that needs to be provided is: which model parts are to be generated using which language.

Contact: Thomas Neustupny (thn)

1.8. From Java code to Sequence Diagrams

After reverse engineering of Java sources the model contains the method bodies. These need to be used to construct sequences in sequence diagrams by detecting all method calls. A GUI for filtering the findings is required, too. Initial code exists. This requires primarily to work with the new sequence diagram implementation, but also some basic work with the Java parser.

Contact: Thomas Neustupny (thn)

1.9. Unit Testing

We think that ArgoUML is a great quality tool, but sometimes we cannot demonstrate it. ;-)

We are looking for improving our test process in general and unit tests coverage in particular, making easier the detection of new bugs and regressions. Take in account that we value improving code testability, not tests number.

Testing qualities and JUnit knowledge required.

Contact: Christian Lopez Espinola <penyaskito>

1.10. Tool chain integration for automation

We want to make easier the process of generating documentation models based on code, so we'd like to provide Ant and/or Maven2 plugins that integrate the build process with ArgoUML for generating documentation artifacts.

Ant or Maven2 plugin development knowledge required.

Contact: Christian Lopez Espinola <penyaskito>

1.11. XML based PropPanels


Contact: Bob Tarling <bobtarling> / Christian Lopez Espinola <penyaskito>

1.12. Improve a subsystem of your choice by solving existing issues

The issues database contains many bugs and enhancement requests. Go to the query page at Issue tracking query, and select a "Subcomponent" corresponding to an item from the list below.

The task for the student is to solve as much of these issues within one subsystem as (s)he can.

These are acceptable subsystems:

  • Class Diagram
  • Collaboration Diagram
  • Critics
  • Csharp module
  • Deployment Diagram
  • Diagrams
  • Explorer
  • GUI
  • Notation
  • OCL and Constraints
  • Other
  • Sequence Diagram
  • State and Activity Diagram
  • Usecase Diagram

Beware: This may seem less interesting than adding one big new feature to ArgoUML, but has the big advantage that the work is broken in many small parts, each of which are useful to solve on its own. This is an agile way of working: the difficulty of the task and the speed to solve them can be adapted during the period. No pressure for deadlines, no disappointment if a project remains unfinished!

Developer contact (at least for most subsystems): Michiel van der Wulp (mvw).

1.13. Diagrams

Layout algorithm for class diagrams

In addition to the current layout algorithm, a second (more elaborated) one has to be provided. A GUI for choosing between the two (or more) algorithms is needed, too. The new layout algorithm should take into account length of edges, number of edge crossing, direction of generalizations etc. (probably with using penalty functions).

Contact: Thomas Neustupny (thn) / Bob?

2. The Students we are looking for

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.

3. The projects we are looking for

This page include a list of suggested projects that the development team has thought of, but we are happy to consider projects which are not listed here.

If you'd like to suggest a different project, please discuss it previously with the team on the developers' mailing list so that you can 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 and our bug database could be another source of inspiration.

4. How to fill in your application

In the Title, formulate your own title as a summary of what you will accomplish in the project.

In the Abstract, describe what you plan to achieve in the project.

In the Detailed Description, we suggest you use more or less the following template:

  • General introduction
  • Your plans for the summer
  • Your experience. State specifically any previous experience with:
    • ArgoUML (using or improving)
    • UML
    • Java, Eclipse
    • Open Source projects
    • Other programming languages or XML
  • Details on the project you are suggesting. This includes:
    • What the project is about
    • Why this is important to ArgoUML
    • How this is solved

In your plans for the summer, mention where you will be working, at home, in your student dorm, at your institution, and what kind of computer and internet access you have access to there.

Tips for writting a good application:

  • Subscribe to the dev mailing list and talk with us about your idea
  • Before submitting your application to Google Summer of Code infrastructure, discuss and review with us your application, we will help you with suggestions and feedback

5. Quick intro of general information in the project

This wiki contains a lot of information on the design of ArgoUML and how we work in the project. The Cookbook was used before this wiki and should be entirely migrated into the wiki so it is presumably less updated.

All discussions about the ArgoUML project, the ideas above, and other ideas, are kept at the developers' mailing list dev@argouml.tigris.org that also is available as a discussion forum on this site (at http://argouml.tigris.org/ds/viewForumSummary.do?dsForumId=450). Join the list on the web site and send a mail to linus@tigris.org with a request to be able to post to the list.


Ideas for GSoC 2009 (last edited 2009-04-01 14:21:41 -0700 by thn)