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?

 

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This