Print Story Oops I did it again
Diary
By Herring (Thu Jan 25, 2007 at 01:19:48 AM EST) stuff, things (all tags)
I played with your stuff, got lost in the game


Bah. I was checking some reference data in the DB and noticed that one of the columns was set as integer when it should've been 2 decimal places for currency. So I raised it as a defect. Yesterday, I get embroiled in a massive discussion as to how to test that it's been fixed - apparently it's my responsibility because I reported it. Apparently looking at the database isn't good enough. Sarcastically, I suggested to the test manager that he use the original test plan for this functionality (knowing full well there isn't one). Another example of no good deed goes unpunished.

It's snowing again.

Stepdaughter's guitar playing is really coming along now with these lessons. And she's actually practising.

I hate Rational Rose. Any opinions anyone on alternatives? Sparx Enterprise Architect looks very good for the money. And it supports C# round-trip engineering - which could be handy.

It's stopped snowing.

I've just spotted another bug. Am I going to report it? Am I bollocks.

Looks like the government might actually stand up to the church in this adoption agency business. Good.

Time to pretend to work.

< 23:32 | BBC White season: 'Rivers of Blood' >
Oops I did it again | 30 comments (30 topical, 0 hidden)
Adoption business by R Mutt (4.00 / 5) #1 Thu Jan 25, 2007 at 01:49:27 AM EST
Actually this whole government-by-trial-balloon thing drives me fucking insane.

They keep doing it. They're not sure how unpopular something's going to be, so they leak a little plan to the media, see how much fuss and ranting the columnists do, then make the decision based on that.

Save all the fuss. Just phone up Murdoch and ask what he wants the policy to be.

I don't know... by martingale (2.00 / 0) #3 Thu Jan 25, 2007 at 01:55:40 AM EST
Seems a bit expensive in overseas telephone charges. Can't they just give him a seat at the cabinet table, and maybe a granny flat at number 12 or 13 so he's close when they need him?
--
$E(X_t|F_s) = X_s,\quad t > s$
[ Parent ]
Aye by Herring (2.00 / 0) #8 Thu Jan 25, 2007 at 02:13:49 AM EST
I'm half waiting for the announcement that they're subbing out the whole adoption service to Crapita under a £25bn contract.

You can't inspire people with facts
- Small Gods

[ Parent ]
An ideal offshoring opportunity if you ask me... by Dr H0ffm4n (2.00 / 0) #26 Mon Jan 29, 2007 at 04:36:23 AM EST
Send 'em all to Eastern Europe.

[ Parent ]
bah by martingale (2.00 / 0) #2 Thu Jan 25, 2007 at 01:51:45 AM EST
You know what they ought to do with those round trip designer engineering tools? Threaded p-code! They could precompile the code into a binary language so that as soon as you make a change in some diagram, the p-code is immediately byte recompiled behind the scenes, and you can press F5 to run the app at any moment without build delays. With threaded p-code, you could also have your diagram layouts reformatted on the fly into a pleasing form with capital letters for all the important keywords. Then you could even save your source code in combination with the diagrams in compressed form to speed up initial loading within the designer IDE.
--
$E(X_t|F_s) = X_s,\quad t > s$
Round trip by Herring (4.00 / 1) #5 Thu Jan 25, 2007 at 02:00:48 AM EST
I'm not a huge fan to be honest. I am sceptical about how much design information is conveyed by having every pissy little helper function, get/set methods etc. on the UML diagram.

Reverse engineering would be useful at this point though. I have had a few situations where I go to the coders with a design enhancement and they turn round and say "oh, but we didn't implement it like that". I know I am largely wasting my time being here, but I don't like to be told so.

No, the reverse engineering requirement came from a radical idea of mine. Rather than jsut passing stuff over anaylst->designer->coder, how about feeding back to check that the design corresponds to the analysis and the code to the design?

You can't inspire people with facts
- Small Gods

[ Parent ]
sounds hard by martingale (2.00 / 0) #7 Thu Jan 25, 2007 at 02:13:44 AM EST
Isn't what you're thinking of equivalent to having a machine read and understand the code, though? You either constrain the coders to something a machine can understand, or you have to do the painful thing and read the source code yourself and summarize it.
--
$E(X_t|F_s) = X_s,\quad t > s$
[ Parent ]
Hmm by Herring (2.00 / 0) #9 Thu Jan 25, 2007 at 02:22:39 AM EST
Reverse engineering tools have been around a while and are reasonably good. Most of them can understand:

class A
{
  Vector<B> b_list;
...

means that A aggregates zero or more B's.

Also, "machine understanding the code", well, isn't that the point of code? Most compilers can do it (maybe not VB).

You can't inspire people with facts
- Small Gods

[ Parent ]
not really what I'm saying by martingale (2.00 / 0) #10 Thu Jan 25, 2007 at 02:40:44 AM EST
Does a reverse engineering tool understand Duff's device? What about template fu?

My point is that if you want a machine to reverse engineer things like class A { Vector<B> b_list; ..., then you have to restrict yourself to a subset of the language that is sufficiently straightforward that the machine can decipher it. That's what you did when you replied, you gave me a lowest common denominator example so that you'd be sure I'd understand it.

So it comes down to saying that coders must code using a small number of well defined constructs, so that the reverse engineering tool will properly translate those into diagrams, back into code, etc. But then you don't really need the coders, if they're going to produce well defined elements and you'll design how those elements combine, you could just have a next generation IDE which has those elements ready to be combined by the designer.
--
$E(X_t|F_s) = X_s,\quad t > s$

[ Parent ]
I wouldn't advocate changing coding practise by Herring (4.00 / 2) #13 Thu Jan 25, 2007 at 02:58:17 AM EST
to suit a modelling tool. After all, models are supposed to help, not hinder. The model ought not contain all of the information in the source code, otherwise one or other artifact is redundant.

The purpose of reverse-engineering code into UML is, generally, because it's easier to understand structure from a diagram than from picking through the code. Some dynamic behaviour can be captured - a few tools will now generate a sequence diagram from code. Function pointers or any voodoo like that tend to confuse that stuff though.

I don't think having a whole bunch of insanely detailed UML diagrams is necessarily that helpful anyway. But in practise, it's my belief that most design documentation is done for the benefit of management rather than developers.

You can't inspire people with facts
- Small Gods

[ Parent ]
No, you use a human by Dr H0ffm4n (2.00 / 0) #27 Mon Jan 29, 2007 at 04:48:52 AM EST
They're much cheaper. Unless you insist on hiring a British human. They're more expensive and waste loads of time getting distracted over things like DB data types.

how about feeding back to check that the design corresponds to the analysis and the code to the design

You can use a tracking tool to do that. Something like a spreadsheet with three columns. One for analysis, one for design and one for code. Then you employ a human being to manually keep the spreadsheet up to date and report into the project QA function as soon as they diverge.

[ Parent ]
heh by martingale (2.00 / 0) #28 Mon Jan 29, 2007 at 01:45:24 PM EST
As a member of the board, I suggest we fire Herring, then re-hire him in that capacity :)
--
$E(X_t|F_s) = X_s,\quad t > s$
[ Parent ]
I like the first step by Dr H0ffm4n (2.00 / 0) #29 Tue Jan 30, 2007 at 01:51:32 AM EST
Step 2 is a no goer though. Said capacity is best filled with a furriner. They're
a) cheaper
b) more likely to do as they are asked in a purely robotic manner

I seem to be repeating myself.

[ Parent ]
so we're agreed by martingale (2.00 / 0) #30 Tue Jan 30, 2007 at 02:28:45 AM EST
Herring, old chap, old boy, chin up, eh? You're fired!
--
$E(X_t|F_s) = X_s,\quad t > s$
[ Parent ]
Adoption by nebbish (4.00 / 1) #4 Thu Jan 25, 2007 at 01:59:31 AM EST
Yay!

--------
It's political correctness gone mad!

Wipo by DullTrev (4.00 / 2) #6 Thu Jan 25, 2007 at 02:11:37 AM EST

Fainting


--
DFJ?
Another Wipo by anonimouse (4.00 / 1) #14 Thu Jan 25, 2007 at 02:58:46 AM EST
goatse.cx

Girls come and go but a mortgage is for 25 years -- JtL
[ Parent ]
Holy crap by TurboThy (2.00 / 0) #25 Thu Jan 25, 2007 at 11:14:23 AM EST
You almost killed me - that video is too funny.
__
Sommerhus til salg, første række til Kattegat.
[ Parent ]
Toggenburg by Phage (4.00 / 1) #11 Thu Jan 25, 2007 at 02:56:56 AM EST
Good eating and reasonable milk productivity. My Uncle and Aunt used to run a goat dairy and stud in NSW. It's worth knowing that Nubians are a complete load of neurotic lunatics. Try drenching a 150Kg buck and you'll know what I mean.

Snowing again now. by Phage (4.00 / 1) #12 Thu Jan 25, 2007 at 02:57:55 AM EST
If you're in town you might want to keep an eye on the trains.

[ Parent ]
When I were young, we had a toggenburg by Herring (2.00 / 0) #15 Thu Jan 25, 2007 at 03:03:01 AM EST
Generally fairly well tempered, but occaisionally used to get stroppy.

The billy kids did make good eating.

You can't inspire people with facts
- Small Gods

[ Parent ]
They certainly do. by Phage (2.00 / 0) #18 Thu Jan 25, 2007 at 03:48:31 AM EST
Making me hungry just thinking about it.

[ Parent ]
I hate Rational Rose. by wiredog (2.00 / 0) #16 Thu Jan 25, 2007 at 03:30:33 AM EST
Doesn't everybody?

Tools like that are semi-useful for reverse-engineering the source code to UML. If, and only if, the coders follow a strict and highly formalized commenting scheme as well as a strict and highly formalized method and variable naming scheme. Otherwise, you need the coder to go through the UML diagrams and compare them with the code to hand translate. Most coders hate doing that, and hate highly structured and formalized schemes anyway, and thus hate Rational and all its ilk.

Earth First!
(We can strip mine the rest later.)

I'm surprised they sell any now by Herring (2.00 / 0) #17 Thu Jan 25, 2007 at 03:40:15 AM EST
(Well, Ration Software Architect now.) The Sparx EA product has better UML support, better forward/reverse engineering support and costs £200 instead of £6,000.

You can't inspire people with facts
- Small Gods

[ Parent ]
You get what you pay for, however by sasquatchan (4.00 / 2) #19 Thu Jan 25, 2007 at 04:58:20 AM EST
we use EA here for UML diagrams, but not code generation or anything. Use cases, sequence diagrams etc.

But, I don't do classes in UML kinda work. Brain doesn't process that way, I think in objects/code far far far better and more efficiently than I think in UML.

Those that have used or been trained on other UML development tools say EA is OK, but it isn't a real enterprise level quality software tool.

[ Parent ]
That's worth knowing by Herring (2.00 / 0) #20 Thu Jan 25, 2007 at 05:09:35 AM EST
I've only played with it for a short time. I haven't laid hands on Rational Software Architect at all - we're still on Rose (which doesn't have UML2.0 support at all). The MS stuff is very MS specific - doesn't look like we could import our stuff from Rose (which we can with EA).

Sometimes it is quicker and cheaper to work stuff out with UML before coding and getting into a mess. That's were design is helpful. Management, however, don't measure productivity like that.

You can't inspire people with facts
- Small Gods

[ Parent ]
WIPO: Billy . . . by slozo (2.00 / 0) #21 Thu Jan 25, 2007 at 06:04:06 AM EST
. . . you know the one.

Piper? by anonimouse (4.00 / 1) #22 Thu Jan 25, 2007 at 06:31:46 AM EST


Girls come and go but a mortgage is for 25 years -- JtL
[ Parent ]
um, well . . . by slozo (2.00 / 0) #23 Thu Jan 25, 2007 at 06:36:54 AM EST
. . . she'd be a sight better looking than the one that has the goat's gruff, I reckon . . .

[ Parent ]
You architect your software?!?! by miker2 (2.00 / 0) #24 Thu Jan 25, 2007 at 08:13:48 AM EST
We have a diagram that every module follows that defines the stack (UI->DB and back up) and what pattern each interface point uses, but that's it.  We let the design emerge from the development and when a certain pattern is screaming from the code, we 'formalize' it and refactor similar areas of the codebase to maintain ease of upkeep.


Oops I did it again | 30 comments (30 topical, 0 hidden)