Inhenyeriyang pang-software

Ang **inhenyeriyang pang-software** ay isang kaparaanang nakabatay sa inhenyeriya na ginagawa upang makagawa ng software. Ang isang **inhinyero ng software** ay isang tao na naglalapat ng proseso ng disenyong inhenyeriya upang magdisenyo, gumawa, magsubok, magpanatili, at suriin ang software ng kompyuter. Kadalasang kasingkahulugan ang katawagang *programmer* o tagapagprograma, subalit maari nitong bigyan-diin ang implementasyon ng software kaysa disenyo at kulang ang konotasyon ng edukasyon o kasanayan sa inhinyeriya.

Ginagamit ang mga kaparaanan ng inhenyeriya upang bigyan impormasyon ang proseso ng paggawa ng software,  na kinakabibilangan ng depinisyon, implementasyon, pagtatasa, pagsusukat, pamamahala, pagbabago, at pagpapabuti ng siklo ng buhay ng software mismo. Mabigat na ginagamit nito ang pamamahala ng konpigurasyon ng software,
* "*The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software*" (Ang aplikasyon ng kaparaanang sistematiko, disiplinado, nabibilang sa paggawa, operasyon, at pagpapanatili ng software)— IEEE *Standard Glossary of Software Engineering Terminology*
* "*an engineering discipline that is concerned with all aspects of software production*" (isang disiplinang inhinyeriya na may kinalaman sa lahat ng aspeto ng paggawa ng software) —Ian Sommerville
* "*the establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines*" (ang pagtatag at paggamit ng mabuting mga prinsipyong inhenyeriya upang matipid na makuha ang software na maaasahan at gumagana ng mahusay sa totoong mga makina)—Fritz Bauer
*"*a branch of computer science that deals with the design, implementation, and maintenance of complex computer programs*" (isang sangay ng agham pangkompyuter na tumatalakay sa disenyo, implementasyon, at pagpapanatili ng pagpoprograma ng kompyuter)—Merriam-Webster
* ''software engineering' encompasses not just the act of writing code, but all of the tools and processes an organization uses to build and maintain that code over time. [...] Software engineering can be thought of as 'programming integrated over time.'' (sinasakop ng 'inhenyeriyang pangsoftware' hindi lamang ang akto ng pagsulat ng kodigo, subalit lahat ng mga kagamitan at proseso na ginagamit ng organisasyon upang gawin at panatilihin ang kodigong iyon sa paglipas ng panahon. [...] Maaring isipin ang inhenyeriyang pangsoftware bilang ang 'pinagsamang pagpoprograma sa paglipas ng panahon.')—*Software Engineering* sa Google

Ginagamit din ang katawagan ng hindi gaanong pormal:
* bilang ang impormal na kontemporaryong katawagan para sa malawak na hanay ng mga aktibidad na dating tinatawag na pagpoprograma ng kompyuter at pag-analisa ng sistema;
* bilang ang malawak na katawagan para sa lahat ng aspeto ng *pagsasanay* ng pagpoprograma ng kompyuter, salungat sa *teoriya* ng pagpoprograma ng kompyuter, na pormal na pinag-aaralan bilang sub-disiplina ng agham pangkompyuter;
* bilang isang katawagan na kinakatawan ang *adbokasiya* ng isang partikular na kaparaanan sa pagpoprograma ng kompyuter, na hinihimok ang isa na maaari itong itrato bilang isang disiplina ng inhinyeriya sa halip ng isang sining o kasanayan, at tinatangkilik ang kodipikasyon ng mga pagsasanay na inirerekomenda.

## Mga sanggunian
*