Osnove softverskog inženjerstva: Procesi, modeli i upravljanje zahtevima

Enviado por Anónimo y clasificado en Otras materias

Escrito el en serbocroata con un tamaño de 618,99 KB

Šta je softver i čime se bavi softversko inženjerstvo?

Softver je računarski program, pridružena dokumentacija i konfiguracioni podaci neophodni da bi softver radio korektno. Softverski sistem se obično sastoji od:

  • Određenog broja programa
  • Konfiguracionih fajlova
  • Sistemske dokumentacije koja opisuje strukturu sistema
  • Korisničke dokumentacije
  • Veb sajtova za podršku korisnicima

Softversko inženjerstvo je inženjerska disciplina koja se bavi teorijom, metodama i alatima za profesionalni razvoj softvera.

Tipovi softvera

Postoje dva osnovna tipa softvera:

  1. Generički: Samostalni sistemi namenjeni za prodaju na slobodnom tržištu.
  2. Ugovorni (custom): Razvijeni za jednog korisnika prema njegovim zahtevima.

Osnovna razlika je u tome ko definiše specifikaciju zahteva.

Softversko inženjerstvo vs. Informatika

Dok se nauka o računarstvu (informatika) bavi teorijom i osnovama računarstva, softversko inženjerstvo se fokusira na praktičnu stranu razvoja i isporuke korisnog softvera, obuhvatajući sve aspekte proizvodnje uz sistemski i organizovan pristup.

Atributi dobrog softvera

  1. Pogodnost za održavanje (Maintainability): Softver treba da se lako menja.
  2. Stabilnost (Dependability): Mora ulivati poverenje (pouzdanost, bezbednost, sigurnost).
  3. Efikasnost (Efficiency): Ekonomično korišćenje resursa sistema.
  4. Upotrebljivost (Usability): Pogodan za korišćenje.

"Shall-not" svojstva

To su svojstva sistema koja sistem ne sme da dopusti (npr. sigurnost ili bezbednost). Teško se mere, pa se definišu kroz ograničenja onoga što sistem ne sme da uradi.

Proces sistemskog inženjerstva

w8KvF693uoD3wAAAABJRU5ErkJggg==

Proces obuhvata: definisanje zahteva, projektovanje sistema, razvoj podsistema, integraciju, instalaciju, evoluciju i rasturanje sistema.

Proces nabavke sistema

Podrazumeva traženje sistema koji zadovoljava potrebe organizacije. Često se koristi kupovina postojećih COTS (Commercial Off-The-Shelf) sistema, što je ekonomičnije. Nabavka velikih sistema obuhvata glavnog izvođača koji angažuje podizvođače.

D8rVLqwcOMXwAAAAAElFTkSuQmCC

Softverski proces

Predstavlja strukturiran skup aktivnosti za razvoj softvera:

  1. Specifikacija: Određivanje servisa i ograničenja.
  2. Projektovanje i implementacija: Definisanje strukture i pisanje koda.
  3. Validacija: Provera da li sistem radi ono što naručilac želi.
  4. Evolucija: Prilagođavanje sistema novim potrebama.

Model vodopada (Waterfall)

B9qwL74Xf5gIAAAAAElFTkSuQmCC

Planom vođen model sa potpuno odvojenim fazama: analiza, projektovanje, implementacija, integracija i održavanje. Nedostatak: Nefleksibilnost pri izmenama zahteva.

Agilni razvoj

Vrednosti Agilnog manifesta

  • Pojedinci i interakcije > procesi i alati
  • Softver koji radi > dokumentacija
  • Saradnja s klijentima > ugovori
  • Odgovor na promene > praćenje plana

Inkrementalni razvoj

wd8fjPrlPwQugAAAABJRU5ErkJggg==

Aktivnosti specifikacije, razvoja i validacije se preklapaju. Prednost je brža isporuka i lakše prihvatanje izmena, dok je problem potencijalna degradacija strukture sistema.

Scrum proces

4gpQ6o5IAAAAASUVORK5CYII=

Agilni proces fokusiran na isporuku vrednosti kroz kratke iteracije (sprintove). Sastanci uključuju: planiranje sprinta, dnevni scrum, pregled sprinta i retrospektivu.

RUP (Rational Unified Process)

Faze RUP-a: Inception (vizija), Elaboration (arhitektura), Construction (realizacija) i Transition (isporuka). Za razliku od Scrum-a, RUP je strukturiraniji i teži ka detaljnijem planiranju faza.

Upravljanje zahtevima

xwgYZGZmrwcyZEZhMV7AQmYyMjIyMjIzMlUKOAZGRkZGRkZG56sgKiIyMjIyMjMxV538A7+j7DOjlKy8AAAAASUVORK5CYII=

Proces obuhvata prikupljanje, analizu, specifikaciju i validaciju zahteva. Najpoznatije metode su DFD, objektno-orijentisane metode, formalne metode i Use-case metode.

Objektno-orijentisano modelovanje

Koraci: identifikacija objekata/klasa, struktura (veza), atributa, servisa i poruka (interakcija).

Use-case dijagrami

JEC0Ctn5MYTM1LvmZkKWxsBuUcry0myMhQAAAAASUVORK5CYII=

Osnovne veze: asocijacija, uključivanje (include), proširivanje (extend) i generalizacija.

4+1 model arhitekture

wP3uOU4YbFFBgAAAABJRU5ErkJggg== MJKy65AAAAABJRU5ErkJggg==

Obuhvata: logičku, procesnu, implementacionu i fizičku arhitekturu, povezane korisničkim pogledom (use-case).

Entradas relacionadas: