Inhenyeriyang pang-software

Ang inhenyeriyang pang-software ay isang kaparaanang nakabatay sa inhenyeriya na ginagawa upang makagawa ng software. (sa Ingles) 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, na tungkol sa sistematikong pagkontrol ng mga pagbabago sa konpigurasyon, at pagpapanatili ng integridad at kakayahang masubaybayan ang konpigurasyon at kodigo sa buong siklo ng buhay ng sistema. Gumagamit ang makabagong proseso ng pagbebersyon ng software.

 Mga kahulugan at terminolohiya 

Kabilang sa mga kapansin-pansin na kahulugan ng inhenyeriyang pang-software:
 "The systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software" (Ang sistematikong aplikasyon ng siyentipiko at pangteknolohiyang kaalaman, kaparaanan, at karanasan sa disenyo, implementasyon, pagsubok, at dokumentasyon ng software)—The Bureau of Labor Statistics—IEEE Systems and software engineering – VocabularySystems and software engineering – Vocabulary, ISO/IEC/IEEE std 24765:2010(E), 2010. (sa Ingles)
 "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 TerminologyIEEE Standard Glossary of Software Engineering Terminology, IEEE std 610.12-1990, 1990. (sa Ingles)
 "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;: "For some, software engineering is just a glorified name for programming. If you are a programmer, you might put 'software engineer' on your business card—never 'programmer' though."
 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;Mills, Harlan D., J. R. Newman, and C. B. Engle, Jr., "An Undergraduate Curriculum in Software Engineering," in ,p. 26: "As a practical matter, we regard software engineering as the necessary preparation for the practicing, software development and maintenance professional. The Computer Scientist is preparing for further theoretical studies..."
 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.: "We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis,...."

Mga sanggunian

*