The ArgoUML organization will take part in Google Summer of Code 2008.
This page include a list of project suggestions and some general tips on what we look for in a student, what projects we want to see, how you should fill in your applications, and some quick references on the projects.
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.
We would like to integrate the Eclipse module loader in ArgoUML.
We have had a long list of problems with the module loader and previously reimplemented it once already. The Eclipse project is, on the other hand, very experienced and successful with their module loader/plug-in handler.
We assume the following challenges:
Developer Contact: Linus Tolke
Description:
eUML is a model subsystem in ArgoUML, it's the alternative to the MDR model subsystem (the one used currently by ArgoUML, see the ArgoUML architecture in the Cookbook). eUML is implemented with the "Eclipse UML2" project and in part using the Eclipse Modeling Framework (EMF) project, and supports UML 2.x while the MDR model is implemented with the Metadata Repository (MDR) Project and supports UML 1.4. The eUML model and the MDR model are both implementing the ArgoUML interfaces from org.argouml.model.
The eUML model is not finished:
Improvement suggestions:
Incrementally implement and improve the eUML model using the Eclipse UML2 and EMF projects. Incrementally means that the implemented stuff from the model subsystem should be done to implement some high level functionality in ArgoUML, eg: because you want to implement the possibility to create some state in an activity diagram you'll implement what it requires in the model subsystem, then you could test what you've done by testing that specific functionality in ArgoUML.
Requirements:
More information:
Developer Contact: Bogdan Pistol
UML 2[1] defines several compliance levels for uml-tools. To fulfill the compliance level 0, mainly classes and class-diagrams of uml 2.x must be supported. these will be introduced to argouml by integrating a meta-model-repository: amof2[3].
amof2 will be used to load uml's metamodel and then act as the model repository for ArgoUML. it stores the instances of the metamodel the user creates(classes, associations, etc).
to be able to handle any mof-compliant metamodel and make it available to ArgoUML would raise many possibilities for creating and using domain-specific languages[4]. also it can be the base for introducing UML Diagram Interchange[5] to ArgoUML, because it's also a mof-compliant specification.
Make the Executable UML profile work in ArgoUML.
There are several different aspects of this. The most important ones are thought to be:
Developer Contact: Linus Tolke
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:
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!
Developer contact (at least for most subsystems): Michiel van der Wulp.
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.
Developer contact: Michiel van der Wulp.
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 support yet the modeling of parameterized classes and this is causing it to be less useful for modeling in these languages.
This project would 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).
More details on suggestion:
CoreFactory
and CoreHelper
of the package org.argouml.model
.
Developer Contact: Luís Sérgio Oliveira (user euluis in tigris)
Description:
ArgoEclipse is a project that integrates ArgoUML within the
Eclipse IDE.
ArgoUML's main panels (implemented in Swing): the explorer pane (top left), the diagram pane (top right),
the to do list pane (bottom left) and the properties pane (bottom right) are integrated in Eclipse's
Standard Widget Toolkit (SWT) and included in the Eclipse views, editors and dialogs
using the SWT_AWT
bridge (that makes possible Swing integration into SWT).
The Eclipse IDE can host ArgoEclipse as its plugin along with other plugins, but ArgoEclipse can also be used as a standalone
Rich Client Product (RCP) application.
ArgoEclipse uses mainly ArgoUML's Swing code as is and sparsely reimplements some Swing dialogs using SWT.
Improvement suggestions:
The suggestions marked with (*) are harder to accomplish.
Requirements:
More information:
Developer Contact: Bogdan Pistol
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.
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.
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:
Here is a list of some additional information that you will likely find useful:
This page was last updated on $Date$.
Back to ArgoUML Home