Posts from SIGCSE: Can students re-engineer? No.

Posted on March 26, 2008


Eli Blevis makes the point that we have to make it cool to want to own a retro iPod. He doesn’t mean a new piece of equipment made to look old, but that we keep our old favourites alive for a lot longer than is the current trend. beyond the switch in marketing and fashion, two things have to happen here:

1. Manufacturers need to give up completely on built in obsolescence.

2. We need computing practitioners for whom re-engineer is the norm.

Ronald Leach and colleagues from Howard examined the ability of computing students to re-engineer, and the news is not good (pdf).

They presented students with a collection of eleven source code modules that were actually used at NASA for ground control of the Interplanetary Monitoring Platform (IMP-8) spacecraft, which was launched in 1973. In groups, the students were asked to do some of the preparatory work for decisions (Build a new system from scratch; Buy an entirely new system off-the-shelf; Reuse some or all of the existing system; Re-engineer some or all of the existing system). This work involved coming to an understanding of component structure and coupling.

Leach presents several graphs which can be summarised as:

It is clear that the students did not achieve proper assessment of very many of the modules… The participants were unable to perform the required reengineering analysis with sufficient accuracy.

They recognise that this is not a simple task:

how good is their ability to analyze complex systems in an application domain unfamiliar to them?

Reengineering places a high premium on program comprehension. The reengineering process necessitates an assessment of the functionality and quality of existing software components and their modularity and linkages.

This is of course, one paper describing only one class, but if valid, we’ve got work to do. Leach argues that we need to focus on a systems approach to software engineering design.