{"id":9713,"date":"2023-02-10T15:34:09","date_gmt":"2023-02-10T20:34:09","guid":{"rendered":"https:\/\/blogs.sw.siemens.com\/embedded-software\/?p=9713"},"modified":"2026-03-26T17:02:29","modified_gmt":"2026-03-26T21:02:29","slug":"safety-software-development-process-and-iec-62304-compliance","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/embedded-software\/2023\/02\/10\/safety-software-development-process-and-iec-62304-compliance\/","title":{"rendered":"Safety Software Development Process and IEC 62304 Compliance"},"content":{"rendered":"\n<p>While the need, use, or device may be disparate, safety software development has common themes across industries. IEC 62304 does not specify the development process for software; it instead defers to other standards, namely IEC 61508-3<\/p>\n\n\n\n<p>Some activities are essential to a quality software development process:&nbsp;<\/p>\n\n\n\n<p>\u2022 <strong>Specification<\/strong> of software safety requirements that can be unambiguously implemented.&nbsp;<\/p>\n\n\n\n<p>\u2022 <strong>Verification<\/strong> of these safety requirements, regardless of how they are implemented.&nbsp;<\/p>\n\n\n\n<p>\u2022 <strong>Complete documentation<\/strong> of the design that explicitly describes the dataflow, timing, exception handling, etc.&nbsp;<\/p>\n\n\n\n<p>\u2022 <strong>Implementation<\/strong> of the software based on requirements, architecture, and design, and review of code by manual and\/or automated means.&nbsp;<\/p>\n\n\n\n<p>\u2022 <strong>Testing<\/strong> the software units individually, and once the modules are integrated, tested together.<\/p>\n\n\n\n<p>However, beyond the essentials, what makes a high-quality developmental process? \u2013<strong>The Three Basic Tenets&nbsp;<\/strong><\/p>\n\n\n\n<p><strong>#1: Say what you do&nbsp;<\/strong><\/p>\n\n\n\n<p>The developmental process must state how and when each activity will be performed, the tools used, and the expected outcomes, etc.&nbsp;<\/p>\n\n\n\n<p>International standards such as ISO 9001 and ISO 13485 (medical specific) describe in detail the considerations required for the creation of high-quality processes, but the decisions of what to consider is up to the needs of the specific product and organization. Of course, once you go to the trouble of documenting this, it is important to train your staff on how development will occur, and this training has to be on a regular, on-going basis.&nbsp;<\/p>\n\n\n\n<p><strong>#2: Do what you say&nbsp;<\/strong><\/p>\n\n\n\n<p>After you\u2019ve documented your processes, it\u2019s important that the development, verification, quality, and testing teams follow those processes.&nbsp;<\/p>\n\n\n\n<p>Training is important, but so is auditing. If you aren\u2019t tracking adherence to the processes, you can\u2019t claim conformance to the painstakingly created high quality development process.<\/p>\n\n\n\n<p><strong>#3: Be able to show a 3rd party that you did the first two tenets<\/strong>&nbsp;<\/p>\n\n\n\n<p>When constructing your quality system, consider that you will likely be audited by external agents, whether these are customers, 3rd party certifiers, or other parts of your organization. These auditors will not understand your processes but whether your development was done in alignment with the other two tenets.&nbsp;<\/p>\n\n\n\n<p>To be able to show this, you need to make certain that the result of each step leaves some collection of artifacts that shows that you did what you said you\u2019d do.&nbsp;<\/p>\n\n\n\n<p>Will following these tenets automatically mean that you\u2019re fully conformant to IEC 62304 (or any other safety standard)? \u2015Not necessarily. But, if your organization makes a best effort in defining the processes in accordance with the standard, then most auditors\/certifiers will work with you to map what you\u2019re doing to the standard rather than requiring an immediate update to the processes.&nbsp;<\/p>\n\n\n\n<p>From a security standpoint, these tenets are vital to the creation of secure software. Once a solid safety process is in place, expanding that process to ensure security is straight-forward.&nbsp;<\/p>\n\n\n\n<p><strong>But, What About SOUP?<\/strong>&nbsp;<\/p>\n\n\n\n<p>What about other software that may not have been developed to the IEC 62304 standard? Does that mean you can\u2019t use them? \u2015You can, but it\u2019s all about managing risks. Any software can be used in a medical device as long as the risk of using the software is mitigated. Of course, the higher quality, better maintained, and better understood the software is, the more likely that the risks of using the software can be mitigated.&nbsp;<\/p>\n\n\n\n<p>Often, the complexity of risk management pushes manufacturers into using a commercially available Linux such as Siemens\u00ae Embedded Sokol Omni OS or Sokol Flex OS. But, whether or not a commercial product is used, several aspects of the Linux in question must be considered, including:\u00a0<\/p>\n\n\n\n<p>\u2022 Functional and performance requirements&nbsp;<\/p>\n\n\n\n<p>\u2022 Hardware and software requirements&nbsp;<\/p>\n\n\n\n<p>\u2022 How upgrades, bug fixes, and patches will be managed<\/p>\n\n\n\n<p>\u2022 How anomalies will be handled\u2013Can you find them? If so, can you interpret them and fix them as needed?<\/p>\n\n\n\n<p>Over the next decade, the management of security threats will become ubiquitously important to manufacturers of devices in all marketplaces, but especially vital in the medical device marketplace. Fortunately, the same thought process (and many of the same methodologies) that are part of the safety lifecycle can be re-applied to the security life cycle.<\/p>\n\n\n\n<p>As a thought leader, it is vital that you drive this thinking throughout your organization. It\u2019s a challenge that should be relished. Those who best solve the issues and concerns of customers and the public about industrial espionage and cyber-terrorism will have a significant competitive advantage for the foreseeable future.<\/p>\n\n\n\n<p>Learn more about <a href=\"https:\/\/www.plm.automation.siemens.com\/global\/en\/industries\/medical-devices-pharmaceuticals\/medical-instruments-equipment\/embedded-software.html\" target=\"_blank\" rel=\"noopener\">Siemens Embedded Software for Medical Devices<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>While the need, use, or device may be disparate, safety software development has common themes across industries. IEC 62304 does&#8230;<\/p>\n","protected":false},"author":76441,"featured_media":9604,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[6],"tags":[300],"industry":[70,72],"product":[826,827],"coauthors":[751],"class_list":["post-9713","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","tag-embedded-software","industry-medical-devices-pharmaceuticals","industry-medical-instruments-equipment","product-sokol-flex-os","product-sokol-omni-os"],"featured_image_url":"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2021\/09\/security_doc.jpg","_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/9713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/users\/76441"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/comments?post=9713"}],"version-history":[{"count":3,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/9713\/revisions"}],"predecessor-version":[{"id":9718,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/9713\/revisions\/9718"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media\/9604"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media?parent=9713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/categories?post=9713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/tags?post=9713"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/industry?post=9713"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/product?post=9713"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/coauthors?post=9713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}