Login | Register
My pages Projects Community openCollabNet

ArgoUML in Google's Summer Of Code 2007

The ArgoUML project has been approved for participation in its second Google Summer of Code during 2007.

This page include a list of project suggestions and some general tips on what we look for in a student such as what we look for in a student, what projects we are looking for, and some quick references on the projects.

Project Suggestions

Don't let this list limit your choices. We are happy to consider other projects! See the general notes on what projects we are looking for. For a list of the top vote getting requests in the Issue database, use this query.

Support Linked Sub-Models

Enhance ArgoUML to support creating, reading, and maintaining links between sub-models stored in separate XMI files and/or ArgoUML project files.

This is the second most requested enhancement in ArgoUML. See this issue for more discusion. Functionality is required to create links between pieces of a model, split a single model into pieces, merge the pieces back together, etc.

Developer Contact: Tom Morris

Improve Profile Support

Improve support of modeling profiles in ArgoUML to allow more flexibility, better reuse, and an improved user experience.

ArgoUML currently has only very limited support for user selectable profiles. Modeling profiles are useful to provide a standard set of Stereotypes, Tag Definitions, etc which are tailored to a particular modeling environment. An example is the AndroMDA profile which is used when creating models targeted for that MDA framework.

Currently the standard ArgoUML profile is a mix of UML 1.4 standard elements and Java elements. These should really be separated so that the user can select either or both. Additionally the current implementation uses a copy-on-reference strategy whereby model elements are copied from the profile into the user model, losing all reference back to the providing profile. Ideally the external link capability described in the project suggestion above should be used to both maintain a reference to the profile and allow profiles to be created which are composed of other sub-profiles (e.g. UML 1.4 + Java + project specific profile or UML 1.4 + C#).

Developer Contact: Tom Morris

Improve the Sequence Diagrams

The sequence diagrams in ArgoUML are in need of some work.

What we would like is sequence diagrams that:

  • Work well for common tasks
  • Allow conversion to/from collaboration diagrams
  • Are supported for reverse engineering and/or code generation (this may be a big enough task to be project in its own right)
  • ...?

Developer who knows more about this: Bob Tarling

Handling of UML Profiles

UML Profiles is the foundation for extending UML. There is initiatives to formalize their definition, there are profiles that are implemented in other tools without a formal definition.

What we would like is code that allows ArgoUML to:

  • load UML profiles and apply them to the work.
  • include the most important existing UML profiles (SysML, BPM, ...).

This may be one or two projects.

Volunteering mentors for this: Linus Tolke.

Create "Critics" for all UML well-formedness rules

Critics are ArgoUML's system of warnings, i.e. when you break a rule of UML, then a warning will be generated, much like warnings and errors used for source code correctness and style.

The UML contains the so-called "Well-formedness rules" (WFR), written in OCL, which specify constraints to the creation of model-elements.

ArgoUML currently contains an outdated set of critics, from the days we supported UML 1.3. These need to be updated to the UML 1.4 standard, and completed.

Volunteering mentors for this: Michiel van der Wulp.

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 subsystem 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
  • CodeGeneration and ReverseEngineering
  • Collaboration Diagram
  • Cpp module
  • Critics
  • Csharp module
  • Deployment Diagram
  • Diagrams
  • Explorer
  • GUI
  • Model
  • Model/MDR
  • Module loader
  • Notation
  • OCL and Constraints
  • Other
  • Persistence
  • PHP module
  • Property Panels
  • 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 usefull to solve on its own. No pressure for deadlines, no disappointment if a project remains unfinished!

Volunteering mentors for this (at least for most subsystems): Michiel van der Wulp.

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.

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.

Quick intro of general information in the project

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.

This page was last updated on $Date: 2007-03-26 10:16:53 -0700 (Mon, 26 Mar 2007) $.


Back to ArgoUML Home