Inżynieria domeny to czynność tworzenia nowego oprogramowania komputerowego przy użyciu fragmentów istniejących programów i tego, co się o nich wie. Ważną częścią inżynierii domeny jest odkrywanie, jak różne artefakty oprogramowania i domeny są podobne do potrzeb konkretnego klienta, dzięki czemu można je odpowiednio pobrać i wykorzystać. Chociaż oznacza to, że oprogramowanie klienta jest tylko wariantem w innym systemie, istnieją unikalne części oprogramowania, które są napisane przez twórców. Zaletą tego jest szybszy czas produkcji i mniej błędów.
Unikalne programy są tworzone na co dzień, ale w zasadzie wiele z nich używa tego samego kodowania dla niektórych sekcji. Zamiast pisać zupełnie nowy program, który może używać tego samego lub podobnego kodowania, inżynieria domeny ponownie wykorzystuje niektóre sekcje w nowych programach. Są to zazwyczaj części ogólne, które można łatwo poddać recyklingowi bez żadnych problemów prawnych, ponieważ są to części, które można znaleźć w większości innych programów. Części mogą pochodzić z jednego programu lub wielu, w zależności od potrzeb klienta.
W inżynierii domen twórcy oprogramowania nie kopiują żadnej części oprogramowania, aby sprawdzić, czy działa; zamiast tego muszą być w stanie analizować różne programy. Na przykład, jeśli klient chce określonej funkcji, twórcy muszą przeanalizować stworzone przez siebie programy, aby sprawdzić, czy istnieją podobne funkcje. Bez analizy nie ma gwarancji, że skopiowany kod będzie działał poprawnie.
Ten proces może sprawiać wrażenie, że inżynieria domeny jest tylko systemem opartym na szablonach, w którym twórcy oprogramowania kopiują kod i nazywają go nowym programem, ale to nieprawda. Cały proces inżynierii domeny jest dość intensywny i wykracza poza samo znajdowanie podobnych części. Po znalezieniu podobnych części zwykle trzeba je dostosować do potrzeb klienta, a twórcy często budują nowy kod, aby zaspokoić inne potrzeby klienta, które nie są objęte kopiowanym kodem.
Inżynierii domen można przypisać kilka zalet. Program nie jest w całości tworzony od zera, więc jego opracowanie powinno zająć mniej czasu. Oznacza to, że klient może szybciej korzystać lub sprzedawać program, co często jest pożądane. Skopiowane kodowanie używane w inżynierii domen zwykle jest wcześniej testowane, aby upewnić się, że działa, więc skutkuje to mniejszą liczbą testów, co również skraca czas programowania. Wykazano już, że kod działa, więc często skutkuje to mniejszą liczbą błędów oprogramowania.