Hacker News new | past | comments | ask | show | jobs | submit login

I used to think UML was a cute, if overused, joke. Then I found out companies were serious about it. Recently I heard that my friend's gf was going for her Level 2 certification in UML. Not Level 1 you see, Level 2. Her UML skillz are literally going to go to the next level!

Meanwhile I still feel that the very idea UML can be useful, at all, is utterly perverse. The whole idea stinks to me.




The real power of UML is harnessed when the model actually generates the code. When that's a part of the process, then the model IS the code, and the model also becomes documentation that's guaranteed to be accurate up-to-date.

This also gives you the great benefit of mandating a comprehensive design phase. Once a model is complete (whatever that means in a given project) and reviewed, the rest of the coding is often trivial.

I also find that the mere act of learning UML is a tremendous education in architecture, even for developers who are naturally good architects.


I have no idea what you are talking about, you may as well be speaking Klingon. Hearing phrases like "This also gives you the great benefit of mandating a comprehensive design phase" makes me want to kill myself. I advise you to quit your job.


Allow me to rephrase:

UML modeling tools will generate code that fulfills your model. You'll get more-or-less complete headers, with your objects and method prototypes, and you'll get implementation stubs. If your design is sound, then the process of filling in the guts of the implementation can be quick and straightforward (ideally, but I find this usually pans out in practice).

If your project requires code to come from UML, then any architectural changes are made in the UML tool, not directly in code. This means that the model is always accurate. In my company, the models are the primary documentation; if you need to know how a module works, you can look at the model and see every object, attribute, and relationship, both within the module and to other pieces of the project. And unlike every other piece of documentation I have ever seen, these models are guaranteed to be accurate, because they literally write the code.

A process like this requires you to think -- a lot -- about the design of your program before you even open a text editor or IDE. That's what I mean by a mandatory design phase.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: