EvilRob.org -> Weblog

Sysadmin Field Notes

Solid design information

May 19, 2004

Hacknot has 10 elements of good software design enumerated today. I've been paying close attention to this site recently, starting to work in my (non-existent) free time at improving how I design things, and making the design more explicit.


Certainly the small projects I've tackled have come out better when I pay more attention to the design whether or not I document it in UML or something. BIGdis for example, was not designed at all, more like "grown" (at best). Funny though that it's my most usccessful hunk of software, although you could argue that it's really the people that make it work and the software just gets in the way.

My build system at work, while not having much more than a lot of design notes and brainstorming sessions recorded on a wiki, certainly went through many iterations in my head and a lot of design work, and I think it ends up solving the problems of web application development and deployment rather nicely. There's no real clear way to me how to document the design, aside from explanatory text documents though.

So I've been working on UML a bit, and have discovered that you can get a lot of practice in by designing things in UML only. Design it, refine it, and throw it away...:-) It's a lot faster than working at the code level, which of course is the whole point. Once you've got code down, I think you become married to it. It makes it a lot tougher to throw away, which I think is why a lot of prototypes suddenly evolve into production systems these days.

I'm still having trouble getting the level of detail right, and then connecting the resulting layers. I can model the behavior of the system all day, but the logical model keeps getting mixed up with the physical model as I drill down into further detail. I suppose things that like come with experience.

Finally, CSC207 Software Design: Facts and Fallacies of Software Engineering are the facts/fallacies mentioned in a comment on that Hacknot entry. I must say that I agree with almost all of them, and should probably pick up the book.

Posted by rmeyer at 12:09 AM | TrackBack (0)

This is Rob Meyer's weblog, a weblog focused on software development and system administration based on 10 years of experience. Want to explore further? You can find out more me or see the rest of my website.

Wondering if I've written on something in particular? Try searching:

You might want to take a look at some of the more requested postings (as judged by incoming traffic):

Want more? Subscribe to this site or contact me at rob at big dis dot com.

See my writings on:


Powered by Movable Type | Technorati Profile