2010-09-09

Sequence Diagram: DSL or not DSL ?

I had to produce some UML Sequence Diagram and I tested some Graphical and command line tools.
With UML tools there are 3 possibilities (sometimes mixed in a single application):

  • Draw your diagram (UMLet, ArgoUML, Violet ...)
  • Reverse engineer your code. It can work for Class Diagram, but the result for Sequence Diagram is generally unusable. (ArgoUML ...)
  • Describe your diagram in a DSL (PlantUML, UMLGraph, ...)
There is no "Best Option" since it depends on your use case:
  • for quickly puting an idea on paper, I like UMLet very much for Class, Component ... But I have to admit that VioletUML is way better for Sequences ! 
  • When I want to keep my diagram in sync with the code and documentation. The DSL/Reverse Engineering approach allow me to put the diagram description in the JavaDoc. The setup in the Maven POM file (with UMLGraph, should be possible with PlantUML too).
  • I never have the case where a DSL would be that useful. But you just got all the benefits of text files obviously: diff, grep ... and some tools allow you to embed your description in Wiki, LaTex, Word ... (PlantUML).


I tested several DSL:

I have to admit that I am a bit deceived with the current state of DSL for Sequence Diagram.

  • They are not that obvious. The easiest is "Client -> Server : HTTP request" with PlantUML. But with SDEdit you would read: "Client:Server.HTTP request" !?
  • They could do more (like automatically activating the lifeline upon message reception). With PlantUML you pollute your description with numerous "Activate Server" ; "Deactivate Client" ...
  • They quickly becomes hard to read and maintain. Two main problems:
    • If you send a message at the beginning and got the response at the end. The message/response link is lost in the distance introduced by all the dialogs in between. You can use indentation, but it is up to you, not a DSL feature.
    • When you have parallel executions or interlinked messages, even the indentation won't be a solution. I don't even see how it could be solved.
  • You really need to see the resulting diagram as you type, if you don't want to end with a lot of rework.
  • The tools I used didn't show you the result "out of the box". You have to setup some schell scripts or other tools. (SDEdit being the exception.)
I think that it is not an inherent problem with DSL. But we didn't find a suitable DSL for Sequence Diagrams and an intelligent application that would really understand Sequence Diagram, and not just describe lines with labels. This would introduce more constraints. There are certainly things that we wouldn't be able to describe as we want, but it should solve 80% of the cases hopefully.

2010-09-08

Mashup Integration SOA

The first 40 min are really worth listening. He cleans up a lot of confusion about mashup, integration, SOA
and the generated buzz fog.

en référence à : InfoQ: Enterprise Mashups: Why Do I Care? (afficher sur Google Sidewiki)

2010-09-02

Differences between distributed databases

Distributed Databases (AKA NoSQL) exist in very different flavor. This article explains and details their architectures and features.
Now, it is up to you to see which one fits your use case.

in reference to: Survey distributed databases - CloudDBPedia (view on Google Sidewiki)

2010-08-27

SOAP client with Jax-WS and Maven

Concise and useful information with code example on how to create a SOAP client with Jax-WS and Maven.

There is a little obvious error in a code sample with "dependencies" but since it is obvious it can be resolved easily.

I like when one references the material used to produce a post.

in reference to: hasCode.com » Blog Archive » Create a SOAP client using the JAX-WS Maven Plugin (view on Google Sidewiki)

2010-04-04

2 books about Scala

http://programmingscala.com/ by Dean Wampler & Alex Payne September, 2009.
http://www.pragprog.com/titles/vsscala/programming-scala  by Venkat Subramaniam, 250 pages, Jul 2009.

I had the chance to read two books about Scala. Both do a very good job at getting you up to speed with this new language.
  
I won't try to convince you to learn Scala, just do a quick research.  
  • You will find that it has many interesting ideas worth learning. (Even if you don't end up using Scala). Functional Programing, closures, DSL, Strong and powerful type system, Actors ...
  • There may not be a next Java, but whatever will come, it will certainly looks like Scala or part of it.
  • You can start to use it right now. Either for Test (like JUnit or for Behavior tests) or to integrate with your existing Java code.

Now which book to choose ? If you can, read Venkat first and then Dean. The first is quicker and more didactic. The second is more in depth and detailed.

If you have to choose one, how could I help you ?
  • Venkat examples are really well though and make the point cristal clear.
  • Dean goes step by step detailing all part of the language. It can certainly be kept as a reference book. But it requires a certain dose of concentration.
  • Venkat's strength is to make the reading very enjoyable. The examples "speaks" to you. He shows the power and the sweet spots. How it will help and benefits you. He sells you Scala on every pages.

With so many things popping up from the net, I almost stopped reading books for years. Now I feel like I loosed my time, coping with tons of news. A book is a much more enjoyable and relaxing experience while at the same time brings you lots of knowledge. 

Pragmatic Thinking and Learning: Refactor Your Wetware

"Pragmatic Thinking and Learning: Refactor Your Wetware" by Andy Hunt (288 pages, Sep 2008)

This is pure genius: a must read ! re-read and apply all the advices ! Just do it !

As Socrate used to say: "NOSCE TE IPSUM" (Know yourself). With this book, you will know more about your brain and how you can use this knowledge to improve.

It is really fun to read, as well as concrete and practical. He doesn't just expose the theory: he told the story of experimental studies demonstrating his point.

2010-04-02

Career

The most beneficial thing to my career has been to practice sport on a regular basis. Way more important than reading news about technology ! It improves little by little.
The most detrimental is procrastination. It strikes unexpectedly and it is harmful in very different ways. Once, my back hurts so bad that I was stuck on my couch for 2 month. 

Festival de la Cooperative OASIS - 2026

 https://Cooperative-OASIS.org/ Abonnement la revue Passerelle Eco    Papier . Mais les annonces sont dispo:  Revue trimestrielle de l’ Ecov...