چکیده:
با توجه به اهمیت امنیت نرمافزارهای رایانه ای در سازمانهای نظامی، برنامه نویسان و طراحان این سیستمها ملزم به رعایت مسائل امنیتی در برنامهنویسی هستند. این مقاله بر روی مرحله کدنویسی در چرخه تولید نرمافزار تمرکز دارد. هدف کدنویسی پدافندی، جلوگیری از بروز حوادث ناشی از کدنویسی نامناسب است. این حوادث شامل ازکارافتادن برنامه، دسترسی به کد منبع، استفاده بیشازحد از منابع سختافزاری و افزایش زمان نیاز جهت بهروزرسانی برنامه هستند. در ادامه استفاده از آرگومانهای نامی در فراخوانی تابع معرفی گردید که این عوامل منجر به افزایش خوانایی و درنتیجه کاهش زمان بهروزرسانی برنامه میشود. جهت مدیریت خطاهای حین اجرا، روش شکست سریع استثناءها و نحوه مدیریت مناسب آنها ارائه شده است. این اقدامات موجب افزایش امنیت برنامه و عدم ازکارافتادن برنامه بهدلیل کدنویسی نامناسب گردیده و از طرفی موجب افزایش تعداد توابع، کلاسها و درنتیجه افزایش تعداد خط کد میشود. این مسئله ممکن است موجب نگرانی درباره افزایش زمان اجرای برنامه و هزینه پردازشی شود. این مقاله به پیادهسازی یک برنامه در دو حالت کدنویسی پدافندی و غیرپدافندی پرداخته است. نتایج نشان میدهد که میانگین عمر نخها در حالت پدافندی 23/8 ثانیه است، درحالیکه این مقدار برای حالت غیرپدافندی، 80/8 ثانیه بود. از طرفی، میزان درصد استفاده از پردازنده در حالتهای پدافندی و غیرپدافندی به ترتیب 32/54% و 70/54%، از طرف دیگر برای هزینه پردازشی کاربر نیز بهترتیب 23/24% و 41/24% بود. این اعداد حاکی از هزینه پردازشی و زمان اجرای یکسان برنامه در دو حالت پدافندی و غیرپدافندی است.
خلاصه ماشینی:
"این کار موجب افزایش فضای حافظه اشغالشده جهت خوانایی برنامه میشود، همچنین کد منبع طولانیتری نیز ایجاد شده است؛ به همین دلیل، بهتر است از آرگومانهای نامی استفاده شود.
/ شکل (9): روند هزینه کدنویسی در زمان با رعایت آزمون واحد [20] 3- مدیریت استثنا برنامهنویس نهایت تلاش خود را در جهت ایجاد برنامهای که با خطا یا اشکال مواجه نشود، انجام میدهد ولی گاهی در هنگام اجرا، برنامه با اشکالاتی مواجه میشود.
/ شکل (12): کد منبع تقسیم دوم (رجوع شود به تصویر صفحه) شکل (13): کد منبع تقسیم سوم 3-2- روش شکست سریع هنگام بروز خطا در برنامه، بهتر است کاربر برنامهنویس و یا حتی کامپایلر سریعا متوجه بروز آن شده تا از ادامه اجرای برنامه که گاهی خطرناک یا هزینهبر است، جلوگیری شود؛ به این روش، شکست سریع گفته میشود.
IOException</TD> <TD>خروج شاخص از محدوده آرایه</TD> <TD>IndexOutOfRangeException</TD> <TD>عدم سازگاری با نوع آرایه</TD> <TD>ArrayTypeMismatchException</TD> <TD>تولید شی پوچ</TD> <TD>NullReferenceException</TD> <TD>تقسیم بر صفر</TD> <TD>DivideByZeroException</TD> <TD>تبدیل نوع</TD> <TD>InvalidCastException</TD> <TD>کمبود فضا</TD> <TD>OutOfMemoryException</TD> <TD>سرریز</TD> <TD>StackOverflowException</TD> 4- پیادهسازی و ارزیابی جهت ارزیابی کارایی کدنویسی پدافندی و کدنویسی عادی -که در این مقاله غیرپدافندی نامیده میشود- یک برنامه را با دو حالت پدافندی و غیرپدافندی در سیستمی با مشخصات پردازنده CORETMi7 شرکت اینتل و حافظه اصلی 8 گیگابایت اجرا شده است.
در تابع شفاف، توضیحات بهطور مؤثر نوشته شده و ورودیهای تابع کنترل میشوند، همچنین فراخوانی آنها با آرگومانهای نامی انجام میشود که این عوامل موجب افزایش خوانایی کد، کاهش پیچیدگی و درنتیجه کاهش زمان بهروزرسانی برنامه میشوند."