An Iterative Approach for Development of Safety-Critical Software

Topics: Agile software development, Systems engineering, Extreme Programming Pages: 24 (6141 words) Published: November 17, 2013
2010 Agile Conference

An Iterative Approach for Development of
Safety-Critical Software and Safety Arguments
Xiaocheng Ge, Richard F. Paige and John A. McDermid
Department of Computer Science, University of York, UK.
{xchge, paige, jam}@cs.york.ac.uk
in each step of the development process. To develop safetycritical systems, organisations are often required to adopt such processes, but their adoption can make it difficult to manage requirements volatility, introduce new and emerging technologies, and can lead to substantial costs in producing and maintaining documentation. Needless to say, Agile methods

are very attractive to software engineers and project managers working in the safety domain, while posing difficulties and challenges to safety engineers working in this domain.
Are Agile methods applicable to developing safety-critical
software systems? In [6], Boehm performs a comparative
study of Agile methods vs. plan-driven methods in developing software and asserts that it is important to know which method is applicable to what type of project. It was suggested that critical systems require stable requirements, often have a

number of inflexible requirements, and that Agile methods
might not be best suited for such applications [7]. Research into the suitability and applicability of Agile methods for
safety-critical software development is still at an early stage; there is yet to be a successful application of an Agile method to a safety-critical project reported in the literature.
This paper argues that the lightweight and iterative approach taken in Agile methods can improve the development of
safety-critical systems. What it does not do is argue that Agile methods are directly applicable to developing safety-critical systems that require certification. The argument comes in three parts. The first part briefly reviews the development processes typically used for safety-critical systems, and contrasts them with Agile processes. As a result, we argue that the iterative and incremental style of agile development is not inherently at-odds with the requirements of safety-critical systems development. The second part of the paper proposes an iterative process for developing safety-critical software system; the

novelty of the process is in its definition of up-front design (appropriate for the safety-critical domain) and the incremental development of safety arguments (explained in the sequel).
While we do not claim that the process is agile, we do argue that it is more likely that it is Agile than existing processes. The third part of the paper is an overview of an example that demonstrates how a safety-critical system can be developed

iteratively and incrementally, while also producing a safety argument, which is generally required for certification.
Whether or not applying Agile practices can improve the
development of safety-critical systems is not a simple question to answer; we argue that each development activity in existing

Abstract—The benefits ascribed to Agile methods are attractive to software engineers working in the safety-critical software domain. There is limited industrial experience and evidence
of successful applications of Agile methods in this domain;
however, academic research has identified some of the key
challenges of their adoption and application, and has started to present feasibility studies. In this paper, we propose an iterative approach for developing safety-critical software, making two novel contributions. Firstly, we address the notion of up-front design in safety-critical software development, and describe the characteristics of an up-front design that is minimal from the perspective of achieving safety objectives. Secondly, we identify a key difficulty of using iterative development for building safetycritical software, and present a way to develop both a software system and a safety argument iteratively. We also give details of a proof-of-concept example illustrating the...
Continue Reading

Please join StudyMode to read the full document

You May Also Find These Documents Helpful

  • Software Testing in Safety Critical Systems Essay
  • Agile Software Development Essay
  • Modern Software Development Methodologies Essay
  • Essay on Software Development Life Cycle
  • Software Development Essay
  • Safety-Critical Software and Life Critical Software Essay
  • “Software Development Plan” Template Analysis Essay
  • Software Development Essay

Become a StudyMode Member

Sign Up - It's Free