کد مقاله کد نشریه سال انتشار مقاله انگلیسی نسخه تمام متن
6858515 665777 2014 21 صفحه PDF دانلود رایگان
عنوان انگلیسی مقاله ISI
Co-evolutionary automatic programming for software development
ترجمه فارسی عنوان
برنامه نویسی خودکار تکاملی برای توسعه نرم افزار
کلمات کلیدی
برنامه ریزی خودکار پالایش خودکار، همکاری تکامل، تست نرم افزار، برنامه نویسی ژنتیک،
ترجمه چکیده
از دهه 1970، هدف تولید برنامه ها به صورت خودکار (به عنوان مثال، برنامه نویسی خودکار) مورد بررسی قرار گرفته است. یک کاربر فقط تعریف می کند که از برنامه انتظار دارد (یعنی الزامات)، و باید آن را به صورت خودکار توسط کامپیوتر بدون کمک هر برنامه نویس ایجاد شود. متأسفانه، این کار بسیار سخت تر از انتظار می رود. اگر چه روشهای تبدیل معمولا برای حل این مشکل استفاده می شود، اگر شکاف بین مشخصات و اجرای واقعی بیش از حد گسترده باشد، آنها نمی توانند استفاده شوند. در این مقاله یک چارچوب مفهومی جدید برای برنامه های در حال تحول از مشخصات آنها معرفی می کنیم. ما از برنامه نویسی ژنتیکی برای تکامل برنامه ها استفاده می کنیم و در عین حال از مشخصه ها برای تکمیل مجموعه تست های واحد استفاده می کنیم. برنامه ها بر اساس تعداد آزمایش هایی که انجام نمی دهند، پاداش می گیرند، در حالی که آزمایشات واحد بر اساس تعداد برنامه هایی که برای شکست انجام می شوند پاداش می دهند. ما در حال ارائه و تجزیه و تحلیل هفت مسئله مختلف که در آن این روش جدید با موفقیت اعمال می شود.
موضوعات مرتبط
مهندسی و علوم پایه مهندسی کامپیوتر هوش مصنوعی
چکیده انگلیسی
Since the 1970s the goal of generating programs in an automatic way (i.e., Automatic Programming) has been sought. A user would just define what he expects from the program (i.e., the requirements), and it should be automatically generated by the computer without the help of any programmer. Unfortunately, this task is much harder than expected. Although transformation methods are usually employed to address this problem, they cannot be employed if the gap between the specification and the actual implementation is too wide. In this paper we introduce a novel conceptual framework for evolving programs from their specification. We use genetic programming to evolve the programs, and at the same time we exploit the specification to co-evolve sets of unit tests. Programs are rewarded by how many tests they do not fail, whereas the unit tests are rewarded by how many programs they make to fail. We present and analyse seven different problems on which this novel technique is successfully applied.
ناشر
Database: Elsevier - ScienceDirect (ساینس دایرکت)
Journal: Information Sciences - Volume 259, 20 February 2014, Pages 412-432
نویسندگان
, ,