مهندسی نرم افزار جستجو بنیان عبارت است از استفاده از الگوریتم های فرا ابتکاری ( Meta Heuristics ) برای حل مسائل مهندسی نرم افزار. در این روش، کاری که انجام میشود این است که مسئله مهندسی نرم افزار داده شده به یک مسئله جستجو (بهینه سازی) تبدیل میشود و سپس از الگوریتم های تکاملی مختلف برای یافتن پاسخ بهینه استفاده میشود. میتوان از الگوریتم های تکاملی و فراابتکاری مختلفی استفاده کرد؛ مانند الگوریتم ژنتیک ( GA )، کلونی مورچگان ( Ant Colony )، سردسازی شبیه سازی شده ( Simulated Annealing )، جستجوی ممنو ...