About: Forensic software engineering is a research topic. Over the lifetime, 5 publications have been published within this topic receiving 44 citations.
TL;DR: In this paper, the authors explore some of the issues related to the study of such phenomena and make the case for the use of case history and ante-narrative methods for understanding such rich and complex scenarios.
TL;DR: This paper argues that the authors must develop specific techniques to support forensic software engineering that look beyond 'programmer error' as a primary cause of software failure and enable investigators to identify the systemic problems that are created by inadequate investment, by poor management leadership and by the breakdown in communication between development teams.
Abstract: There is a growing realization that existing accident investigation techniques fail to meet the challenges created by incidents that involve software failures. Existing software development techniques cannot easily be used to provide retrospective information about the complex and systemic causes of major accidents. This paper, therefore, argues that we must develop specific techniques to support forensic software engineering. It is important that these techniques should look beyond 'programmer error' as a primary cause of software failure. They must enable investigators to identify the systemic problems that are created by inadequate investment, by poor management leadership and by the breakdown in communication between development teams. This argument builds on previous work by Leveson and by Reason. They have focused on the importance of a systemic approach to the development of safety-critical applications. Relatively little attention has been paid to a systemic analysis of their failure. Later sections of this paper analyze the potential problems that can arise when a systemic approach is extended from systems development to accident investigation.
TL;DR: This paper identifies some of the problems that have arisen from an undue focus on the role of requirements engineering in the causes of major accidents and aims to provoke further debate within the emerging field of forensic software engineering.
Abstract: Many software failures stem from inadequate requirements engineering. This view has been supported both by detailed accident investigations and by a number of empirical studies; however, such investigations can be misleading. It is often difficult to distinguish between failures in requirements engineering and problems elsewhere in the software development lifecycle. Further pitfalls arise from the assumption that inadequate requirements engineering is a cause of all software related accidents for which the system fails to meet its requirements. This paper identifies some of the problems that have arisen from an undue focus on the role of requirements engineering in the causes of major accidents. The intention is to provoke further debate within the emerging field of forensic software engineering.
TL;DR: It is argued that existing software development techniques cannot easily be used to provide retrospective information about the complex and systemic causes of major accidents, and therefore specific techniques must be developed to support forensic software engineering.
Abstract: Accident reports are intended to explain the causes of human error, system failure and managerial weakness. There is, however, a growing realization that existing investigation techniques fail to meet the challenges created by accidents that involve software failures. This paper argues that existing software development techniques cannot easily be used to provide retrospective information about the complex and systemic causes of major accidents. In consequence, we must develop specific techniques to support forensic software engineering.
TL;DR: This article introduces some of the ideas and hopes of Forensic Software Engineering, 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.
Abstract: 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.