Grady Booch on software archeology

Booch's Rational User Conference presentation on software archeology is available online.

This is related to our previous discussions about reading code, mining code for patterns and about the history of programming languages and software systems.

Obviously, many of the issues mentioned in the presentation (e.g., SLOC counts) are programming language dependent. The major case study is Eclipse, which should make this interesting to IDEs buffs as well.

See here for more on Booch's work on documenting software architecture.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

IT doomed?

Judging by the formula used for extrapolations, number of IT professionals will reach 0 in this century. And it looks they will stop cutting code only after that :-)

But seriously, I do a lot of SW archeology at work. And Eclipse indeed was the major factor leading me to that. Equiped with several 3rd-party plugins, it not only enables refactoring in the small (extracting an interface, or pushing a method downwards the inheritance hierarchy), but also refactoring in the large - one can see dependencies between packages, amount of unused code, various metrics.
When you see that metrics of some subproject are significantly worse that on average, and you use just 10% of its code, then you have good incentive to kill this project (reimplementing these 10%, of course).

Yes, I believe Eclipse is doing much job of the language. It even inferences types when extracting a piece of code from its context during refactoring. One might argue that this is bad... Well, let's see until Eclipse supports Java 1.5 (yes, I know) - I think then the tension between ugly language and great IDE will resolve in some way.

PS: this year I successfully killed a 250KLOC project :-)

Good for you!

PS: this year I successfully killed a 250KLOC project

That's my speciality as well...

Are we talking Java?

Another in the works

Yes, Java, server-side, web application framework.
The ugly side is that the new project is quickly getting features... So probably in couple of years we will need to kill it as well... For several reasons refactoring in-place does not work...