Softversko inženjerstvo

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