نرمافزار را میتوان آن چیزی در نظر گرفت که بر روی یک پردازنده یا با یک مترجم اجرا شده است و قابل لمس نیست اما سایر وسایلی که شما میتوانید لمس کنید را قادر میسازد کار مورد نظر شما را انجام دهد. مثالهایی از نرمافزار شامل مثالهای واضح مانند نرمافزارهای کامپیوتری، نرمافزارهای موبایل و مثالهای کمتر واضح مانند کد Firmware تعبیه شده داخل یک دستگاه که بر روی میکروکنترلر پروگرم میشود و توسط کاربر نهایی دیده نمیشود. چرخه عمر یک نرمافزار پزشکی شامل برنامهریزی، الزامات، طراحی، پیادهسازی، تست و تحلیل است که اولین چرخه، توسعه نرمافزار است و چرخههای بعدی نگهداری نرمافزار است.

نرمافزارهای پزشکی به دو دسته کلی تقسیمبندی میشوند:
- Embedded Software (Medical Device Software): نرمافزار جزئی از یک دستگاه پزشکی فیزیکی است که برای آن دستگاه خاص طراحی و بر روی همان دستگاه پیادهسازی میشود و مجزا از آن دستگاه در دسترس نیست.
- Standalone Software (Software as a Medical Device): نرمافزار به عنوان یک دستگاه پزشکی است و جزئی از یک دستگاه پزشکی نیست و جهت اجرا بر روی یک پلتفرم نرمافزار یا سختافزار عمومی طراحی شده است.
نرمافزار اغلب بخشی اساسی از فناوری دستگاههای پزشکی است. مشخص کردن ایمنی و اثربخشی یک دستگاه پزشکی که شامل نرمافزار است، نیازمند دانش در مورد وظایف موردنظر نرمافزار و نشان دادن اینکه استفاده از نرمافزار آن اهداف را بدون ایجاد هیچ خطر غیرقابل قبول محقق میکند، است. استاندارد IEC 62304: Medical device software – Software life cycle processes که اولین نسخه آن در سال 2006 توسط سازمان IEC منتشر شد و در سال 2015 نیز اصلاحیه نسخه اول (ویرایش 1.1) منتشر شد، چارچوبی از فرآیندهای چرخه عمر با فعالیتها و وظایف لازم برای طراحی ایمن و نگهداری نرمافزار دستگاههای پزشکی ارائه میدهد. هر فرآیند چرخه عمر نرمافزار به مجموعهای از فعالیتها تقسیم میشود و بیشتر فعالیتها به مجموعهای از وظایف تقسیمبندی میشوند.

در استاندارد IEC 62304 به عنوان پایهای اساسی فرض میشود که نرمافزار دستگاه پزشکی در چارچوب یک سیستم مدیریت کیفیت و یک سیستم مدیریت ریسک توسعه و نگهداری میشود. اینکه آیا نرمافزار عامل مشوق یک وضعیت خطرناک است، در طول فعالیت شناسایی خطر در فرایند مدیریت ریسک تعیین میشود. وضعیتهای خطرناک که بهطور غیرمستقیم ممکن است توسط نرمافزار ایجاد شوند (برای مثال، ارائه اطلاعات گمراهکننده که میتواند باعث تجویز درمان نامناسب شود) باید همواره مورد توجه قرار گیرند. این استاندارد ساختار سازمانی تولیدکننده یا اینکه کدام بخش از سازمان باید کدام فرآیند، فعالیت یا کار را انجام دهد را مشخص نمیکند. این استاندارد فقط ایجاب میکند که فرآیند، فعالیت یا کار انجام شده و تکمیل شود تا تطابق با این استاندارد برقرار شود. این استاندارد نام، قالب یا محتوای صریح مستنداتی که باید تولید شود را تعیین نمیکند. این استاندارد مستندسازی وظایف را الزامی میداند، اما تصمیمگیری در مورد نحوه ارائه این مستندات بر عهده کاربر استاندارد گذاشته شده است. این استاندارد مدل چرخه عمر مشخصی را تجویز نمیکند. کاربران این استاندارد مسئول انتخاب یک مدل چرخه عمر برای پروژه نرمافزاری هستند و مسئول نگاشت فرآیندها، فعالیتها و وظایف موجود در این استاندارد بر روی آن مدل میباشند.


IEC 62304 در واقع یک استاندارد فرایند است که الزامات فعالیتهای توسعه و نگهداشت و نه صرفا خود محصول را تعریف میکند (به طور مثال بیان نمیکند که محصول باید سبز،گرد و… باشد). شواهد به کارگیری صحیح این استاندارد (به عنوان مثال اجرای فعالیتهای الزامی) از طریق بررسی مستندات انجام میشود و در واقع اگر فعالیتی انجام میشود باید نتیجه آن به صورت مجموعهای از اطلاعات در یک مستند موجود باشد.
استاندارد IEC 62304 پنج فرآیند کلی چرخه عمر نرمافزار را توصیف میکند که شامل فرآیند توسعه نرمافزار، فرآیند نگهداری نرمافزار، فرآیند مدیریت ریسک نرمافزار، فرآیند مدیریت پیکربندی نرمافزار و فرآیند حل مشکلات نرمافزار است. ترتیب زمانی این فرآیندها در شکل زیر قابل مشاهده است. مدیریت ریسک در تمام مدت چرخه عمر نرمافزار وجود دارد، توسعه نرمافزار تا زمان اولین انتشار اتفاق میافتد و پس از اولین انتشار، مرحله نگهداشت نرمافزار آغاز میشود. مدیریت پیکربندی کمی قبل از هر انتشار اتفاق میافتد و تهیه و چک و نهایی شدن مستندات و تاییدها در این مرحله اتفاق میافتد. حل مشکل در مرحله تصدیق پیش از انتشار آغاز میشود و هدف آن شناسایی و حل مشکلاتی است که ریسک غبرقابل قبول ایجاد میکنند و این شناسایی همواره ادامه خواهد داشت.

منابع:
1.Matthias Steck, IEC 62304 Software Development2IEC 62366-1:2020 – Medical devices: Part 1: Application of usability engineering to medical devices
2.IEC 62304:2006+AMD1:2015 – Medical device software – Software life cycle processes
3.Johnny Marques et al., Fundamentals of IEC 62304 with an Agile Software Development Model, 2021