Up to 250$ for creating the UML class diagram of an open source project

First time I see an offer at freelance.com to reverse engineer a Java open source project.

More specifically, the project is about creating a UML class diagram for the Metawidget open source project (Metawidget is a “smart User Interface widget that populates itself, at runtime, with UI components to match the properties of your business objects”). And the budget is not bad (up to 250$), specially compared with what (some) programmers offer to do for just 5$ :-)

Most of the work could be done automatically using a reverse engineering tool (as our MoDisco framework ) but the project has some requirements that still need a manual intervention like:

  • Get rid of utils classes
  • Get rid of unit test/example classes
  • Colour and package the classes according to their “subdomain”
  • Show them with a nice layout

In fact some of these could be good feature requests for next versions of reverse engineering tools. And the first three ones are related to what I think should be the next step for reverse engineering tools: to provide a conceptual view of the project and not just a design one. To me, a direct UML representation of all Java classes (i.e. a one-to-one relationship) is too detailed to be useful in most scenarios since it contains all auxiliary classes created for implementation-specific purposes that do not help to understand the project and its scope.

I´d like to see these tools offering a second reverse engineering level able to generate an analysis/conceptual view of the source code where all design decisions (i.e. normalization decisions, design patterns,…) have been “deapplied” and only the classes representing domain concepts at a high-abstraction level remain. Is it too much to ask?

If you enjoyed this post you can subscribe to this Software Modeling blog and/or follow me on twitter or through the portal’s mailing list . AND if you really liked it help me pass it ON TO others by bookmarking AND sharing the post USING the links below:

4 Responses to Up to 250$ for creating the UML class diagram of an open source project

  1. Angelo says:

    Fun… would be interesting if things LIKE this could be integrated WITH UML tools OR other modeling tools WHEN it comes TO reverse engineering:

    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.76.5772&rep=rep1&TYPE=pdf

  2. lwriemen says:

    The problem with reversing from a 3GL (C, Java, etc.) to an OOA model is that there is a one to many relationship between the OOA model elements and the possible implementations in a single 3GL. It is comparable to trying to reverse engineer assembly into 3GL.
    If one were to take the time to reverse “color” the 3GL implementation, one would have spent the time and gained the knowledge to create the OOA model without the 3GL, and one would have probably found enough errors and omissions in the 3GL implementation to warrant building a new OOA model, which could then be generated into code.

  3. rafael says:

    That is the same point I made in this post a while ago:

    http://abstratt.com/blog/2009/05/03/on-code-being-model

    “Another unfortunate conclusion people often extrapolate from the mantra is that if code is model, model is code, and thus it should always be possible to translate between them in both directions (round-trip engineering). Round-trip engineering goes against the very essence of model-driven development, as source code often loses important information that can only exist in higher level models. The only reason people need RTE is because they use models to start a design and generate code, but then they switch to evolving and maintaining the application by directly manipulating the generated code. That is a big no-no in true model-driven development – it implies models are not precise or complete enough for full code generation.”

    One of the readers made the insightful point of evoking the “central dogma of molecular biology”, likening model to [D|R]NA, and code to protein:

    http://en.wikipedia.org/wiki/Central_dogma_of_molecular_biology

    “‘The central dogma OF molecular biology deals WITH the detailed residue-by-residue transfer OF sequential information. It states that information cannot be transferred back FROM protein TO either protein OR nucleic acid.’

    In other words, ‘once information gets INTO protein, it can’t flow back to nucleic acid.’”

  4. Anonymous says:

    Hi,
    Hardly waiting tools offering this second analysis/conceptual view !
    Icing on the cake would be some kind of zoom in/out navigation.

    Bests

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress
More in reverse, UML
Experts: UML is active, but the buzz is lost (on SD times)
Complaint about my code-generation strategy to implement many-to-many associations in relational databases
MoDisco featured at InfoQ
Close