Login | Register
My pages Projects Community openCollabNet

JobJar: List of much needed contributions

General List of Proposed Contributions

Diagrams
  • Implement a graph layout algorithm that takes into account the conventions of UML diagrams.
  • Implement arc routing that users find flexible and convient. This could be contributed to the GEF project and used in ArgoUML.
  • Implement printing of wall-sized diagram posters or design booklets. Contribute the generic code to the GEF project and use it in ArgoUML.
  • Save diagrams according to the Diagram Interchange specification.
UML Compliance
  • Implement the UML artifacts that ArgoUML still does not support.
  • Implement the 'lollipop' notation for Interfaces.
  • Add new UML features.
Code Generation and Reverse Engineering
  • Implement code generation for an additional programming language like: Ruby, Ada, etc.
  • Implement support for generating Java code that follows JavaBeans conventions.
  • Implement code generation for UML state machine models.
  • Generate assert() statements to check OCL constraints on a UML model at run-time.
  • Make the code generation work together with the reverse engineering for working round-trip engineering. Think MDA!
  • Implement J2EE reverse engineering, from an Enterprise Application (.ear file), from configuration files (Apache, or App Server).
User Interface
  • Implement table views (as a complement to the tree view and diagram view).
  • Complete the work to make ArgoUML work within Eclipse as a plugin.
Documentation
  • Write additions to the User's manual for ArgoUML, focus on a specific task or audience.
  • Write additions to the Developer's Cookbook to help new people contribute to the ArgoUML project.
Object Constraint Language
  • Enhance ArgoUML's OCL evaluator.
  • Add features to make writing and evaluating constraints easier.
Cognitive Support
  • Implement some more of the features suggested by Jason Robbins in his dissertation.
  • Design and implement completely new tools to do Cognitive Support for Design.
  • Complete the set of critics to include one for each and every Well Formedness Rule in the UML standard and document them.
Quality assurance and Performance
  • Implement JUnit test cases. Focus on a specific class or group of classes. Code generation needs this desperately.
  • Measure what are the limits of ArgoUML's performance with large models.
  • Use a Memory profiler, or Tracer to detect inefficient algorithms and fix them.

Assume a responsibility in the project

If you feel that you have time to assume a responsibility in the ArgoUML project, contact the Project leader (Linus Tolke) and discuss that.

Responsibilities are different from the other contributions here in that they are not tiny projects that can be completed. Instead they go on for ever.

Special Note to Students

The Google Summer of Code pages 2006, 2007, and 2008 are now separate.

Each task could be made into an undergraduate term project or part of a masters degree project. Working on a free, open source software project such as ArgoUML can make your school project much more impressive, satisfying, and clarify potential benefits.

  • Why start with nothing if you could build on the work of many students and professionals?
  • Why end your term project with just a grade when you could make a visible difference?

The point of a term project is to get experience working on a "real" project. Using ArgoUML will give you experience with over 200,000 lines of Java code that implements a real application.

If you contribute your work back to the ArgoUML project, all ArgoUML users can eventually benefit from it and your work could affect the Software Development tools for thousands of fellow developers.

Suggest a new feature!

Contribute a new feature idea by entering it in Issuezilla as a feature request.

You can also help in investigating and detailing your suggested feature or features suggested by others.

Why should you do this?

ArgoUML depends on volunteers to do everything in the project. If there are no volunteers contributing work, nothing happens.

The more work that is contributed, the quicker ArgoUML will be developed and the better the end result will be.

The status of this page

This page is (hopefully) getting out of date quickly when these contributions are implemented. It can also get out of date when new features are suggested.

If you don't want to work with any of these contributions you can always search through the feature request list (in IssueZilla) that may contain a feature that you want to work with. Browse the full list of issues directly in Issuezilla. You can also work with any other feature that you like.

This page was last updated on $Date: 2008-12-02 06:25:16 -0800 (Tue, 02 Dec 2008) $.


Back to ArgoUML Home