Forensic Software Engineering: an overview

Traditional software engineering is not really a branch of engineering at all as it lacks any kind of systematic measurement framework on which to base improvement, [16]. There are many dierent facets to the notion of software improvement but here, the focus will be on just one, that of the prevention of defect. In this context, Forensic Software Engineering is an amalgam of techniques specifically aimed at extracting patterns of failure associated with software controlled systems, categorising them and using the information to prevent future failures of the same kind. This is in fact a classic engineering paradigm but there is a particular need in the software community to isolate it from the unusually creative but generally measurement-free mainstream. This article introduces some of the ideas and hopes.