دانستنی‌ها

کاوش مخازن نرم افزاری: فرصت ها و چالش ها

فرصت هایی که تحلیل نتایج حاصل از کاوش مخازن نرم افزاری (Mining Software Repositories) فراهم می کند منجر به استقبال مهندسین نرم افزار از ابزارهای کاوش مخازن نرم افزاری شده است. بهره وری از این فرصت ها مستلزم شناخت صحیح ابزارهای کاوش مخازن نرم افزاری است.

 

کشف پیمانه های خطاخیز (error-prone modules)، کشف کلونی های کد (code clones)، بررسی فاکتورهای امنیتی نرم افزار، تسهیل تکامل کد، تحلیل شبکه های اجتماعی، و بازیابی اطلاعات از جمله ی کاربردهای کاوش مخازن نرم افزاری هستند. در [1] و [2] تعدادی از ابزارهای کاوش مخازن نرم افزاری معرفی شده اند و کاربردهای مربوطه توضیح داده شده اند. به عنوان مثال، سه نمونه از ابزارهای این حوزه در ادامه آورده شده اند:

          SoftChange: این ابزار امکان دنبال کردن مسیر تکامل یک سیستم نرم افزاری را در طول زمان فراهم می آورد.

          CloneTracker: این ابزار امکان کشف و تحلیل کلونی های کد را فراهم می کند. منظور از کلونی، قطعه هایی از کد است که از نظر معنایی یا نحوی یکسان هستند. می توان با کشف این قطعات، آن ها را در یک پیمانه قرار داد و امکان استفاده ی مجدد از آن را فراهم کرد.

          Chianti: یک افزونه است که برای Eclipse طراحی شده است و می تواند برای اشکال زدایی (debugging) و نیز پیش بینی تبعات اعمال تغییرات در برنامه های نوشته شده به زبان جاوا مورد استفاده قرار گیرد.

علی رغم تمامی فرصت هایی که کاوش مخازن نرم افزاری فراهم می کند، دستیابی به اهداف مورد نظر در کاوش مخازن نرم افزاری چالش هایی را نیز به دنبال دارد؛ از جمله ی این چالش ها می توان به انتخاب مخزن نرم افزاری مناسب و نیز انتخاب ابزار مناسب برای کاوش اشاره کرد. علاوه بر این، بعضی افراد به اشتباه تصور می کنند که منظور از کاوش مخازن نرم افزاری کاوش مخازن کدی است که در مرحله ی پیاده سازی ایجاد می شوند اما کاوش مخازن نرم افزاری می تواند در هر مرحله ای از ایجاد نرم افزار مفید باشد. به عنوان مثال در [3] مخزنی از مدل های UML (که در مرحله ی طراحی ایجاد شده اند) با هدف کشف کلاس های خطاخیز (error-prone classes) که در مرحله ی پیاده سازی به زبان جاوا پیاده سازی شده اند مورد کاوش قرار گرفته است.بنابراین لازم است مهندسین نرم افزار مناسب ترین ابزار و مخزن نرم افزاری را بر مبنای اهداف خود انتخاب کنند.

 

منابع

[1] Chaturvedi, K. K., Sing, V. B., Singh, P. (2013), “Tools in Mining Software Repositories”, Proceedings of the 13th International Conference on Computational Science and Its Applications (ICCSA), pp. 89-98.

[2] Olatunji, S. O., Idrees, S. U., Al-Ghamdi, Y. S., Al-Ghamdi, J. S. A. (2010), “Mining Software Repositories–A Comparative Analysis”, International Journal of Computer Science and Network Security (IJCSNS), Vol. 10, No. 8, pp. 161-174.

[3] Nugroho, A., Chaudron, M. R., Arisholm, E. (2010), “Assessing uml design metrics for predicting fault-prone classes in a java system”, Proceedings of the 7th IEEE Working Conference on Mining Software Repositories, pp. 21-30.

 

مطالب مرتبط: روش/ابزاری برای تضمین/بررسی پیمانه ای بودن یک نرم افزار وجود دارد؟!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا