خلاصه

با گذشت زمان کارایی یک نرم افزار کاهش میابد. نرم افزار سالخورده اغلب بر عملکرد سیستم نرم افزار اثر گذاشته و در نهایت موجب از کار افتادن آن می شود. رویکرد جدید برای کنترل شکست ، دوباره جوان سازی آن است که می توان آن را به عنوان یک راه حل پیشگیرانه در نظر گرفت. برای برآمدن از پس خطاهای نرم افزاری و استفاده کامل از سیستمهای چند هسته ای این مقاله روش موثری درمعماری خاصی، برای طراحی همزمان سخت افزار و نرم افزار ارائه می دهد. همچنین سیستمهای متحرک و پویای فراگیر که در حال گسترش سریع می باشند، به مدیریت و پشتیبانی سازگار و انعطاف پذیر نیاز دارند. به موازات این، بسیاری از این سیستمها بحرانی و حساس می باشند و به کنترل خطای بسیار دقیق نیاز دارند.

کلمات کلیدی: پیری نرم افزار، جوانسازی نرم افزار،تکنولوژیBIST ، معماری نرم افزار.

۱

.۱ مقدمه

برای برنامه های کاربردی عصر حاضر الزامات سختگیرانه ای با عنوان “اعتماد و اطمینان نرم افزار” تحمیل میکنند. زیرا در بسیاری از موارد عواقب شکست نرم افزار می تواند به خسارات عظیم اقتصادی و یا به مخاطره افتادن زندگی بشر منجر شود. در پدیده پیری نرم افزارها، کارایی آنها با گذشت زمان دچار افت می شود. این پدیده ممکن است به علت از بین رفتن منابع و دارائیهای سیستم مانند نشت حافظه، قفلهای سخت، تهدیدهایی که همیشه موجودند، از بین رفتن ذخیره سازها، از بین رفتن داده ها و انباشته شدن خطاهای عددی رخ دهد. این عوامل می توانند موجب کاهش کارایی سیستم، از بین رفتن امنیت اطلاعات و حتی شکست کامل سیستم شوند. این پدیده می تواند در هر نوع نرم افزاری حتی با پیچیدگیهای زیاد علی الخصوص آن دسته که برای کاربردهای طولانی مورد استفاده قرار می گیرند، دیده شود. موثرترین راه برای مقابله کردن با پیری نرم افزار استفاده از تکنیکهای بازسازی سیستم می باشد که توسط Huang et al ارائه شد. عموما، جوان سازی و بازسازی نرم افزار شامل بازداشتن نرم افزار از کار در زمانهای مقطعی و “پاک کردن” محیط و خود نرم افزار از خطاها و موارد اضافی جمع شده، یکپارچه سازی، تمیزکردن هسته آن و مرتب کردن جداول server و… می شود. بقیه قسمت های پژوهش ارائه شده به این شرح می باشد ، بخش۲ خطاهای مربوط به پیر شدن نرم افزار را بررسی می کند، بخش ۳ در مورد مدل دو ویرایشی کنترل خطای سیستم با استفاده از بازسازی یا جوان سازی است، بخش ۴ ساختار جدید ی بر اساس طراحی همزمان سخت افزار و نرم افزار و تکنولوژی BIST(Built-In-Self-Test) برای خطایابی ارائه میدهد، بخش ۵ در مورد امکانات بازگرداندن سیستم های گسترده پس از خرابی هاست و در نهایت بخش ۶ نتیجه گیری دربر خواهد داشت.

.۲ خطاهای مربوط به پیر شدن نرم افزار

خطاهای رخ داده در سیستم را می توان به شکل زیر طبقه بندی کرد، فاز ایجاد و بروز خطا، مرزهای عملکردی سیستم، دلیل ایجاد خطا، مفاد ایجاد آن

æ [۲] …به عبارت دیگر، ویرایشهای مختلف نرم افزار، که با تکنیکهای مختلفی گسترش یافته است، ممکن است در همان شرایط قبلی دچار خرابی شوند. بنابراین ما خطاهای عمومی مرتبط با پیری نرم افزار را به شکل زیر تشریح می کنیم.

خطاهای معمول پیری نرم افزار، ممکن است در یک ویرایش و یا تمامی ویرایشهای یک نرم افزار موجود باشد، که می تواند سبب خرابی همه ویرایشهای نرم افزار شود. اگر دقیقتر بررسی کنیم، تعداد خطاها در k ویرایش از n ویرایش نرم افزار کنترل خطا وجود دارد که(.( ۲ ≤ k ≤ n و n از n یعنی اینکه این خطا در همه ویرایشهای نرم افزار وجود دارد. مشخص است که k1 خطا زیر مجموعه ای از k2 است زمانی که(.(۲≤k1≤k2≤n اگر دو ویرایش از نرم افزار خطای عمومی پیری را نداشته باشند نشان می دهد که طراحی این دو جدا از هم بوده است.

برای مثال شکل (۱) را در نظر بگیرید که خطای عمومی و کلی را در بین سه ویرایش یک نرم افزار نشان می دهد. در شکل (۱) ، دایره های A , B
æ C نشان دهنده تمام خطاهای موجود در سیستم می باشند؛
و ۲ تا از ۳ خطای معمول رخ داده در ویرایشهای موجود نرم افزارها در ۳ ویرایش مختلف
می باشند؛ ۳ خطای معمول سیستم را نشان می دهند که در تمام ویرایشهای آن موجود است.