Proqram təminatı mühəndisliyi və ya Proqram mühəndisliyi - sistemləşdirilmiş standartlar qrupundan istifadə etməklə proqram vasitələri və komplekslərinin işlənilməsi, praktiki tətbiqi, müşayiət edilməsi və təkmilləşdirilməsini təmin edən elm sahəsidir [1]
Proqram mühəndisliyi təkcə proqram təminatının texniki məsələləri ilə deyil, həm də proqram layihələrinin idarə edilməsi, maliyyələşdirilməsi, kollektivin idarə edilməsi və s. kimi məslələrlə də məşğul olur. Bundan əlavə, proqram mühəndisliyinin əsas məqsədlərindən biri də proqram təminatının istehsalı prosesini dəstəkləmək, maksimal effektivliyə və keyfiyyətə nail olmaq üçün vasitə, metod və nəzəriyyələrin işlənilməsindən ibarətdir.
Proqram təminatı mühəndisliyi proqram təminatının dizaynı, yaradılması, idarə edilməsi ilə maraqlanan sahədir. İlk dəfə 1968-ci ildə NATO-nun keçirdiyi proqram təminatı mühəndisliyi konfransında bu termindən istifadə edilib. İEEE tərəfindən proqram təminatı mühəndisliyi barədə "Software Engineering Body of Knowledge" (SWEBOK) nəşr olunub.
Proqram təminatı mühəndisliyi dinamik şəkildə dəyişən peşə sahəsidir. Aparat platformalarının fasiləsiz şəkildə inkişaf etməsi, eyni zamanda, onların sənaye və istehsalatın müxtəlif sahələrində tətbiqinin getdikcə artması proqram təminatına olan tələbatı daha da artırır. Bununla yanaşı, proqramlaşdırma texnologiyaları da dayanmadan inkişaf edir. Minlərlə proqramlaşdırma dili mövcud olduğuna görə bu dillər üçün müxtəlif kitabxanalar, modullar, işlənilmə mühiti və s. yaradılır. Proqram vasitələrinin işlənilməsi üçün proqramın həyat dövrünün bütün mərhələlərini əhatə edən modellər yaradılmışdır. Böyük proqramları yaradarkən əsasən aşağıdakı mərhələlərdən istifadə edilir:
Proqram təminatı mühəndisliyinin koordinasiya komitəsi (Software Engineering Coordinating Committee) tərəfindən proqram təminatı mühəndisliyi üzrə biliklər toplusu – SWEEBOK (Software Engineering Body of Knowledge) işlənilmişdir. 2013-cü ildə işlənilmiş son versiyası 15 bilik sahəsini əhatə edir. (SWEEBOK V3) ISO/IEC TR 19759:2005 standartına əsaslanır və uzun illər işləmiş peşəkar mütəxəssilərin bilikləri əsasında hazırlanmışdır [2].
Peşəkar proqram təminatı mühəndisindən aşağıdakı bir və ya neçə bilik və bacarıqlar tələb olunur: