Pumunta sa nilalaman

Inhenyeriyang pang-software

Mula sa Wikipedia, ang malayang ensiklopedya

Ang inhenyeriyang pang-software ay isang kaparaanang nakabatay sa inhenyeriya na ginagawa upang makagawa ng software.[1][2][3] 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.[4]

Ginagamit ang mga kaparaanan ng inhenyeriya upang bigyan impormasyon ang proseso ng paggawa ng software,[1][5] 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,[1][5] 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

[baguhin | baguhin ang wikitext]

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 – Vocabulary[6]
  • "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[7]
  • "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[8]
  • "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[9]
  • "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[10]
  • "'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[11]

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;[12]
  • 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;[13]
  • 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.[14]

Mga sanggunian

[baguhin | baguhin ang wikitext]
  1. 1.0 1.1 1.2 Abran et al. 2004 (sa Ingles)
  2. ACM (2007). "Computing Degrees & Careers" (sa wikang Ingles). ACM. Nakuha noong 2010-11-23.{{cite web}}: CS1 maint: date auto-translated (link)
  3. Laplante, Phillip (2007). What Every Engineer Should Know about Software Engineering (sa wikang Ingles). Boca Raton: CRC. ISBN 978-0-8493-7228-5. Nakuha noong 2011-01-21.{{cite book}}: CS1 maint: date auto-translated (link)
  4. "Programmers: Stop Calling Yourselves Engineers". The Atlantic (sa wikang Ingles). 5 Nobyembre 2015.{{cite web}}: CS1 maint: date auto-translated (link)
  5. 5.0 5.1 "Software Engineering Body of Knowledge (SWEBOK Version 3), 2014" (pdf). www.swebok.org (sa wikang Ingles). IEEE Computer Society. Nakuha noong 24 Mayo 2016.{{cite web}}: CS1 maint: date auto-translated (link)
  6. Systems and software engineering – Vocabulary, ISO/IEC/IEEE std 24765:2010(E), 2010. (sa Ingles)
  7. IEEE Standard Glossary of Software Engineering Terminology, IEEE std 610.12-1990, 1990. (sa Ingles)
  8. Sommerville, Ian (2007) [1982]. "1.1.2 What is software engineering?". Software Engineering (sa wikang Ingles) (ika-ika-8 (na) edisyon). Harlow, England: Pearson Education. p. 7. ISBN 978-0-321-31379-9. Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use. In this definition, there are two key phrases:
    1. Engineering discipline Engineers make things work. They apply theories, methods and tools where these are appropriate [. . .] Engineers also recognize that they must work to organizational and financial constraints. [. . .]
    2. All aspects of software production Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production.
    {{cite book}}: CS1 maint: date auto-translated (link)
  9. "Software Engineering". Information Processing (sa wikang Ingles). 71: 530–538.
  10. "Definition of SOFTWARE ENGINEERING". www.merriam-webster.com (sa wikang Ingles). Nakuha noong 2019-11-25.{{cite web}}: CS1 maint: date auto-translated (link)
  11. Winters, Titus; Manshrec, Tom; Wright, Hyrum (2020). "Preface, Programming Over Time". Software Engineering at Google (sa wikang Ingles). O'Reilly Media, Inc. pp. xix–xx, 6–7. ISBN 978-1-492-08279-8. We propose that "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. What practices can a software organization introduce that will best keep its code valuable over the long term? How can engineers make a codebase more sustainable and the software engineering discipline itself more rigorous?{{cite book}}: CS1 maint: date auto-translated (link)
  12. Akram I. Salah (2002-04-05). "Engineering an Academic Program in Software Engineering" (PDF) (sa wikang Ingles). 35th Annual Midwest Instruction and Computing Symposium. Nakuha noong 2006-09-13.{{cite web}}: CS1 maint: date auto-translated (link): "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."
  13. Mills, Harlan D., J. R. Newman, and C. B. Engle, Jr., "An Undergraduate Curriculum in Software Engineering," in Deimel, Lionel E. (1990). Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, April 2–3,... (sa wikang Ingles). Springer. ISBN 978-0-387-97274-9.{{cite book}}: CS1 maint: date auto-translated (link),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..."
  14. David Budgen; Pearl Brereton; Barbara Kitchenham; Stephen Linkman (2004-12-14). "Realizing Evidence-based Software Engineering" (sa wikang Ingles). Inarkibo mula sa orihinal noong 2006-12-17. Nakuha noong 2006-10-18.{{cite web}}: CS1 maint: date auto-translated (link): "We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis,...."