Agile Methods for Open Source Safety-Critical Software.

IF 2.6 4区 计算机科学 Q2 COMPUTER SCIENCE, SOFTWARE ENGINEERING
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,&nbsp;Andinet Enquobahrie,&nbsp;Luis Ibanez,&nbsp;Patrick Cheng,&nbsp;Ziv Yaniv,&nbsp;Kevin Cleary,&nbsp;Shylaja Kokoori,&nbsp;Benjamin Muffih,&nbsp;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":"41 9","pages":"945-962"},"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.

开源安全关键软件的敏捷方法。
在依赖于生命的环境中引入软件技术需要开发团队执行一个确保高水平软件可靠性和正确性的过程。尽管敏捷方法很流行,但由于缺乏对文档、可跟踪性和其他正式技术的强调,人们通常认为敏捷方法不适合作为这些环境中的过程族。敏捷方法,特别是Scrum,倾向于经验过程控制,或者在紧密的反馈循环中进行小的持续调整。本文挑战了敏捷方法不适用于安全关键型软件开发的假设。敏捷方法足够灵活,可以鼓励适量的仪式;因此,如果安全关键型系统需要更加强调正式规范和需求管理之类的活动,那么敏捷过程将包括这些必要的活动。此外,敏捷方法比传统的软件工程过程模型更关注持续过程管理和代码级质量。本文以影像引导手术工具箱(IGSTK)项目为背景介绍我们的经验。IGSTK是一个自2004年以来采用敏捷实践的开源软件项目。我们一开始的假设是,流程越轻越好,专注于开发代码,只在需要时添加流程元素。IGSTK已被教学医院和研究实验室采用,并用于临床试验。自从学术界在大约十年前提出敏捷方法不适合安全关键型系统以来,敏捷方法就已经成熟了,我们将我们的经验作为一个案例研究来重新讨论。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
Software-Practice & Experience
Software-Practice & Experience 工程技术-计算机:软件工程
CiteScore
8.00
自引率
8.60%
发文量
107
审稿时长
6 months
期刊介绍: 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.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信