Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!nuzba.szn.dk!pnx.dk!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Robert Klemme Newsgroups: comp.lang.java.programmer Subject: Re: proper use of .java files (layout) Date: Thu, 27 Dec 2012 18:20:17 +0100 Lines: 47 Message-ID: References: <20fa5c05-6fcc-47ed-9e80-a44975887928@googlegroups.com> <-7qdnc2dgM62l0bNnZ2dnUVZ_tKdnZ2d@earthlink.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net DTWh2bFyAYPz+dHVz2y6pAVYL6ROrlVLxwGSSqxuhbqY6iTJlvihZhlK21ERyk09o= Cancel-Lock: sha1:bhLADzvy/By9nwCh8t46iQNRDh0= User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:17.0) Gecko/17.0 Thunderbird/17.0 In-Reply-To: Xref: csiph.com comp.lang.java.programmer:20728 On 27.12.2012 17:46, Patricia Shanahan wrote: > The flow charts were longer than the assembly language code, no more > readable, and contained a proper subset of the information in the code, > including its comments, so they were really useless. They gave no > architectural or design insight. They existed only in order to be able > to say we had a flow chart. Neat! ;-) > Round trip UML smells of that situation. Yes. I believe the reason for that is that diagram != diagram: a diagram generated from some input can only apply standard layout rules. But a diagram created by a human will have deliberate layout and a human will also likely refrain from putting all classes of a single package (or even a complete source tree) in a single diagram. And in order to update a diagram from source code you always need additional data - either the old diagram or some form of meta data which describes placement. For things created in code you would still get default placement and a human would have to edit the diagram anyway. And if the roundtrip tool would also to need to handle renaming of entities like classes and interfaces (a common operation during refactoring) there would also need to be support from the IDE to record these types of changes and update diagrams properly. Then we still haven't covered how a project with a few thousand classes is handled efficiently (not in terms of CPU cycles but in terms of diagrams which provide benefit to the reader). Plenty of years ago I got to evaluate the first version of a roundtrip UML tool which supported sequence diagrams (as representations of methods). I create a sequence diagram with two method invocations both of which returned String. The code didn't compile. It turned out that both variables had the same name. I couldn't believe they did not think of that situation when I stumbled across this after five minutes. Well, my company didn't by the tool then. :-) Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/