Domeno inžinerija – tai naujos kompiuterinės programinės įrangos kūrimas naudojant esamų programų dalis ir informaciją apie jas. Svarbi domenų inžinerijos dalis yra išsiaiškinti, kaip skirtingi programinės įrangos artefaktai ir domenai yra panašūs į konkretaus kliento poreikius, kad juos būtų galima tinkamai ištraukti ir naudoti. Nors tai reiškia, kad kliento programinė įranga yra tik variantas kitoje sistemoje, programinėje įrangoje yra unikalių dalių, kurias įrašė kūrėjai. To pranašumai yra greitesnis gamybos laikas ir mažiau klaidų.
Kasdien kuriamos unikalios programos, tačiau iš esmės daugelis jų naudoja tą patį kodavimą tam tikriems skyriams. Užuot parašius visiškai naują programą, kuri gali naudoti tą patį ar panašų kodavimą, domeno inžinerija pakartotinai naudoja kai kuriuos skyrius naujose programose. Paprastai tai yra bendrosios dalys, kurias galima lengvai perdirbti be jokių teisinių problemų, nes jas galima rasti daugelyje kitų programų. Priklausomai nuo kliento poreikių, dalys gali būti pagamintos iš vienos programos arba kelių.
Domeno inžinerijos srityje programinės įrangos kūrėjai nekopijuoja jokios programinės įrangos dalies, kad pamatytų, ar ji veikia; vietoj to jie turi gebėti analizuoti įvairias programas. Pavyzdžiui, jei klientas nori tam tikros funkcijos, kūrėjai turi išanalizuoti savo sukurtas programas, kad pamatytų, ar nėra tokių, turinčių panašių funkcijų. Be analizės nėra garantijos, kad nukopijuotas kodas veiks tinkamai.
Dėl šio proceso gali atrodyti, kad domenų inžinerija yra tik šablonais pagrįsta sistema, kurioje programinės įrangos kūrėjai nukopijuoja tam tikrą kodą ir vadina jį nauja programa, tačiau tai netiesa. Visas domeno inžinerijos procesas yra gana intensyvus ir apima ne tik panašių dalių paiešką. Radus panašias dalis, jos paprastai turi būti pritaikytos pagal kliento poreikius, o kūrėjai dažnai sukuria naują kodą, kad patenkintų kitus kliento poreikius, kurių neapima nukopijuotas kodas.
Domeno inžinerijai galima priskirti keletą privalumų. Programa nėra visiškai sukurta nuo nulio, todėl jos kūrimas turėtų užtrukti mažiau laiko. Tai reiškia, kad klientas gali greičiau naudotis arba parduoti programą, o to dažnai norisi. Nukopijuotas kodavimas, naudojamas domeno inžinerijoje, paprastai iš anksto išbandomas, siekiant įsitikinti, ar jis veikia, todėl paprastai atliekama mažiau bandymų, o tai taip pat sumažina kūrimo laiką. Jau buvo įrodyta, kad kodas veikia, todėl dažnai pasitaiko mažiau programinės įrangos klaidų.