Abstract
The integration of Commercial-Off-The-Shelf (COTS) components in software has reduced time-to-market and production costs, but selecting the most suitable component, among those available, remains still a challenging task. This selection process, typically named benchmarking, requires evaluating the behaviour of eligible components in operation, and ranking them attending to quality characteristics. Most existing benchmarks only provide measures characterising the behaviour of software systems in absence of faults ignoring the hard impact that both accidental and malicious faults have on software quality. However, since using COTS to build a system may motivate the emergence of dependability issues due to the interaction between components, benchmarking the system in presence of faults is essential. The recent ISO/IEC 25045 standard copes with this lack by considering accidental faults when assessing the recoverability capabilities of software systems. This paper proposes a dependability benchmarking approach to determine the impact that faults (noted as disturbances in the standard) either accidental or malicious may have on the quality features exhibited by software components. As will be shown, the usefulness of the approach embraces all evaluator profiles (developers, acquirers and third-party evaluators) identified in the ISO/IEC 25000 "SQuaRE" standard. The feasibility of the proposal is finally illustrated through the benchmarking of three distinct software components, which implement the OLSR protocol specification, competing for integration in a wireless mesh network
چکیده
یکپارچه سازیِ مولفه های محصولِ نرم افزاری با تولید انبوه تجاری در نرم افزار، زمانِ لازم برای ورود به بازار و هزینه های تولید را کاهش داده، ولی انتخاب مناسب ترین اجزا، ازمیان مواردی که بیش از همه موجود هستند، همچنان یک کارِ چالش برانگیز می باشد. این فرایند انتخاب، که بطور نمونه مقایسه با بهترین ها یا محک زنی (Benchmarking) نامیده می شود، مستلزمِ ارزیابی رفتار عملکردیِ اجزای قابل انتخاب، و رتبه بندی آنها با توجه به خصوصیات کیفیت می باشد. اکثر معیارهای موجود تنها معیارهایی را برای توصیف رفتار سیستم های نرم افزاری درغیاب خطاها و با نادیده گرفتنِ تاثیرِ شدیدی که خطاهای تصادفی و عمدی برروی کیفیت نرم افزار دارند، فراهم می کنند. هرچند ازآنجایی که استفاده از COTS برای ساختن یک سیستم ممکن است به دلیل تعامل میان اجزا، سبب ظهور مشکلاتی در قابلیت اطمینان شود، محک زنی سیستم درحضور خطاها ضروری است. استاندارد اخیرِ ISO/IEC 25045 با درنظر گرفتن خطاهای تصادفی هنگام ارزیابی قابلیت های بازیابی سیستم های نرم افزاری، براین نقص و کمبود غلبه می کند. این مقاله یک روش محک زنیِ قابلیت اطمینان را برای تعیین تاثیری که خطاها (که به عنوان اختلال و آشفتگی در استاندارد ذکر می شود) چه تصادفی یا چه عمدی ممکن است برروی خصوصیات کیفیتیِ نمایش داده شده توسط اجزای نرم افزاری داشته باشند، مطرح می کند. همانطور که نشان داده خواهد شد، سودمندی این روش باعث دربرگرفتنِ تمام صورتهای ارزیابی کننده (برنامه سازان، بدست آورندگان، ارزیابی کنندگان شخص ثالث) - که در استاندارد ISO/IEC 25000 “SQuaRE” مشخص شده - می شود. قابلیت اجرای این طرح درنهایت با محک زدن سه جزء نرم افزاری مجزا، نشان داده شده است، که مشخصات پروتکل OLSR را پیاده می کنند، و برای یکپارچگی در یک شبکۀ مشِ بی سیم با هم رقابت می کنند.
1-مقدمه
در یک زمینۀ کلی، که فروشندگان نرم افزار از همه جای دنیا، برسرِ عرضه جدیدترین، معتبرترین، و ارزان ترین محصولات با هم رقابت می کنند، کاهش زمانِ ورود محصول به بازار و هزینه های ساخت نرم افزار یک مسئلۀ مهم می باشد. این وضعیت باعث ارتقاء و توسعۀ استفاده و یکپارچه سازیِ مولفه های شخص ثالثِ قابل استفاده مجدد - که تحت عنوان مولفه های محصول نرم افزاری با تولید انبوه تجاری (COTS) شناخته می شود - در محصولات نرم افزاری شده است...