
دستگاه پرتودرمانی Therac-25 که توسط شرکت کانادایی Atomic Energy of Canada Limited (AECL) طراحی و ساخته شده بود، به یکی از شناختهشدهترین نمونههای شکست نرمافزاری در سیستمهای ایمنی-حیاتی تبدیل شد. این دستگاه از اوایل دهه ۱۹۸۰ به منظور درمان سرطان به کار گرفته میشد و قابلیت تولید هم پرتو الکترونی و هم پرتو ایکس را داشت؛ اما به دلیل مجموعهای از خطاهای نرمافزاری و نقصهای طراحی، چندین مورد پرتودهی بسیار شدید را رقم زد.
بین سالهای ۱۹۸۵ تا ۱۹۸۷، حداقل ۶ حادثه مرتبط با Therac-25 ثبت شد. در برخی موارد، بیماران به جای دوز تجویز شده، مقادیر بسیار بیشتری از پرتو را دریافت کردند. این حوادث منجر به جان باختن سه بیمار و آسیبهای جدی به سه نفر دیگر شد.
یکی از مشکلات اساسی Therac-25 این بود که برخی از قفلهای ایمنی سختافزاری که در مدلهای قبلی وجود داشتند، حذف شده بودند و در نتیجه، مسئولیت جلوگیری از وضعیتهای خطرناک به نرمافزار سپرده شده بود. یکی از خطاهای کلیدی نیز به شرایط رقابتی مربوط میشد؛ به این معنا که ترتیب بسیار سریع رخدادهای مختلف میتوانست برنامه را به وضعیتی سوق دهد که سیستم تصور کند دستگاه در حالت ایمن قرار دارد، در حالی که در واقع آماده تولید پرتو اشتباه بود.
پیامهای خطای مبهم نیز مشکل را تشدید کردند. به عنوان مثال، برخی اپراتورها با کدهایی مانند Malfunction 54 مواجه میشدند و چون دستگاه به نظر میرسید که درمان را متوقف کرده، تصور میکردند که مشکل جدی نیست.
بررسیهای بعدی نشان داد که برخی خطاها در ابتدا به راحتی توسط سازنده قابل بازتولید نبودند و گزارشهای کاربران نیز به اندازه کافی جدی گرفته نمیشدند.
اهمیت Therac-25 تنها به تعداد قربانیانش محدود نمیشود؛ این پرونده به یک مطالعه کلاسیک در زمینه مهندسی نرمافزار، ایمنی سیستمهای حساس و اخلاق حرفهای تبدیل شده است. بررسیهای معروف نانسی لوسون و کلارک ترنر درباره این حوادث نشان داد که مشکل تنها ناشی از یک باگ منفرد نبوده و مجموعهای از ضعفها در طراحی، آزمایش، مستندسازی، رابط کاربری و فرایند واکنش به گزارشهای کاربران در وقوع این فاجعه نقش داشتهاند.
Therac-25 امروز به عنوان یک یادآوری از یک اصل اساسی در مهندسی سیستمهای حساس شناخته میشود: نمیتوان ایمنی را صرفاً به نرمافزار واگذار کرد و انتظار داشت که یک خطای برنامهنویسی هیچ عواقبی نداشته باشد. در حوزههای پزشکی، هوانوردی و سایر زمینههای حیاتی، نرمافزار باید در کنار لایههای مستقل سختافزاری، آزمونهای دقیق و سازوکارهای مطمئن نظارتی قرار گیرد.
سوالات متداول
دستگاه Therac-25 چه کاربردی داشت؟
این دستگاه برای درمان سرطان و تولید پرتو الکترونی و پرتو ایکس استفاده میشد.
چه مشکلاتی در Therac-25 وجود داشت؟
مشکلاتی نظیر حذف قفلهای ایمنی سختافزاری و خطاهای نرمافزاری منجر به پرتودهیهای شدید و خطرناک شد.
چند حادثه مرتبط با Therac-25 ثبت شده است؟
بین سالهای ۱۹۸۵ تا ۱۹۸۷، حداقل ۶ حادثه مرتبط با این دستگاه ثبت شده است.
نتایج حوادث Therac-25 چه بود؟
این حوادث منجر به جان باختن سه بیمار و آسیبهای جدی به سه نفر دیگر شد.
چرا Therac-25 به یک مطالعه کلاسیک تبدیل شد؟
این پرونده به دلیل ضعفهای طراحی و مشکلات نرمافزاری به یک مطالعه کلاسیک در مهندسی نرمافزار و ایمنی سیستمهای حساس تبدیل شد.



