SBSE[1] روشی برای مهندس نرم افزار می باشد که از الگوریتم های بهینه سازی مبتنی بر جستجو (SBO[2]) برای فرموله کردن مسائل مهندسی نرم افزار (مهنسی نیازمندی ها، طراحی، تست و ... ) استفاده می کند. در 5 سال گذشته رشد چشمگیری در کار بر روی SBSE انجام گرفته است. SBSE از طریق چرخه ی زندگی [3] SE [4] به مسائل اعمال شده است (از مهندسی نیازمندی ها و برنامه ریزی پروژه گرفته تا نگهداری و مهندسی مجدد).
از آنجایی که این روش، پیشنهاد یک مجموعه راه حل های خودکار و نیمه خودکار در فضای مسائل پیچیده با اشیای رقابتی و تضاد را می دهد، به یک مسئله ی جذاب تبدیل شده است. رشد روز افزون مقالات چاپ شده در طی چند سال اخیر نیز نشان از با اهمیت بودن این فیلد پژوهشی می باشد.
در SBSE، واژه ی "Search" به تکنیک های بهینه سازی مبتنی بر جستجوی متاهیورستیک[5] اشاره دارد که استفاده می شوند. در حقیقت SBSE دنبال فرموله بندی مجدد مسائل مهندسی نرم افزار به عنوان مسائل SBO است. البته واژه ی "Search" نباید با "Search" سایر مفاهیم از قبیل متنی یا فوق متنی اشتباه گرفته شود بلکه یک مسئله ی جستجو، مسئله ای است که دنبال راه حل های بهینه یا نزدیک به بهینه در یک فضای جستجوی راه حل های کاندید است (با تعریف یک تابع برازندگی که بین راه حل های بهتر و بدتر تمایز قائل می شود).
واژه ی SBSE برای اولین بار در سال 2001 توسط Harman و Jones معرفی شد. اگر چه پیش تر دیگران نیز بهینه سازی مبتنی بر جستجو را به جنبه های مختلف مهندسی نرم افزار اعمال کرده بودند. به عنوان مثال، در سال 1976 شخصی به نام Miller نیز سعی کرد بهینه سازی را به مسئله ی آزمون نرم افزار[6] اعمال کند.
[1] Search-Based Software Engineering
[2] Search-Based Optimization algorithms
[3] Lifecycle
[4] Software Engineering
[5] metaheuristic
[6] Software Testing
مهندسی نرم افزار مبتنی بر جستجو (Search-Based Software Engineering)- فایل Word