Writing software for the clinic

被引:7
作者
Rosen, II [1 ]
机构
[1] Univ Texas, Md Anderson Canc Ctr, Dept Radiat Phys, Houston, TX 77030 USA
关键词
computer software; software development; radiation therapy treatment planning;
D O I
10.1118/1.598201
中图分类号
R8 [特种医学]; R445 [影像诊断学];
学科分类号
1002 ; 100207 ; 1009 ;
摘要
Medical physicists often write computer programs to support scientific, educational, and clinical endeavors. Errors in scientific and educational software can waste time and effort by producing meaningless results, but errors in clinical software can contribute to patient injuries. Although the ultimate goal of error-free software is impossible to achieve except in very small programs, there are many good design, implementation, and testing practices that can be used by small development groups to significantly reduce errors, improve quality, and reduce maintenance. The software development process should include four basic steps: specifications, design, implementation, and testing. A specifications document defining what the software is intended to do is valuable for clearly delimiting the scope of the project and providing a benchmark for evaluating the final product. Keep the software design simple and straightforward. Document assumptions, and check them. Emphasize maintainability, portability, and reliability rather than speed. Use layers to isolate the application from hardware and the operating system. Plan for upgrades. Expect the software to be used in unplanned ways. Whenever possible, be generous with RAM and disk storage; hardware is cheaper than development and maintenance. During implementation, use well-known algorithms whenever possible. Use prototypes to try out ideas. Use generic modules, version numbering, unique file names, defensive programming, and operating system and language/compiler defaults. Avoid binary data files and clever tricks. Remember that real numbers are not exact in a computer. Get it right before making it faster. Document the software extensively. Test continuously during development; the later a problem is found, the more it costs to fix. Use a written procedure to test the final product exactly as a typical user would run it. Allow no changes after clinical release. Expect to spend at least an additional 50% of the initial development effort on testing, fixing errors, and getting the software into routine operation. (C) 1998 American Association of Physicists in Medicine.
引用
收藏
页码:301 / 309
页数:9
相关论文
共 50 条
  • [21] Predictive software
    Hernández-Orallo J.
    José Ramírez-Quintana M.
    Automated Software Engineering, 2001, 8 (2) : 139 - 166
  • [22] What is software?
    Osterweil, Leon J.
    AUTOMATED SOFTWARE ENGINEERING, 2008, 15 (3-4) : 261 - 273
  • [23] Software engineering method in the application of computer software development analysis
    Yu, Teng
    PROCEEDINGS OF THE 2017 4TH INTERNATIONAL CONFERENCE ON MACHINERY, MATERIALS AND COMPUTER (MACMC 2017), 2017, 150 : 89 - 93
  • [24] Software Bloat and Wasted Joules: Is Modularity a Hurdle to Green Software?
    Bhattacharya, Suparna
    Gopinath, K.
    Rajamani, Karthick
    Gupta, Manish
    COMPUTER, 2011, 44 (09) : 97 - 101
  • [25] The Impact of Agile Software Development Approach on Software Developers' Responsibilities
    Majanoja, Anne-Maarit
    Avikainen, Petri
    Leppanen, Ville
    RECENT ADVANCES IN INFORMATION SYSTEMS AND TECHNOLOGIES, VOL 1, 2017, 569 : 581 - 591
  • [26] Investigating Software Development Methodologies and Practices in Software Industry in Tanzania
    Mushashu, Edwin T.
    Mtebe, Joel S.
    2019 IST-AFRICA WEEK CONFERENCE (IST-AFRICA), 2019,
  • [27] Software Development Practices, Barriers in the Field and the Relationship to Software Quality
    Yost, Beth
    Pfaff, Mark
    Coblenz, Michael
    Myers, Brad
    Sunshine, Joshua
    Aldrich, Jonathan
    Weber, Sam
    Patron, Matthew
    Heeren, Melissa
    Krueger, Shelley
    ESEM'16: PROCEEDINGS OF THE 10TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT, 2016,
  • [28] What is software?
    Leon J. Osterweil
    Automated Software Engineering, 2008, 15 : 261 - 273
  • [29] Embedded-Software Architects It's Not Only about the Software
    Antonino, Pablo Oliveira
    Morgenstern, Andreas
    Kuhn, Thomas
    IEEE SOFTWARE, 2016, 33 (06) : 56 - 62
  • [30] Integration of Software Architecture in Requirements Elicitation for Rapid Software Development
    Gillani, Maryam
    Niaz, Hafiz Adnan
    Ullah, Ata
    IEEE ACCESS, 2022, 10 : 56158 - 56178