دنیای مهندسی نرمافزار در مهرماه ۱۴۰۵ یکی از ستونهای استوار و پیشگامان خود را از دست داد. مارگارت همیلتون، دانشمند علوم کامپیوتر و ریاضیدانی که با توسعه نرمافزار پروازی پروژه آپولو، عملاً فرود امن انسان بر سطح ماه را ممکن ساخت، در ۹۰ سالگی چشم از جهان فروبست. او نه تنها یک کدنویس، بلکه بنیانگذار پارادایمهای مدرن در «مهندسی نرمافزار» به معنای آکادمیک و صنعتی آن بود.
از سیستمهای هواشناسی تا چالشهای کیهانی در MIT
مسیر شغلی همیلتون با پیوستن به آزمایشگاه ابزار دقیق MIT در سال ۱۹۶۵ تغییر کرد. پیش از آن، او در حوزههای پردازش مدلهای هواشناسی با استفاده از کامپیوترهای PDP-1 و LGP-30 فعالیت داشت. اما در دوران همکاری با پروژه آپولو، او مسئولیت توسعه نرمافزار پروازی ماژول فرماندهی و ماژول ماه را بر عهده گرفت. در زمانی که برنامهنویسی هنوز به عنوان یک رشته مهندسی جدی تلقی نمیشد، او با نبوغ خود مفاهیمی نظیر «مدیریت خطا» و «سیستمهای تابآور» را معرفی کرد.
شاهکار «فراموشش کن» و فلسفه طراحی ایمن
یکی از درخشانترین ابداعات او، برنامهای بود که با نام کنایهآمیز Forget It شناخته میشد. در حالی که دیگران این قطعه کد را غیرضروری میدانستند، همیلتون بر اهمیت آن پافشاری کرد. این برنامه در یکی از پروازهای بدون سرنشین آپولو، زمانی که سیستم با خطایی پیشبینی نشده مواجه شد، به کار آمد و عملاً پرواز را از شکست نجات داد. این اتفاق همیلتون را از یک نیروی تازهکار به یک متخصص بیرقیب در تیم تبدیل کرد.
معماری نرمافزار در لبه پرتگاه: مأموریت آپولو ۱۱
در لحظات حیاتی فرود آپولو ۱۱ بر سطح ماه، سیستم کامپیوتر هدایتگر با چندین آلارم «سرریز اجرایی» (Executive Overflows) مواجه شد. در اینجا بود که تدبیر همیلتون برای گنجاندن لایههای حفاظتی در کدها، خود را نشان داد. سیستم به جای متوقف شدن کامل، وظایف غیرضروری را حذف و بر اولویتهای اصلی یعنی «فرود» تمرکز کرد. این طراحی مبتنی بر اولویتبندی پردازشها (Priority Scheduling) به فضانوردان اجازه داد تا با وجود هشدارهای سیستمی، فرود را با موفقیت به سرانجام برسانند.
میراث فنی و مفاهیم ابداع شده
- مهندسی نرمافزار: ابداع و ترویج این عنوان برای تفکیک کدنویسی از سایر رشتههای مهندسی.
- سیستمهای تابآور (Fault-Tolerant Systems): طراحی ساختاری که در آن خرابی یک بخش منجر به از کار افتادن کل سیستم نمیشود.
- مدلسازی DBTF: متدولوژی «توسعه پیش از واقعیت» جهت شناسایی و رفع خطاها در مراحل اولیه طراحی.
- زبان جهانی سیستمها (USL): زبانی مبتنی بر فرمالیسم برای طراحی سیستمهای پیچیده که همیلتون آن را بنیان نهاد.
- فلسفه طراحی User-in-the-loop: نگاه ویژه به تعامل انسان و ماشین و در نظر گرفتن خطاهای انسانی به عنوان سناریوهای تست واقعی.
تأثیر بر توسعه نرمافزارهای مدرن
همیلتون همواره بر این اصل تأکید داشت که باید سیستمها را برای خطاهایی طراحی کرد که «بعید است رخ دهند». این تفکر او امروزه در طراحی سیستمهای توزیعشده، هستههای سیستمعامل و نرمافزارهای حساس به امنیت (Mission-Critical) به عنوان یک اصل بدیهی شناخته میشود. او در سال ۲۰۱۶ مدال آزادی ریاستجمهوری را دریافت کرد تا جایگاهش به عنوان یکی از تأثیرگذارترین مهندسان قرن بیستم تثبیت شود.