Softversko inženjerstvo je sistematska primjena inženjerskih pristupa razvoju softvera. Softverski inženjering je direktno potpolje inženjerstva i preklapa se s računarskom i upravljačkom naukom.https://www.dagstuhl.de/Reports/96/9635.pdf Također se smatra dijelom cjelokupnog sistemskog inženjeringa.
U IEEE rječniku terminologije softverskog inženjeringa stoji da je to "primjena sistematskog, disciplinskog, mjerljivog pristupa razvoju, upravljanju i održavanju softvera"IEEE Standard Glossary of Software Engineering Terminology, IEEE std 610.12-1990, 1990.
Historija Prvi digitalni računari 1940-tih godina su instrukcije za rad imali već unaprijed isprogramirane. To se pokazalo nepraktično i ubrzo je osmišljen dizajn "arhitekture pohranjenog programa" poznat kao von Neumannova arhitektura. Tu je nastala podjela između "hardvera" i "softvera" gdje se apstrakcijom rješavala složenost računanja.
Programski jezici počeli su se pojavljivati u ranim 1950-im što je bio dodatni iskorak u apstrakciji. Glavni jezici kao što su Fortran, ALGOL i COBOL objavljeni su krajem 1950-ih kako bi se bavili naučnim, algoritmičkim i poslovnim problemima. David Parnas predstavio je ključni koncept modularnosti i skrivanja informacija 1972. godine kako bi pomogao programerima u rješavanju sve veće složenosti softverskih sistema.
Godine 1984. osnovan je Institut za softverski inženjering (Software Engineering Institute – SEI) kao centar za istraživanje i razvoj. Watts Humphrey osnovao je SEI Software Process Program, usmjeren na razumijevanje i upravljanje procesom softverskog inženjeringa.
Savremene i općeprihvaćene najbolje prakse za softverski inženjering se objedinjuju u ISO/IEC JTC 1/SC 7 standardu, koje objavljuje SWEBOK.
Kontroverze Edsger Dijkstra, osnivač mnogih koncepata u razvoja softvera, odbacio je ideju "softverskog inženjeringa" sve do svoje smrti 2002. godine.
Polja Proces inženjeringa softvera se obično sastoji iz više faza, definisanih na različite načine, ali u osnovi se sastoji od:
Softverski zahtjevi
Inženjering zahtjeva odnosi se na prikupljanje, analizu, specifikaciju i potvrdu zahtjeva za softver.
Dizajn softvera
Dizajn softvera odnosi se na proces definisanja arhitekture, komponenti, interfejsa i drugih karakteristika sistema ili komponente. To se naziva i softverska arhitektura.
Razvoj softvera
Razvoj softvera jest glavna aktivnost izgradnje softvera, kombinacija programiranja, provjere, testiranja softvera i uklanjanje grešaka. Proces razvoja softvera jest definicija, implementacija, procjena, mjerenje, upravljanje, i poboljšanje samog procesa životnog ciklusa softvera. Oslanja se na upravljanje konfiguracijom softvera koje se odnosi na sistemsku kontrolu promjena u konfiguraciji i održavanje integriteta i praćenja konfiguracije i koda tokom životnog ciklusa sistema. Savremeni procesi koriste softversko verzioniranje.
Testiranje softvera
Testiranje softvera jest empirijsko, tehničko istraživanje koje se provodi kako bi se pružile informacije o kvaliteti proizvoda ili usluge koja se testira. To je jedan aspekt kvalitete softvera.
Održavanje softvera
Održavanje softvera odnosi se na aktivnosti potrebne za pružanje ekonomične podrške nakon izdavanja softverskog proizvoda.
Također pogledajte
Računarsko inženjerstvo Računarstvo Računarska nauka
Reference
Literatura
Vanjski linkovi
Baza znanja softverskog inženjeringa OpenSDLC.org Software Engineering Institute Carnegie Mellon Uvod u softversko inženjerstvo
Kategorija:Softver Kategorija:Programiranje Kategorija:Inženjerstvo