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

استاندارد IEC 62304 هشت فعالیت را برای فرآیند توسعه نرمافزار تعیین میکند:
+ فرآیند نگهداری نرمافزار
استاندارد IEC 62304 سه فعالیت را برای فرآیند نگهداری نرمافزار تعیین میکند:
1. ایجاد برنامه نگهداری نرمافزار
2. تحلیل مشکل و اصلاح
3. پیادهسازی اصلاح
فعالیت 1: ایجاد برنامه نگهداری نرمافزار
در چارچوب فعالیت ایجاد برنامه نگهداری نرمافزار، یک برنامه برای انجام فعالیتها و وظایف فرآیند نگهداری نرمافزار تدوین میشود که این برنامه موارد زیر را شامل میشود:
- رویههای دریافت بازخوردها پس از انتشار نرمافزار (شامل دریافت، مستندکردن، تحلیل، رفع و ردیابی)
- معیارهای تعیین اینکه آیا یک بازخورد بهعنوان یک مشکل محسوب میشود یا خیر
- استفاده از فرآیند حل مشکلات نرمافزاری برای تحلیل و رفع مشکلاتی که پس از انتشار نرمافزار به وجود میآیند.
- استفاده از فرآیند مدیریت پیکربندی نرمافزار برای مدیریت اصلاحات در سیستم نرمافزاری موجود
- رویههایی برای ارزیابی و اجرای ارتقاها، رفع باگها، پچها و منسوخ شدن SOUP
فعالیت تحلیل مشکل و اصلاح شامل پنج وظیفه است.
- مستند کردن و ارزیابی بازخورد
- استفاده از فرآیند حل مشکلات نرمافزاری
- تحلیل درخواست تغییر
- تأیید درخواست تغییر
- اطلاعرسانی به کاربران و ناظران
وظیفه 1: مستند کردن و ارزیابی بازخورد
در چارچوب این وظیفه، بازخوردها برای نرمافزار منتشرشده مانتیور میشوند، همچنین بازخوردها باید مستند شده و تحلیل شوند تا مشخص شود آیا مشکلی در یک نرمافزار منتشر شده وجود دارد یا خیر. هرگونه مشکل باید به عنوان یک گزارش مشکل ثبت شود. گزارش مشکل باید شامل رویدادهای نامطلوب واقعی یا بالقوه و انحراف از مشخصات باشد و باید مورد بررسی قرار گیرد تا مشخص شود چگونه بر ایمنی یک نرمافزار منتشر شده تأثیر میگذارد و آیا نیاز به تغییر برای رفع مشکل وجود دارد یا خیر.
وظیفه 2: استفاده از فرآیند حل مشکلات نرمافزاری
در چارچوب این وظیفه، گزارش مشکلها تهیه میشوند.
وظیفه 3: تحلیل درخواست تغییر
در چارچوب این وظیفه، هر درخواست تغییر از نظر تأثیر آن بر سازمان، نرمافزار منتشر شده و دستگاه پزشکی که با آن تعامل دارد، تحلیل میشود.
وظیفه 4: تأیید درخواست تغییر
در چارچوب این وظیفه، درخواستهای تغییر که نرمافزار منتشر شده را تغییر میدهند، ارزیابی و تأیید میشوند.
وظیفه 5: اطلاعرسانی به کاربران و ناظران
در چارچوب این وظیفه، کاربران و ناظران در مورد موارد زیر مطلع میشوند:
- هر گونه مشکل در نرمافزار منتشر شده و پیامدهای استفاده مداوم بدون تغییر
- ماهیت هرگونه تغییرات موجود در نرمافزار منتشر شده و نحوه دسترسی و نصب این تغییرات
فعالیت 3: پیادهسازی اصلاحات
فعالیت پیادهسازی اصلاحات شامل دو وظیفه است.
- استفاده از فرآیندهای ایجاد شده برای پیادهسازی تغییرات
- انتشار مجدد نرمافزار اصلاحشده
وظیفه 1: استفاده از فرآیندهای ایجاد شده برای پیادهسازی تغییرات
در چارچوب این وظیفه، مراحل فرآیند توسعه نرمافزار (طراحی معماری نرمافزار، طراحی تفصیلی نرمافزار، پیادهسازی و تصدیق واحدهای نرمافزار، یکپارچهسازی نرمافزار و آزمون یکپارچگی، آزمون نرمافزار، انتشار نرمافزار) جهت پیادهسازی اصلاحات حاصل از درخواستهای تغییرات و گزارشهای مشکل به کار برده میشوند.
وظیفه 2: انتشار مجدد نرمافزار اصلاحشده
در چارچوب این وظیفه، تغییرات نرمافزار ممکن است بهعنوان بخشی از یک انتشار مجدد کامل نرمافزار منتشر شوند یا بهصورت یک کیت تغییر شامل واحدهای نرمافزار تغییر یافته و ابزارهای لازم برای نصب تغییرات بهعنوان اصلاحاتی برای نرمافزار موجود، ارائه شوند.
+ فرآیند مدیریت ریسک نرمافزار
استاندارد IEC 62304 چهار فعالیت را برای فرآیند مدیریت ریسک نرمافزار تعیین میکند:
- تحلیل نقش نرمافزار در بروز موقعیت خطرناک
- اقدامات کنترل ریسک
- تصدیق اقدامات کنترل ریسک
- مدیریت ریسک تغییرات نرمافزار
فعالیت 1: تحلیل نقش نرمافزار در بروز موقعیتهای خطرناک
فعالیت تحلیل نقش نرمافزار در بروز موقعیتهای خطرناک شامل چهار وظیفه است:
- شناسایی آیتمهای نرمافزاری که میتوانند در بروز یک موقعیت خطرناک نقش داشته باشند.
- شناسایی علل بالقوه بروز یک موقعیت خطرناک
- ارزیابی لیست منتشرشده از ناهنجاریهای SOUP
- مستندسازی علل بالقوه
وظیفه 1: شناسایی آیتمهای نرمافزاری که میتوانند در بروز یک موقعیت خطرناک نقش داشته باشند.
در چارچوب این وظیفه، آیتمهای نرمافزاری که میتوانند به یک موقعیت خطرناک شناسایی شده در تحلیل ریسک دستگاه پزشکی بر اساس ISO 14971:2019 منجر شوند، مشخص میشوند. موقعیت خطرناک میتواند نتیجه مستقیم خطای نرمافزار یا خطای یک اقدام کنترل ریسک پیادهسازی شده در نرمافزار باشد.
وظیفه 2: شناسایی علل بالقوه بروز یک موقعیت خطرناک
در چارچوب این وظیفه، علل بالقوه آیتمهای نرمافزاری شناساییشده در وظیفه قبلی که به یک موقعیت خطرناک منجر میشوند، شناسایی میشوند. علل بالقوه زیر در نظر گرفته میشوند:
- تعیین نادرست یا ناقص عملکرد
- عیوب نرمافزاری در عملکرد آیتم نرمافزاری شناساییشده
- خطا یا نتایج غیرمنتظره از SOUP
- خطای سختافزاری یا سایر نقصهای نرمافزاری که میتوانند منجر به عملکرد غیرقابل پیشبینی نرمافزار شوند
- استفاده نادرست منطقی و قابل پیشبینی
وظیفه 3: ارزیابی لیست منتشرشده از ناهنجاریهای SOUP
در چارچوب این وظیفه، اگر خطا یا نتایج غیرمنتظره از SOUP یک علت بالقوه برای این باشد که آیتم نرمافزاری به ایجاد موقعیت خطرناک منجر شود، هر فهرست ناهنجاری منتشر شده توسط تأمینکننده آیتم SOUP مرتبط با نسخه آیتم SOUP استفاده شده در نرمافزار ارزیابی میشود تا تعیین شود آیا هیچ یک از ناهنجاریهای شناخته شده میتواند منجر به توالی رویدادهایی شود که ممکن است به موقعیت خطرناک منجر شوند یا خیر.
وظیفه 4: مستندسازی علل بالقوه
در چارچوب این وظیفه، علل بالقوهای که آیتم نرمافزاری به ایجاد یک موقعیت خطرناک منجر میشود، در پرونده مدیریت ریسک مستندسازی میشود.
فعالیت 2: اقدامات کنترل ریسک
فعالیت اقدامات کنترل ریسک شامل دو وظیفه است:
- تعریف اقدامات کنترل ریسک
- اقدامات کنترل ریسک پیادهسازیشده در نرمافزار
وظیفه 1: تعریف اقدامات کنترل ریسک
در چارچوب این وظیفه، برای هر علت بالقوهای که آیتم نرمافزاری میتواند به یک موقعیت خطرناک منجر شود و در پرونده مدیریت ریسک مستند شده است، اقدامات کنترلی ریسک تعیین و مستند میشوند. اقدامات کنترلی ریسک میتوانند در سختافزار، نرمافزار، محیط کاری یا دستورالعملهای کاربر اجرا شوند.
وظیفه 2: اقدامات کنترل ریسک پیادهسازیشده در نرمافزار
در چارچوب این وظیفه، اگر یک اقدام کنترلی برای ریسک به عنوان بخشی از عملکردهای یک آیتم نرمافزاری اجرا شود، اقدام کنترل ریسک در نیازمندیهای نرمافزار گنجانده میشوند، یک کلاس ایمنی نرمافزار به آیتم نرمافزاری بر اساس اثرات احتمالی خطر که اقدام کنترل ریسک در حال کنترل آن است، اختصاص داده میشود و آیتم نرمافزاری مطابق با فرآیند توسعه نرمافزار توسعه داده میشود.
فعالیت 3: تصدیق اقدامات کنترل ریسک
فعالیت تصدیق اقدامات کنترلی شامل دو وظیفه است:
- تصدیق اقدامات کنترلی
- مستند کردن قابلیت ردیابی
وظیفه 1: تصدیق اقدامات کنترلی
در چارچوب این وظیفه، پیادهسازی هر اقدام کنترل ریسک مستند شده باید تصدیق شود و این تصدیق نیز باید مستند گردد.
وظیفه 2: مستند کردن قابلیت ردیابی
در چارچوب این وظیفه، قابلیت ردیابی خطرات نرمافزار طبق موارد زیر مستندسازی میشود:
- از موقعیت خطرناک به آیتم نرمافزاری
- از آیتم نرمافزاری به علت خاص (نقص) نرمافزار
- از علت خاص نرمافزار به اقدام کنترلی ریسک
- از اقدام کنترلی ریسک به تصدیق آن
فعالیت 4: مدیریت ریسک تغییرات نرمافزار
فعالیت مدیریت ریسک تغییرات نرمافزار شامل سه وظیفه است:
- تحلیل تغییرات نرمافزار پزشکی از نظر ایمنی
- تحلیل تأثیر تغییرات نرمافزاری بر اقدامات کنترل ریسک موجود
- انجام فعالیتهای مدیریت ریسک بر اساس تحلیلها
وظیفه 1: تحلیل تغییرات نرمافزار پزشکی از نظر ایمنی
در چارچوب این وظیفه، تغییرات نرمافزار دستگاه پزشکی تحلیل میشود تا مشخص شود که آیا:
- علتهای بالقوه مضاعف نرمافزار که به ایجاد یک موقعیت خطرناک منجر میشوند، معرفی میشوند؟
- نیاز به اقدامات اضافی برای کنترل ریسک نرمافزار وجود دارد؟
وظیفه 2: تحلیل تأثیر تغییرات نرمافزاری بر اقدامات کنترل ریسک موجود
در چارچوب این وظیفه، تغییرات نرمافزار، از جمله تغییرات مربوط به SOUP، تحلیل میشود تا مشخص شود آیا اصلاح نرمافزار میتواند با اقدامات کنترل ریسک موجود تداخل داشته باشد یا خیر.
وظیفه 3: انجام فعالیتهای مدیریت ریسک بر اساس تحلیلها
در چارچوب این وظیفه، تمام فعالیتهای مدیریت ریسک تعیین شده بر اساس تحلیلهای انجامشده در وظایف قبلی، انجام میشود.
+ فرآیند مدیریت پیکربندی نرمافزار
استاندارد IEC 62304، سه فعالیت را برای فرآیند مدیریت پیکربندی نرمافزار تعیین میکند:
تعیین پیکربندی
کنترل تغییر
ثبت وضعیت پیکربندی
فعالیت 1: تعیین پیکربندی
فعالیت تعیین پیکربندی شامل سه وظیفه است:
- تعیین SOUP
- تعیین مستندسازی پیکربندی سیستم
وظیفه 1: ایجاد روشهایی برای تعیین آیتمهای پیکربندی
در چارچوب این وظیفه، یک طرح برای شناسایی یکتای (منحصر به فرد) آیتمهای پیکربندی و نسخههای مربوط به آنها که باید برای پروژه کنترل شوند، ایجاد میشود. این طرح شامل سایر محصولات نرمافزاری و اجزایی مانند SOUP و مستندات نیز میشود.
وظیفه 2: تعیین SOUP
در چارچوب این وظیفه، برای هر مورد پیکربندی SOUP که استفاده میشود، از جمله کتابخانههای استاندارد، مستندات زیر فراهم میشود:
- عنوان
- تولیدکننده
- شناسه منحصر به فرد SOUP
وظیفه 3: تعیین مستندسازی پیکربندی سیستم
در چارچوب این وظیفه، مجموعهای از آیتمهای پیکربندی و نسخههای آنها را که پیکربندی نرمافزار را تشکیل میدهند، مستندسازی میشوند.
فعالیت 2: کنترل تغییر
فعالیت کنترل تغییر شامل چهار وظیفه است:
- تأیید درخواستهای تغییر
- پیادهسازی تغییرات
- تأیید تغییرات
- فراهم کردن روشی برای قابلیت ردیابی تغییرات
وظیفه 1: تأیید درخواستهای تغییر
در چارچوب این وظیفه، فقط در پاسخ به یک درخواست تغییر تأیید شده، اقلام پیکربندی تغییر میکنند.
وظیفه 2: پیادهسازی تغییرات
در چارچوب این وظیفه، تغییر مطابق آنچه در درخواست تغییر مشخص شده است، اجرا میشود. علاوه بر این، هر فعالیتی که نیاز به تکرار به دلیل تغییر دارد را شناسایی و انجام دهد، از جمله تغییرات مربوط به طبقهبندی ایمنی آیتم نرمافزاری و نرمافزار.
وظیفه 3: تأیید تغییرات
در چارچوب این وظیفه، تغییر تصدیق میشود، از جمله تکرار هر گونه تصدیق که یک تغییر باعث بیاعتباری آن شده باشد.
وظیفه 4: فراهم کردن روشی برای قابلیت ردیابی تغییرات
در چارچوب این وظیفه، یک مسیر ردیابی ایجاد میشود که در آن هر یک از موارد زیر ارزیابی شوند:
- درخواست تغییر
- گزارش مشکل مرتبط
- تایید درخواست تغییر
فعالیت 3: ثبت وضعیت پیکربندی در چارچوب این فعالیت، سوابق قابل بازیابی از تاریخچه آیتمهای پیکربندی کنترلشده، از جمله پیکربندی سیستم نگهداری میشود.
+ فرآیند حل مشکل نرمافزار
استاندارد IEC 62304، هشت وظیفه را برای فرآیند حل مشکل نرمافزار تعیین میکند:
- آمادهسازی گزارشهای مشکلات
- بررسی مشکل
- اطلاعرسانی به ذینغعان مرتبط
- استفاده از فرآیند کنترل تغییر
- نگهداری سوابق
- تحلیل مشکلات به منظور شناسایی روندها
- تصدیق حل مشکل نرمافزار
- محتوای مستندات آزمون
وظیفه 1: آمادهسازی گزارشهای مشکلات
در چارچوب این وظیفه، برای هر مشکلی که در یک نرمافزار پزشکی شناسایی میشود، یک گزارش مشکل تهیه میشود. گزارشهای مشکل باید شامل بیانیهای از اهمیت بحرانی باشند (برای مثال، تأثیر بر عملکرد، ایمنی یا امنیت) و همچنین سایر اطلاعاتی که ممکن است در حل مشکل کمک کنند (برای مثال، دستگاهها و لوازم جانبی که تحت تأثیر قرار میگیرند).
وظیفه 2: بررسی مشکل
در چارچوب این وظیفه، مشکل بررسی و علل آن شناسایی میشود، ارتباط مشکل با ایمنی با استفاده از فرآیند مدیریت ریسک نرمافزار ارزیابی میشود، نتایج بررسی و ارزیابی مستند میشوند و درخواست تغییرها برای اقداماتی که برای اصلاح مشکل لازم است ایجاد میشوند یا دلایل عدم اقدام مستندسازی میشوند.
وظیفه 3: اطلاعرسانی به ذینغعان مرتبط در چارچوب این وظیفه، در صورت لزوم وجود مشکل به ذینفعان مرتبط اطلاعرسانی میشود.
وظیفه 4: استفاده از فرآیند کنترل تغییر در چارچوب این وظیفه، تمام درخواستهای تغییر با در نظر گرفتن الزامات فرآیند کنترل تغییر، تأیید و اجرا میشوند.
وظیفه 5: نگهداری سوابقدر چارچوب این وظیفه، سوابق گزارشهای مشکلات و راهحلهای آنها از جمله تأییدیههایشان نگهداری میشوند.
وظیفه 6: تحلیل مشکلات به منظور شناسایی روندها
وظیفه 7: تصدیق حل مشکل نرمافزار
در چارچوب این وظیفه، رفع مشکلات بررسی میشود تا تعیین شود که آیا
- گزارش مشکل حل شده و گزارش مشکل بسته شده است؟
- روندهای نامطلوب معکوس شدهاند؟
- درخواستهای تغییر در نرمافزار پزشکی و فعالیتهای مربوطه پیادهسازی شدهاند؟
- مشکلات اضافی ایجاد نشدهاند؟
وظیفه 8: محتوای مستندات آزمون
در چارچوب این وظیفه، هنگام آزمون، آزمون مجدد یا آزمون برگشتی سیستمها و نرمافزار پزشکی پس از یک تغییر، موارد زیر در مستندات آزمون درج میشوند:
نتایج آزمون
ناهنجاریهای یافتشده
نسخه نرمافزار آزمایش شده
پیکربندیهای مرتبط با آزمون سختافزار و نرمافزار
ابزارهای مرتبط با آزمون
تاریخ آزمون
آزمونگر
منابع:
1.IEC 62304: 2015- Medical device software – Software life cycle processes
2.Johnny Marques et. al, Fundamentals of IEC 62304 with an Agile Software Development Model, 2021