Kevin Gary, Andinet Enquobahrie, Luis Ibanez, Patrick Cheng, Ziv Yaniv, Kevin Cleary, Shylaja Kokoori, Benjamin Muffih, John Heidenreich
{"title":"Agile Methods for Open Source Safety-Critical Software.","authors":"Kevin Gary, Andinet Enquobahrie, Luis Ibanez, Patrick Cheng, Ziv Yaniv, Kevin Cleary, Shylaja Kokoori, Benjamin Muffih, John Heidenreich","doi":"10.1002/spe.1075","DOIUrl":null,"url":null,"abstract":"<p><p>The introduction of software technology in a life-dependent environment requires the development team to execute a process that ensures a high level of software reliability and correctness. Despite their popularity, agile methods are generally assumed to be inappropriate as a process family in these environments due to their lack of emphasis on documentation, traceability, and other formal techniques. Agile methods, notably Scrum, favor empirical process control, or small constant adjustments in a tight feedback loop. This paper challenges the assumption that agile methods are inappropriate for safety-critical software development. Agile methods are flexible enough to encourage the rightamount of ceremony; therefore if safety-critical systems require greater emphasis on activities like formal specification and requirements management, then an agile process will include these as necessary activities. Furthermore, agile methods focus more on continuous process management and code-level quality than classic software engineering process models. We present our experiences on the image-guided surgical toolkit (IGSTK) project as a backdrop. IGSTK is an open source software project employing agile practices since 2004. We started with the assumption that a lighter process is better, focused on evolving code, and only adding process elements as the need arose. IGSTK has been adopted by teaching hospitals and research labs, and used for clinical trials. Agile methods have matured since the academic community suggested they are not suitable for safety-critical systems almost a decade ago, we present our experiences as a case study for renewing the discussion.</p>","PeriodicalId":49504,"journal":{"name":"Software-Practice & Experience","volume":null,"pages":null},"PeriodicalIF":2.6000,"publicationDate":"2011-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1002/spe.1075","citationCount":"59","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Software-Practice & Experience","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1002/spe.1075","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 59
Abstract
The introduction of software technology in a life-dependent environment requires the development team to execute a process that ensures a high level of software reliability and correctness. Despite their popularity, agile methods are generally assumed to be inappropriate as a process family in these environments due to their lack of emphasis on documentation, traceability, and other formal techniques. Agile methods, notably Scrum, favor empirical process control, or small constant adjustments in a tight feedback loop. This paper challenges the assumption that agile methods are inappropriate for safety-critical software development. Agile methods are flexible enough to encourage the rightamount of ceremony; therefore if safety-critical systems require greater emphasis on activities like formal specification and requirements management, then an agile process will include these as necessary activities. Furthermore, agile methods focus more on continuous process management and code-level quality than classic software engineering process models. We present our experiences on the image-guided surgical toolkit (IGSTK) project as a backdrop. IGSTK is an open source software project employing agile practices since 2004. We started with the assumption that a lighter process is better, focused on evolving code, and only adding process elements as the need arose. IGSTK has been adopted by teaching hospitals and research labs, and used for clinical trials. Agile methods have matured since the academic community suggested they are not suitable for safety-critical systems almost a decade ago, we present our experiences as a case study for renewing the discussion.
期刊介绍:
Software: Practice and Experience is an internationally respected and rigorously refereed vehicle for the dissemination and discussion of practical experience with new and established software for both systems and applications.
Articles published in the journal must be directly relevant to the design and implementation of software at all levels, from a useful programming technique all the way up to a large scale software system. As the journal’s name suggests, the focus is on practice and experience with software itself. The journal cannot and does not attempt to cover all aspects of software engineering.
The key criterion for publication of a paper is that it makes a contribution from which other persons engaged in software design and implementation might benefit. Originality is also important. Exceptions can be made, however, for cases where apparently well-known techniques do not appear in the readily available literature.
Contributions regularly:
Provide detailed accounts of completed software-system projects which can serve as ‘how-to-do-it’ models for future work in the same field;
Present short reports on programming techniques that can be used in a wide variety of areas;
Document new techniques and tools that aid in solving software construction problems;
Explain methods/techniques that cope with the special demands of large-scale software projects. However, software process and management of software projects are topics deemed to be outside the journal’s scope.
The emphasis is always on practical experience; articles with theoretical or mathematical content are included only in cases where an understanding of the theory will lead to better practical systems.
If it is unclear whether a manuscript is appropriate for publication in this journal, the list of referenced publications will usually provide a strong indication. When there are no references to Software: Practice and Experience papers (or to papers in a journal with a similar scope such as JSS), it is quite likely that the manuscript is not suited for this journal. Additionally, one of the journal’s editors can be contacted for advice on the suitability of a particular topic.