جهان فناوری در مهرماه ۱۴۰۵، یکی از ستونهای استوار خود را از دست داد؛ مارگارت همیلتون، دانشمند علوم کامپیوتر و ریاضیدانی که نه تنها اصطلاح «مهندسی نرمافزار» را در ادبیات فنی جهان تثبیت کرد، بلکه با طراحی ساختارهای مقاوم در برابر خطا، مسیر فتح ماه را برای بشریت هموار ساخت. درگذشت او در ۹۰ سالگی فرصتی است تا بار دیگر به اهمیت زیرساختهای نرمافزاری در مدیریت سیستمهای حیاتی نگاهی تحلیلی داشته باشیم.
معماری نرمافزار در عصر آپولو؛ فراتر از کدنویسی ساده
در دهه ۱۹۶۰ میلادی، زمانی که سختافزارها هنوز در مراحل ابتدایی توسعه قرار داشتند، همیلتون با درک عمیق از محدودیتهای محاسباتی، رویکردی را پایه نهاد که امروزه به عنوان «برنامهنویسی دفاعی» شناخته میشود. او در آزمایشگاه ابزار دقیق موسسه فناوری ماساچوست (MIT)، مدیریت توسعه نرمافزار پروازی برای برنامه آپولو را بر عهده گرفت. چالش اصلی او، مدیریت منابع بسیار محدود حافظه و پردازش در برابر نیازهای بلادرنگ (Real-time) بود.
مهندسی نرمافزار به مثابه یک ضرورت رگولاتوری و ساختاری
همیلتون با مشاهده عدم جدیت کافی در جوامع آکادمیک و صنعتی نسبت به نرمافزار، عبارت «مهندسی نرمافزار» را مطرح کرد تا میان «کدنویسی سرگرمیمحور» و «طراحی سامانههای حیاتی» مرزبندی مشخصی ایجاد کند. او معتقد بود همانطور که مهندسان عمران برای پایداری سازهها ضریب اطمینان در نظر میگیرند، برنامهنویسان نیز باید برای مدیریت خطاهای غیرقابل پیشبینی در سیستمهای بحرانی (Mission-critical)، مکانیسمهای شکست امن (Fail-safe) طراحی کنند.
درسهای همیلتون برای اکوسیستم فناوری اطلاعات ایران
تحلیل عملکرد مارگارت همیلتون در جریان فرود آپولو ۱۱ (۲۰ ژوئیه ۱۹۶۹ میلادی) درسهای ارزشمندی برای زیرساختهای شبکه و IT ایران دارد. در آن ماموریت، هنگامی که کامپیوتر با هشدار «اضافهبار» (Overload) مواجه شد، نرمافزارِ «اولویتمحور» (Priority-based) که توسط تیم همیلتون طراحی شده بود، به صورت خودکار فرآیندهای غیرضروری را حذف کرد تا هسته اصلی سیستم کنترل حفظ شود. این رویکرد، مشابه همان الگوریتمهای مدیریت ترافیک در شبکه و QoS (کیفیت خدمات) در مخابرات است که در زمان ازدحام شبکه، ترافیک حساس را بر سایر دادهها ارجحیت میدهد.
مشخصات فنی و تحلیل میراث علمی
- رویکرد سیستمیک: گذار از برنامهنویسی دستورمحور به مهندسی سیستمهای پیچیده.
- اولویتبندی پردازشی: پیادهسازی مکانیزمهای تصمیمگیری بلادرنگ در هسته سیستمعامل.
- پایداری عملیاتی: طراحی متدهای برنامهنویسی برای مدیریت شرایط پیشبینینشده در سیستمهای دارای محدودیت منبع.
- تاثیرگذاری بر استانداردها: رواج استانداردسازی در مستندسازی کدهای منبع جهت تضمین بقای پروژههای بلندمدت.
امروز که اکوسیستم دیجیتال کشور در حال گذار به سوی توسعه زیرساختهای ابری و سرویسهای پایه ملی است، رویکرد همیلتون به ما یادآوری میکند که پایداری یک سامانه، نه در ویژگیهای پرزرقوبرق، بلکه در «تابآوری نرمافزاری» (Software Resilience) در لحظات بحرانی نهفته است.