Инжењеринг софтвера

примена систематских приступа развоју софтвера

Инжењеринг софтвера је поддисциплина рачунарства, настала као потреба за проналажење рјешења све више сложенијих, обимнијих и структурно компликованијих инжењерских задатака, приликом дизајна, имплементације и одржавања софтвера (рачунарских програма), која често захтијевају тимове програмера различитих профила и специјализације, као и вријеме које се све чешће мјери годинама.[1][2][3] Развој сложених софтверских рјешења, као што је на примјер, оперативни систем, се третира као инжењерски подухват са сличним потешкоћама као што је изградња неког архитектонског објекта, али и са сличним пажљивим планирањем израде, али и планирањем одржавања крајњег софтверског производа.

Процес инжењеринга софтвера се обично састоји из више фаза, дефинисаних на различите начине, али у основи уопштено сљедећих:

  1. идентификовање и анализа потреба и захтјева корисника,
  2. анализа, дизајн и развој спецификација система (хардвера и софтвера),
  3. дизајн софтвера (који се обично састоји од више међусобно повезаних задатака, као што је на примјер, дизајн одговарајућих алгоритама, корисничког интерфејса, итд.),
  4. имплементација (писање кода и неопходне документације за софтвер),
  5. тестирање софтверског рјешења у реалном окружење, и на крају
  6. одржавање софтвера.

Историја

уреди

Почевши од 1960-их, софтверски инжењеринг се сматрао сопственим типом инжењеринга. Поред тога, развој софтверског инжењеринга је виђен као мукотрпна делатност. Било је тешко држати корак са хардвером што је стварало многе проблеме софтверским инжењерима. Проблеми су укључивали софтвер чија израда је често прекорачивала буџет и рокове, тај софтвер је захтевао опсежно отклањање грешака и одржавање и био је неуспешан у задовољавању потреба потрошача, или никада није био завршен. Године 1968, NATO је одржао прву конференцију о софтверском инжењерству на којој су обрађена питања везана за софтвер: успостављене су смернице и најбоље праксе за развој софтвера.[4]

Порекло појма „софтверски инжењеринг“ приписује се различитим изворима. Термин „софтверски инжењеринг“ појавио се на листи услуга које су компаније нудиле у издању часописа „Компјутери и аутомамација“ у јуну 1965. године,[5] а формалније је коришћен у издању часописа Communications of the ACM из августа 1966. (том 9, број 8) „писмо упућено ACM чланству” ACM председника Ентонија А. Аутингера,[6][7] такође се повезује са насловом NATO конференције 1968. професора Фридриха Л. Бауера, прве конференције о софтверском инжењерству.[8] Независно, Маргарет Хамилтон је назвала дисциплину „софтверски инжењеринг“ током Аполо мисија да би се оном што су радили дао легитимитет.[9] У то време се сматрало да постоји „криза софтвера“.[10][11][12] Четрдесета Међународна конференција о софтверском инжењерству (ICSE 2018) слави 50 година „софтверског инжењеринга“ са главним излагањима на пленарним сесијама Фредерика Брукса[13] и Маргарет Хамилтон.[13]

Године 1984. основан је Институт за софтверско инжењерство (SEI) као федерално финансиран центар за истраживање и развој са седиштем у кампусу Универзитета Карнеги Мелон у Питсбургу, Пенсилванија, Сједињене Америчке Државе. Ватс Хамфри је основао SEI Софтверски процесни програм, чији је циљ разумевање и управљање процесом софтверског инжењеринга. Уведени нивои зрелости процеса постали би Интеграција модела зрелости за развој (CMMI-DEV), који је дефинисао према процени америчке владе способности тима за развој софтвера.

Подкомитет ISO/IEC JTC 1/SC 7 сакупио је модерне, опште прихваћене најбоље праксе за софтверско инжењерство и објавио их као Збирку знања за софтверско инжењерство (SWEBOK).[14] Софтверски инжењеринг се сматра једном од главних рачунарских дисциплина.[15]

Референце

уреди
  1. ^ Abran et al. 2004, стр. 1–1
  2. ^ ACM (2007). „Computing Degrees & Careers”. ACM. Архивирано из оригинала 17. 06. 2011. г. Приступљено 2010-11-23. 
  3. ^ Laplante, Phillip (2007). What Every Engineer Should Know about Software Engineering. Boca Raton: CRC. ISBN 978-0-8493-7228-5. Приступљено 2011-01-21. 
  4. ^ „The history of coding and software engineering”. www.hackreactor.com (на језику: енглески). Архивирано из оригинала 24. 03. 2022. г. Приступљено 2021-05-06. 
  5. ^ COMPUTERS and AUTOMATION
  6. ^ Oettinger, A. G. (1966). „President's Letter to the ACM Membership”. Commun. ACM. Association for Computing Machinery. 9 (8): 545—546. ISSN 0001-0782. S2CID 53432801. doi:10.1145/365758.3291288 . 
  7. ^ „The origin of "software engineering". Приступљено 17. 11. 2017. 
  8. ^ Randall, Brian. „The 1968/69 NATO Software Engineering Reports”. Приступљено 17. 11. 2017. 
  9. ^ Software Magazine. „What to Know About the Scientist who Invented the Term "Software Engineering". Архивирано из оригинала 24. 11. 2018. г. Приступљено 12. 2. 2019. 
  10. ^ Sommerville 2008, стр. 26
  11. ^ Peter, Naur; Randell, Brian (7—11. 10. 1968). Software Engineering: Report of a conference sponsored by the NATO Science Committee (PDF). Garmisch, Germany: Scientific Affairs Division, NATO. Приступљено 2008-12-26. 
  12. ^ Randell, Brian (10. 8. 2001). „The 1968/69 NATO Software Engineering Reports”. Brian Randell's University Homepage. The School of the Computer Sciences, Newcastle University. Приступљено 2008-10-11. „The idea for the first NATO Software Engineering Conference, and in particular that of adopting the then practically unknown term "software engineering" as its (deliberately provocative) title, I believe came originally from Professor Fritz Bauer. 
  13. ^ а б 2018 International Conference on Software Engineering celebrating its 40th anniversary, and 50 years of Software engineering. „ICSE 2018 – Plenary Sessions – Fred Brooks”. Приступљено 9. 8. 2018. 
  14. ^ „ISO/IEC TR 19759:2005”. Приступљено 2012-04-01. 
  15. ^ „The Joint Task Force for Computing Curricula 2005” (PDF). 2014-10-21. Архивирано (PDF) из оригинала 2014-10-21. г. Приступљено 2020-04-16. 

Литература

уреди

Спољашње везе

уреди