1.3. Copy/Paste

1.4. Parameterized classes

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.

1.11. XML based PropPanels

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!

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.