You are on page 1of 33

Softver računara

Visoka poljoprivredno prehrambena škola strukovnih studija


Prokuplje
Softver
• Aplikativni softver – softver namenjen specifičnim
potrebama korisnika za rešavanje konkretnih
problema.
– Programi za obradu teksta, video igre, softver za obračun
plata,softver za vođenje balističkih raketa, itd.
• Sistemski softver – Softver za upravljanje računarskim
sistemom na osnovnom nivou, zajednički za sve računarske
sisteme, nezavisno od konkretne primene računara od strane
korisnika.
• Predstavlja osnovu za funkcionisanje aplikativnog softvera
Aplikativni softver
• Poslovni softver
– Specifične poslovne aplikacije, planiranje resursa preduzeća,
upravljanje odnosom sa klijentima, vođenje poslovanja, upravljanje
projektima, računarsko izdavaštvo, projektovanje pomoću računara
(CAD), ...
• Softver za kućnu i ličnu upotrebu
– Lične finansije, grafički dizajn, zabava i kompjuterske igre.
• Softver za poboljšanje produktivnosti
– Obrada slike, tabelarna izračunavanja, prezentacije, baze podataka, upravljanje ličnim
informacijama.
• Multimedijalni softver
– Editovanje slika i fotografija, kreiranje crteža i vektorske grafike, kreiranje
multimedijalnih sadržaja, preuzimanje i editovanje videa, kreiranje i reprodukovanje
muzičkih sadržaja, ...
• Komunikacioni/Internet softver
– Internet pretraživači, e-mail klijenti, instant messenger (ICQ), chat, ...
• Edukativni softver
– Enciklopedije, tutorijali, turistički vodiči, ...
Sistemski softver
• Operativni sistem
• Programski sistem
– Kompajleri programskih jezika, linkeri, debageri, editori, integrisana
razvojna okruženja, softverski alati za razvoj softvera.
• Komunikacioni softver
– Softver za povezivanje računara u mrežu i deljenje resursa.
• Uslužni softver
– Disk doktor, sistemske informacije, anti-virusni softver,
kompresovanje podataka, ...
• Grafički sistem
• Programi za proveru ispravnosti računarskog sistema, upravljanje i
unapređenje performansi računara i za detekciju grešaka u
harveru i softveru računara.
Programski sistem
• Programski prevodilac (compiler) prevodi program napisan u
nekom programskom jeziku (izvorni program, kod), u program
napisan u mašinskom jeziku koji se naziva objektni program (kod).
• Vrste programskih prevodilaca
– Asembleri i makroasembleri – prevode program sa asemblerskog
(makroasemblerskog) jezika, pri čemu se simbolička imena i oznake
zamenjuju binarnim kodovima.
– Kompajleri (kompilatori) – prevode program sa višeg programskog
jezika u mašinski kod.
– Interpretatori – prevode svaku naredbu programa i odmah je
izvšavaju (interpretiraju).
Operativni sistem
• Skup programa smeštenih u memoriju prilikom bootovanja
računara za upravljanje radom hardvera i softvera računarskog
sistema.
• Operativni sistemi: Windows 7/Vista/XP/..., UNIX, Linux, Mac OS
X, Solaris, Android, Symbian, itd.
Klasifikacija operativnih sistema
• Prema tipu računara
– OS za mainframe računare, super računare, mini računare, radne stanice,
servere, personalne računare (PC), ručne računare (PocketPC, Palm),
pametne telefone, ugrađene računare, pametne kartice, itd.
• Prema broju istovremenih korisnika
– Jednokorisnički (Windows) i višekorisnički (Unix, Linux)
• Prema broju startovanih programa
– Monoprogramski (DOS, Windows 3.x)
– Multiprogramski (Windows, Unix, Linux, Mac OS
• Time-sharing svakom programu se dodeljuje jedan vremenski kvant (od
10 do 100ms), pa se aktivira sledeći, i tako u krug; korisniku izgleda da
se svi programi istovremeno izvršavaju, a u stvari izvršavaju se jedan po
jedan smenjujući se u kratkim vremenskim intervalima (kvazi-
paralelno).
Operativni sistem
• Upravlja resursima računarskog sistema, kako hardverskim (CPU,
glavna memorija, ulazno/izlazni uređaji, sekundarne memorije),
tako i softverskim (strukture podataka u glavnoj memoriji,
datoteke, softver, itd.)
– Obezbeđuje da svaki startovani program dobije resurse neophodne
za izvršenje

• Obezbeđuje interfejs za interakciju korisnika sa računarom.


• Obezbeđuje okruženje za izvršenje aplikacionih programa i
njihovu interakciju sa resursima računarskog sistema.
Komponente operativnog sistema

• Upravljanje procesima.
• Upravljanje glavnom memorijom.
• Upravljanje U/I uređajima.
• Upravljanje datotekama (File system)-upravljanje
podacima na sekundarnim memorijama organizovanim u
datoteke i direktorijme.
• Sigurnost i zaštita
• Interakcija sa korisnikom putem interpretacije komadnog
jezika ili grafičkim korisničkim interfejsom (GUI)
Upravljanje procesima
• Osnovne funkcije
– Kreiranje i terminiranje procesa
– Suspendovanje i ponovno aktiviranje procesa
– Planiranje izvršenja procesa i upravljanje centralnim procesorom ili
procesorima
– Obezbeđenje mehanizama za sinhronizaciju i komunikaciju između
procesa
– Obezbeđenje mehanizama za upravljanje deadlock-om (samrtni
zagrljaj, uzajamno blokiranje).
Stanja procesa
• Životni ciklus procesa
– Aktivan (Running) – proces se izvršava na CPU.
– Spreman (Ready) – proces se nalazi u memoriji i spreman je za
izvršenje, kad mu se dodeli CPU.
– Blokiran (Waiting) – proces čeka na završetak U/I operacije ili neki
događaj da bi mogao da nastavi sa izvršavanjem.
Upravljanje memorijom
• Funkcije
– Dodela memorije procesima za smeštanje koda programa i
podataka.
– Oslobađanje memorije kada se proces završi.
– Evidencija gde i kako su smešteni procesi u memoriji; svaki proces u
memoriji čuva programski kod i podatke nad kojima se vrši obrada.
– Konvertovanje logičke u fizičku adresu pri svakom referenciranju
memorije od strane procesa koji se izvršava (aktivan proces):
• Logička adresa (virtuelna ili relativna adresa) adresa memorijske
lokacije relativno u odnosu na početak programa i ima vrednosti
od 0 do Max (veličine procesa u memoriji).
• Fizička adresa - Stvarna adresa bajta (reči) u glavnoj memoriji
(RAM)
Upravljanje memorijom (1)

• Memorija je kontinualan skup bitova pri čemu svaki bajt (ili


memorijska reč) ima jedinstvenu (fizičku) adresu.

• Memorijske adrese počinju od 0 do N u zavisnosti od veličine


glavne memorije.
Upravljanje U/I uređajima
• Sakriva detalje i specifičnosti svakog hardverskog uređaja od
korisnika.
• Osnovne funkcije:
– Obezbeđuje jedinstveni interfejs prema U/I uređajima.
– Pomoću drajvera uređaja vrši upravljanje specifičnim U/I uređajima.
– Planira, dodeljuje procesima i oslobađa U/I uređaje
– Obezbeđuje efikasnost rada U/I uređaja i upravljanje greškama.
Upravljanje U/I uređajima (1)
• U/I softver
U/I softver
• Procedure za obradu prekida (interrupt handler) –
procedure koje se izvršavaju u slučaju nastanka prekida
(interrupt) od U/I uređaja.
• Drajveri uređaja (device drajver) – softver koji upravlja
radom U/I kontrolera, izdajući mu komande i prihvatajući
rezultat.
• OS U/I softver nezavistan od U/I uređaja
– Izvršava U/I funkcije koje su zajedničke za sve U/I uređaje
– Obezbeđuje aplikativnim programima jedinstven programski
interfejs nezavisno od tipa uređaja i U/I kontrolera.

(U aplikativnom programu poziva se funkcija read za


čitanje podataka sa sekundarne memorije bez obzira
da li se radi o hard disku, cd rom-u, USB flash disku, itd.)
Upravljanje datotekama
• Obezbeđuje organizovanje i pristup podacima na sekundarnim
(trajnim) memorijama računarskog sistema.
• Podaci su organizovani u datoteke, a datoteke su grupisane u
direktorijume (foldere, adresare, kataloge).
• Osnovne funkcije:

– Prevođenje logičke adrese (broj bloka) u fizičku adresu (cilindar,


staza, sektor).
– Kreiranje i brisanje datoteka i obezbeđenje operacija za rad sa
datotekama (otvaranje, zatvaranje, čitanje, upis, pozicioniranje,...).
– Evidencija blokova na sekundarnoj memoriji u kojima je smeštena datoteka.
– Evidencija slobodnog prostora na sekundarnoj memoriji za smeštanje novih
datoteka.
– Zaštita datoteka i podataka u njima od neovlašćenog pristupa,
modifikovanja i brisanja
Upravljanje datotekama (1)
• Datoteke – imenovana kolekcija logički povezanih, homogenih
podataka.
– Ime datoteke, tip datoteke (ekstenzija), veličina, datum
kreiranja/modifikacije, prava pristupa, itd.
• Direktorijumi (folderi, adresari, katalozi) –sadrže spisak datoteka
i direktorijuma nižeg nivoa
– Korenski direktorijum (root) – C:\
– Hijerarhijska organizacija direktorijuma u stablo (graf)
– Putevi (path) do datoteka i direktorijuma
• Apsolutni – počev od direktorijuma korena, navođenje svih
direktorijuma do konačne datoteke ili direktorijuma
• Relativni – počev od radnog direktorijuma, korišćenjem simbola .
(tekući direktorijum) i .. (direktorijum iznad).
Softversko inženjerstvo

• Računarska disciplina kojom se primenjuju inženjerski principi i


metodologije u razvoju softvera.
• Proizvod softverskog inženjerstva (razvoja softvera) nije samo
softverska aplikacija već i svi prateći dokumenti, dijagrami,
specifikacije koje su rezultat različitih faza u razvoju softvera.
Životni ciklus softvera
Modeli životnog ciklusa softvera

• Model vodopada
• Model baziran na prototipovima
• Spiralni model
• Inkrementalni
• Formalni razvoj
• Modeli zasnovani na ponovnoj upotrebljivosti
• Rapidni modeli razvoja
Model vodopada
• Osnovna karakteristika ovog modela je da stanja slede
sekvencijalno jedno za drugim. U sledeće stanje se prelazi tek kada
se kmpletiraju sve aktivnosti i poslovi u prethodnom stanju. Ovo je
model na veoma visokom nivou predstavlja životni ciklus softvera.
• Osnovni nedostatak ovog modela je da ne postoje povratne
informacije (feedback) o realizovanim aktivnostima, kao i
iterativnog izvršavanja pojedinih faza.
• U praksi se programeri vrlo često vraćaju na prethodne faze nakon
sagledavanja problema koji se pojavljuju tokom realizacije. To je
uslovilo razvoj modela koji predstavljaju modifikaciju osnovnog
modela vodopada, a uključuju povratne informacije i iteraciju u
životni ciklus.
Model vodopada
Model vodopada sa prototipovima
• Ovaj model uključuje izradu prototipova u fazama razvoja, kao
i verifikaciju dizajna i validaciju postavljenih zahteva. Takođe
obuhvata povratne informacije u životnom ciklusu. Povratne
informacije obezbeđuju verifikaciju dizajna sistem, i validaciju
da li su zadovoljeni postavljeni uslovi.
• Verifikacija obezbeđuje da sve implementirane
funkcionalnosti rade korektno. Validacija obezbeđuje da su u
sistemu implementirani svi specificirani zahtevi. Na taj način
se može od svake implementirane funkcionalnosti doći do
skupa zahteva koje ona implementira.
Model vodopada sa prototipovima
V model vodopada

• Ovaj model prikazuje vezu između aktivnosti testiranja i


analize i dizajna. Ovaj model ukazuje da problemi koji se uoče
tokom verifikacije i validacije omogućuju da se pojedine faze
u životnom ciklusu ponove. Takav pristup omogućuje
identifikaciju i otklanjanje uočenih problema.
V model vodopada
Model baziran na prototipovima
• Prototipovi omogućuju brzo konstruisanje prototipskih
modela pojedinih delova sistema, na osnovu kojih se potom
ostvaruje usaglašenost razumevanja korisnika i projektanata
softvera. Upotreba prototipova uvodi višestruke iteracije u
toku razvoja softvera.
• Primena ovog modela obezbeđuje da svi učesnici u procesu
budu zadovoljni postignutim rezultatima. Višestruke iteracije
su podržane kreiranjem i lista za reviziju koje se potom
uključuju u proces izrade novih prototipova sve dok se ne
dođe do zadovozavajućeg rešenja.
Model baziran na prototipovima
Spiralni model
• Spiralni model je uveden sa ciljem da se smanji i kontroliše rizik
tokom razvoj softvera. Na kraju svakog ciklusa se kreira prototip
na određenom nivou apstrakcije i on predstavlja ulaz za sledeću
fazu u ciklusu.
• Nakon prve iteracije se dobija dokument sa analizom šta treba
da sadrži proizvod.
• Nakon druge faze se dobija dokument sa specifikacijom zahteva.
• Nakon treće faze se dobija dizajn sistema.
• Nakon četvrte faze se dobija proizvod koji je moguće testirati.
• U svakoj iteraciji se vrši analiza rizika različitih alternativa u
odnosu na zahteve, ograničenja i realizovane prototipove
Spiralni model
Zaključak

• Aplikativni i sistemski softver.

• Operativni sistem.

• Softversko inženjerstvo.

• Životni ciklus softvera

• Modeli razvoja softvera


Literatura
• Željko Stojanov, „Softverska rešenja za finansije i
menadžment – Životni ciklus softvera“, dostupno na:
http://www.tfzr.uns.ac.rs/Content/files/0/L01%20SRFM%20-
%20Zivotni%20ciklus%20softvera.pdf
, datum pregleda: 19.11.2017.
• William Stalling, „Operating Systems, Internals and Design
Principles“, 7th edition, Prentice Hall, 2012.

You might also like