Hardly. Sometimes for software archeology and occasionally to visualise what's in my mind. Not any more for code generation: modern language features took away my need for that.
It's interesting to note that Microsoft has even ditched their Entity Framework visual tooling, and prefer a code-first workflow. UML and ER diagrams were over-sold, and never were as good an idea as they seemed.
UML and ER are useful for refactoring - i.e. gaining understanding of existing systems.
As for design vs code: I do believe that the art of requirements should not be ignored, and that some basic decisions needs to happen early.
One of these are establishing and formalizing a vocabulary. What are these objects? What are their names? Which are their properties? What do your call the relationships between them? What are their actions and interactions?
Another is dataflow - what produces data, what consumes data, what validates data, what discards data?
A third is separation and abstraction - where and how do you do isolation between modules?
Hardly. Sometimes for software archeology and occasionally to visualise what's in my mind. Not any more for code generation: modern language features took away my need for that.
ReplyDeleteI see that UML Modeling is not the most popular feature of Delphi ;)
ReplyDeleteYou are missing the "sometimes" and "rarely" options. Many nos could actually be one of those.
ReplyDeleteAndrea Raimondi you are completely right, I did not think about it :/
ReplyDeleteIt's interesting to note that Microsoft has even ditched their Entity Framework visual tooling, and prefer a code-first workflow. UML and ER diagrams were over-sold, and never were as good an idea as they seemed.
ReplyDeleteUML and ER are useful for refactoring - i.e. gaining understanding of existing systems.
ReplyDeleteAs for design vs code: I do believe that the art of requirements should not be ignored, and that some basic decisions needs to happen early.
One of these are establishing and formalizing a vocabulary. What are these objects? What are their names? Which are their properties? What do your call the relationships between them? What are their actions and interactions?
Another is dataflow - what produces data, what consumes data, what validates data, what discards data?
A third is separation and abstraction - where and how do you do isolation between modules?
Piotr Antoniak I use http://www.modelmakertools.com/modelmaker/index.html - which I think is way better.
ReplyDeleteRoland Kossow, A few years ago I was trying to use it... but I did not like it... Dont remember why.
ReplyDelete