Please be nice and don't modify my writings, but you are welcome to add comments. Thank you!

=== Model interchange (April 12, 2011) ===

I finaly reached a stable state with the UML2 profile support. So I dare to start some model interchange activities based on the 0.33.2 developer release. I sent emails to one of the [http://www.argouml-users.net/index.php?title=Plone Plone] people who plan to support UML2 with the new AGX3. I [http://forum.andromda.org/viewtopic.php?f=29&t=7178 contacted] the [http://www.argouml-users.net/index.php?title=AndroMDA AndroMDA] people who already have UML2 support. And I've set up a ["UML 2.x Model Interchange"] page for the [http://www.omgwiki.org/model-interchange/doku.php MIWG] test cases (thank you Laurent Braud to contributing to it).

(Side note: I'm working on a new module that generates ArgoUML modules, so you can graphically design, generate, and then "just" add some logic to them. These modules can have features of various kinds, e.g. profiles or menu items in the tools menu.)

Let's see how things evolve.

=== A year of... whatever (December 09, 2010) ===

Wait a moment, I've got a blog? *lol*

OK, I'm strongly tempted to delete my last blog entry, but things are like they are. Anyway, what did I during that year of "absence"? Many projects, using ArgoUML a lot, and: trying to get ["UML2, Profiles and XMI"] work in ArgoUML! Argghhhh!!! Lot's of frustration. Progress is there, but veeeeeery slooooowly. As promised, I contacted the eclipse people just to find out that help from a UML2 expert there is as rare as a lottery win. You can see my findings on our ["eUML"] page.

And in userland? Some of the users appear in our forum, with low but constant frequency. And developers? They keep staying away, like in all open source projects
that are not supported (or overtaken?) by companies. After looking at other open source
projects I hereby proclaim: ArgoUML has - though not perfect - the best developer docs+resources!

Btw, I'd like to applause to Bob Tarling here, because he keeps committing to ArgoUML so much and for so many years (not to forget all the other committing people: kudos to them all!).

=== More evangelism please! (October 16, 2009) ===

Damn, the last blog entry is months ago, I gotta write something!

While the last entry was a rant about the (too little) project success, this time I'd like to be more enthusiastic. Let's not always just look on discouraging circumstances, let's act differently! Let's get heard! It's not only important how fast we develop this software, it also important - maybe even more - how much we talk about it! Yes we have a face to the customer, and it has different facets, here are the two most important: the [http://argouml.tigris.org/ project homepage] and the [http://www.argouml-users.net/forum user forum](!). Yes! Not the mailing lists, definitely not. The project homepage is not optimal, but at least we take care that it shows actual information, and whoever tracks it will see our progress. But why don't we utilize the user forum, why why why? Where else should we discuss our daily UML modeling work, if not there? It only proves that we are either not using ArgoUML - or UML at all - for ourselves (which is clearly not the case for me), or that we for some reason don't communicate on it. But we should, or we can't be believed to be experts for UML tooling, which we should be!

And my own todo list? Well, after taking a little break this summer, I'm going to push it a little further: not only actively share my experiences in the user forum, but also show presence in other key forums/mailing list: [http://galaxy.andromda.org/forum/ AndroMDA], [http://plone.org/support/forums/archetypes Plone Archetypes] and, last but not least: [http://eclipse.org/forums/ Eclipse]. I give it more priority than coding. Period.

=== The project and where we are (May 07, 2009) ===

ArgoUML is an open source project, and we make sure that everybody can easily contribute to it. But then, only a small core team of volunteers work on it while we are hopelessly behind the list of essentially needed and user requested changes. The [http://en.wikipedia.org/wiki/ArgoUML ArgoUML entry] in Wikipedia expresses it this way: "ArgoUML development has suffered from lack of manpower". Personally, I sometimes feel frustration about it. The fact is known for so long, that noone seems to want to talk about it anymore. For me it doesn't mean that I stopped thinking about it, so I blog about it.

Open source projects with lack of progress (and/or activity) are not uncommon, in fact most projects are of that type. Successful open source projects are just the top of the iceberg, but they get the most attention of course. ArgoUML unfortunately is more of the first type (regarding progress only, we're active!), but on the other hand it seems to be well known. Inside the team, there is an agreement that we should be more successful, but I think we miserably fail. Even though the core team members are very faithful and the tool has a very robust saving format with good developer support. But: we don't overcome the lack of manpower and the missing of an actively communicating user base.

Why are some open source projects successful and others not? I don't know. I observe that many successful open source projects started with some software written by some company, and it became (partly) open source only later. And if the software is of common interest and (part of) the developers are paid by companies, then there's a chance for it to be a success. Modeling with UML is of common interest, but there's probably no chance for ArgoUML for benefitting from company resources. For companies buy UML tools, they don't invest in their further development, one can guess why. So, the times when someone can post somewhere a message like "hey, I wrote some useful software, wanna join development?" (I'm refering to the Linux success story) are probably over.

ArgoUML needs to find another way to deal with the lack of manpower and the missing of an actively communicating user base. We tried, e.g. by participating in GSoC [http://argouml.tigris.org/gsoc2007/index.html 2007] and [http://argouml.tigris.org/gsoc2008/index.html 2008], also by offering many [http://argouml.tigris.org/support.html support] channels, but that's not enough. We have practically no contact to our user base, there is no community. I believe that with the current state of ArgoUML, we can't achieve much here. The first step is to bring ArgoUML to a certain point of "readyness" with some efficiency. This means to concentrate on some key topics, in my opinion these are: UML2 and Undo. But then this must be followed by further "evangelism" steps, we need good ideas here. My idea is to offer some practical UML knowlegde resources: UML introduction, tutorials, sample projects. If they become referenced, then we'll get some traffic and attention. Others have the idea to integrate with eclipse to get before the eyes of developers. What are your ideas?

We must become the tool of choice for a reasonable large potential user group. (Do we really know which kind of users we aim at?)

. Interesting thoughts Thomas! About where we aim at, I have always thought that each developer has his own agenda. This has also affected the GSoC applications where there was a wide range of unrelated projects done, and this year, the list of suggestion was also very wide. Appearantly, this is not a good way forward because each developer cannot keep enough enthusiasm to get his agenda going. Your solution with working together towards a few goals is the way forward and I think your two focus areas are well chosen. Shall we set up these as goals for the 0.30 (or 1.0) release? /Linus

. Yes! Ah, you already updated the [:Strategic_Planning:plan], let's see the feedback. /thn

=== First UML2 steps (April 07, 2009) ===

I did it! My first code for UML2 support is committed, and I'm crossing fingers that no horde of mad developers run after me. I consider myself a UML2 newbie, though I already had some looks into the [http://www.omg.org/spec/UML/2.2/ UML2 superstructure specification] and read [http://argouml.tigris.org/wiki/Status_of_eUML Bogdan's eUML reports]. But other developers have more or less the same entering difficulties (maybe with the exception of Tom, who was mentoring Bogdan).

What I did? Since my eclipse was [http://argouml.tigris.org/wiki/Setting_up_Eclipse_3 set up] already for ArgoUML, I only had to launch from the existing launch configuration "ArgoUML UML2-EUML debug", and there was UML2 ArgoUML! Creating a class works, but with creating an attribute for it the first problem was already encountered: the default type was not found. It is normally read from the UML profile for standard elements, but the UML1.4 version didn't work of course.

So here was my first quest: get ArgoUML run with an initial UML2.2 standard elements profile. Luckily, creating datatypes/enumerations and saving worked thanks to Bogdan and Tom, so I successfully got my first XMI 2.1 file. Idea: let the profile subsystem load this new internal profile if the model is an UML2 implementation, else the other internal profiles. Eventually it worked, but I had to implement missing model facade methods, mess around with some new {{{TemplateParameter}}} and UML class object code, and change the Profile subsystem a little bit. In the end I found myself having permanently open the UML spec, the eclipse UML2 [http://download.eclipse.org/modeling/mdt/uml2/javadoc/3.0.0/ Javadoc] and both our MDR and eUML model implementation code.

Training mission completed, where's the enemy now, Sergeant?

. I think we should continue with this and work on several different levels. /["linus"]

=== Looking back (April 06, 2009) ===

I wonder if this wiki could be used as a blog, so I give it a try. Oh, by the way: my english is not the best, so I apologize in advance for all the pain that I will cause to the readers.

On Saturday I had a long phone call with Andreas Rückert, we talked about the early days of ArgoUML. I'm a project member since 2001, but he could tell me what happened the years before, when Jason Robbins and others started everything, and when ArgoUML became open source. I also had a look in our [http://www.ohloh.net/p/argouml Ohloh project page] to study the great commit timelines a little bit. So my first contribution was to change the Java notation in the diagrams into UML notation, because ArgoUML should be a general UML modeling tool, not just for Java programmers. I also remember that later in the same year I changed the class compartements to not only be one text area (!!!) for all attributes (or operations), but one text figure for each of them. After this I found a commit with the comment "starting pluggable diagram support", and I can't even remember, because diagramming is really not my area! Funny...

So these were my beginnings, and since then I (try to) concentrate on reverse engineering and code generation. With long intervals of pausing from ArgoUML, I must admit.

. Great that you are back working with ArgoUML. /["linus"]

Thomas Neustupny

Since 2001: Developer in the ArgoUML project.
Since 200x: Subsystem "Carer" for Code Generation/Reverse Engineering
Since 2008: Moderator in the ArgoUML-Users forum
Since 2008: Module developer in the ArgoUML-Java subproject.

...and most important: User of ArgoUML! ;-)

Current Plans

Support for UML 2.2 (with eUML, the eclipse UML2 based model implementation)

Java module: maintenance only

Model interchange with other projects

Module development

Blog

Please be nice and don't modify my writings, but you are welcome to add comments. Thank you!

Model interchange (April 12, 2011)

I finaly reached a stable state with the UML2 profile support. So I dare to start some model interchange activities based on the 0.33.2 developer release. I sent emails to one of the Plone people who plan to support UML2 with the new AGX3. I contacted the AndroMDA people who already have UML2 support. And I've set up a UML 2.x Model Interchange page for the MIWG test cases (thank you Laurent Braud to contributing to it).

(Side note: I'm working on a new module that generates ArgoUML modules, so you can graphically design, generate, and then "just" add some logic to them. These modules can have features of various kinds, e.g. profiles or menu items in the tools menu.)

Let's see how things evolve.

A year of... whatever (December 09, 2010)

Wait a moment, I've got a blog? *lol*

OK, I'm strongly tempted to delete my last blog entry, but things are like they are. Anyway, what did I during that year of "absence"? Many projects, using ArgoUML a lot, and: trying to get UML2, Profiles and XMI work in ArgoUML! Argghhhh!!! Lot's of frustration. Progress is there, but veeeeeery slooooowly. As promised, I contacted the eclipse people just to find out that help from a UML2 expert there is as rare as a lottery win. You can see my findings on our eUML page.

And in userland? Some of the users appear in our forum, with low but constant frequency. And developers? They keep staying away, like in all open source projects that are not supported (or overtaken?) by companies. After looking at other open source projects I hereby proclaim: ArgoUML has - though not perfect - the best developer docs+resources!

Btw, I'd like to applause to Bob Tarling here, because he keeps committing to ArgoUML so much and for so many years (not to forget all the other committing people: kudos to them all!).

More evangelism please! (October 16, 2009)

Damn, the last blog entry is months ago, I gotta write something!

While the last entry was a rant about the (too little) project success, this time I'd like to be more enthusiastic. Let's not always just look on discouraging circumstances, let's act differently! Let's get heard! It's not only important how fast we develop this software, it also important - maybe even more - how much we talk about it! Yes we have a face to the customer, and it has different facets, here are the two most important: the project homepage and the user forum(!). Yes! Not the mailing lists, definitely not. The project homepage is not optimal, but at least we take care that it shows actual information, and whoever tracks it will see our progress. But why don't we utilize the user forum, why why why? Where else should we discuss our daily UML modeling work, if not there? It only proves that we are either not using ArgoUML - or UML at all - for ourselves (which is clearly not the case for me), or that we for some reason don't communicate on it. But we should, or we can't be believed to be experts for UML tooling, which we should be!

And my own todo list? Well, after taking a little break this summer, I'm going to push it a little further: not only actively share my experiences in the user forum, but also show presence in other key forums/mailing list: AndroMDA, Plone Archetypes and, last but not least: Eclipse. I give it more priority than coding. Period.

The project and where we are (May 07, 2009)

ArgoUML is an open source project, and we make sure that everybody can easily contribute to it. But then, only a small core team of volunteers work on it while we are hopelessly behind the list of essentially needed and user requested changes. The ArgoUML entry in Wikipedia expresses it this way: "ArgoUML development has suffered from lack of manpower". Personally, I sometimes feel frustration about it. The fact is known for so long, that noone seems to want to talk about it anymore. For me it doesn't mean that I stopped thinking about it, so I blog about it.

Open source projects with lack of progress (and/or activity) are not uncommon, in fact most projects are of that type. Successful open source projects are just the top of the iceberg, but they get the most attention of course. ArgoUML unfortunately is more of the first type (regarding progress only, we're active!), but on the other hand it seems to be well known. Inside the team, there is an agreement that we should be more successful, but I think we miserably fail. Even though the core team members are very faithful and the tool has a very robust saving format with good developer support. But: we don't overcome the lack of manpower and the missing of an actively communicating user base.

Why are some open source projects successful and others not? I don't know. I observe that many successful open source projects started with some software written by some company, and it became (partly) open source only later. And if the software is of common interest and (part of) the developers are paid by companies, then there's a chance for it to be a success. Modeling with UML is of common interest, but there's probably no chance for ArgoUML for benefitting from company resources. For companies buy UML tools, they don't invest in their further development, one can guess why. So, the times when someone can post somewhere a message like "hey, I wrote some useful software, wanna join development?" (I'm refering to the Linux success story) are probably over.

ArgoUML needs to find another way to deal with the lack of manpower and the missing of an actively communicating user base. We tried, e.g. by participating in GSoC 2007 and 2008, also by offering many support channels, but that's not enough. We have practically no contact to our user base, there is no community. I believe that with the current state of ArgoUML, we can't achieve much here. The first step is to bring ArgoUML to a certain point of "readyness" with some efficiency. This means to concentrate on some key topics, in my opinion these are: UML2 and Undo. But then this must be followed by further "evangelism" steps, we need good ideas here. My idea is to offer some practical UML knowlegde resources: UML introduction, tutorials, sample projects. If they become referenced, then we'll get some traffic and attention. Others have the idea to integrate with eclipse to get before the eyes of developers. What are your ideas?

We must become the tool of choice for a reasonable large potential user group. (Do we really know which kind of users we aim at?)

Interesting thoughts Thomas! About where we aim at, I have always thought that each developer has his own agenda. This has also affected the GSoC applications where there was a wide range of unrelated projects done, and this year, the list of suggestion was also very wide. Appearantly, this is not a good way forward because each developer cannot keep enough enthusiasm to get his agenda going. Your solution with working together towards a few goals is the way forward and I think your two focus areas are well chosen. Shall we set up these as goals for the 0.30 (or 1.0) release? /Linus

First UML2 steps (April 07, 2009)

I did it! My first code for UML2 support is committed, and I'm crossing fingers that no horde of mad developers run after me. I consider myself a UML2 newbie, though I already had some looks into the UML2 superstructure specification and read Bogdan's eUML reports. But other developers have more or less the same entering difficulties (maybe with the exception of Tom, who was mentoring Bogdan).

What I did? Since my eclipse was set up already for ArgoUML, I only had to launch from the existing launch configuration "ArgoUML UML2-EUML debug", and there was UML2 ArgoUML! Creating a class works, but with creating an attribute for it the first problem was already encountered: the default type was not found. It is normally read from the UML profile for standard elements, but the UML1.4 version didn't work of course.

So here was my first quest: get ArgoUML run with an initial UML2.2 standard elements profile. Luckily, creating datatypes/enumerations and saving worked thanks to Bogdan and Tom, so I successfully got my first XMI 2.1 file. Idea: let the profile subsystem load this new internal profile if the model is an UML2 implementation, else the other internal profiles. Eventually it worked, but I had to implement missing model facade methods, mess around with some new TemplateParameter and UML class object code, and change the Profile subsystem a little bit. In the end I found myself having permanently open the UML spec, the eclipse UML2 Javadoc and both our MDR and eUML model implementation code.

Training mission completed, where's the enemy now, Sergeant?

I think we should continue with this and work on several different levels. /linus

Looking back (April 06, 2009)

I wonder if this wiki could be used as a blog, so I give it a try. Oh, by the way: my english is not the best, so I apologize in advance for all the pain that I will cause to the readers.

On Saturday I had a long phone call with Andreas Rückert, we talked about the early days of ArgoUML. I'm a project member since 2001, but he could tell me what happened the years before, when Jason Robbins and others started everything, and when ArgoUML became open source. I also had a look in our Ohloh project page to study the great commit timelines a little bit. So my first contribution was to change the Java notation in the diagrams into UML notation, because ArgoUML should be a general UML modeling tool, not just for Java programmers. I also remember that later in the same year I changed the class compartements to not only be one text area (!!!) for all attributes (or operations), but one text figure for each of them. After this I found a commit with the comment "starting pluggable diagram support", and I can't even remember, because diagramming is really not my area! Funny...

So these were my beginnings, and since then I (try to) concentrate on reverse engineering and code generation. With long intervals of pausing from ArgoUML, I must admit.