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.
- Project ideas
- Multiple Configuration Items within a model
- Finish the manual label adjustment
- Parameterized classes
- UML 2.0 / euml
- Eclipse RCP
- Settings API for code generators
- From Java code to Sequence Diagrams
- Unit Testing
- Tool chain integration for automation
- XML based PropPanels
- Improve a subsystem of your choice by solving existing issues
- The Students we are looking for
- The projects we are looking for
- How to fill in your application
- Quick intro of general information in the project
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
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
- Csharp module
- Deployment Diagram
- OCL and Constraints
- 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).
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)
- 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 email@example.com 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 firstname.lastname@example.org with a request to be able to post to the list.