Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
dr Dušan Ljubičić 1
Uvod u informacione sisteme i
tehnologije
Software
Softver (Software)
• Softver je neopipljivi deo računara
• Predstavljaju ga svi programi koji se izvršavaju na
računaru
• Softver su programi (naredbe, instrukcije) koji 'govore'
računaru kako treba da izvršava određene zadatke
• Softver je veza između korisnika i računara
• Pojam softver prvi put pominje John W. Tukey, inženjer
informatike, 1957. godine
• Pojam je nastao kao analogija pojmu hardver
• Na engleskom reč hardver znači tvrde stvari (hard =
tvrdo), a soft znači meko
dr Dušan Ljubičić 2
Sistemski i korisnički
• Razlikujemo dve vrste softvera, sistemski i
korisnički (aplikativni)
dr Dušan Ljubičić 3
Softver
Operativni sistemi
Upravljački programi
Uslužni programi
Programi prevodioci
Programi opšte namene
Namenski pisani programi
Sistemski softver Aplikativni softver
Sistemski softver
• Sistemski softver (System Software) pokreće
računar i upravlja njegovim radom
• Ovi programi direktno upravljaju fizičkim delom
računara, hardverom i omogućavaju interakciju
korisničkog softvera sa hardverom
• U sistemski softver spadaju operativni sistem,
upravljački programi (drajveri), uslužni programi i
programi prevodioci
dr Dušan Ljubičić 4
Operativni sistemi
• Operativni sistem (Operating System) je skup
programa koji sve komponente računara
povezuje u jednu operativnu celinu
• Operativni sistem upravlja radom hardvera
(ulaznim i izlaznim jedinicama, memorijom),
koordinira rad korisničkih programa, proverava
ispravnost pojedinih delova računara, upravlja
datotekama itd
• Operativni sistem se nalazi na hard disku i
učitava u RAM memoriju odmah po uključivanju
računaradr Dušan Ljubičić 5
Operativni sistemi
• Najpopularniji OS su Android, Windows,
iOS, OS X i Linux
dr Dušan Ljubičić 6
Različiti interfejs
• Postoje dva osnovna interfejsa preko
kojih korisnik komunicira sa
računarom:
–komandno linijski (tekstualni)
–grafički interfejs
dr Dušan Ljubičić 7
Command Line Interfaces
• Kod tekstualnog korisnik komande unosi
tekstualno, kucanjem na tastaturi, liniju po liniju
• Ovakav način rada je od korisnika zahtevao
dobro poznavanje velikog broja komandi i
njihovih parametara
• Kod PC računara, najpoznatiji predstavnik
komandno linijski orijentisanog operativnog
sistema je MS DOS (Microsoft Disk Operating
System)
dr Dušan Ljubičić 8
MS DOS
dr Dušan Ljubičić 9
GUI - Graphical User Interface
• Kod operativnih sistema koji su grafički orijentisani
komande se izvršavaju izborom komande iz padajućih
menija, jednostrukim ili dvostrukim klikom mišem na
objekat
• Na ovaj način korisnici više nisu morali da pamte veliki
broj komandi, upotreba računara je znatno olakšana
• Najpoznatiji predstavnik grafički orijentisanog
operativnog sistema (GUI - Graphical User Interface) je
MS Windows (Windows 95 i kasnije verzije, starije
verzije do verzije zaključno sa Windows 3.11 nisu OS)
• Poznati su i IBM OS2, UNIX, LINUX
dr Dušan Ljubičić 10
Windows
dr Dušan Ljubičić 11
Funkcije operativnog sistema
• upravljanje procesima (mogućnost izvršavanja
više procesa istovremeno (multitasking) i deljenje
procesorskog vremena na procese (time sharing))
• upravljanje memorijom (razdvajanje sistemskih,
aplikativnih programa i podataka u memoriji,
upravljanje virtuelnom memorijom...)
• upravljanje uređajima (drajveri koji omogućavaju
funkcionisanje uređaja, prihvatanje podataka sa
ulaznih uređaja, skladištenje podataka na
diskovima, slanje podataka ka izlaznim uređajima)
dr Dušan Ljubičić 12
Funkcije operativnog sistema
• upravljanje podacima (organizacija podataka na disku i
u memoriji u vidu, datoteka (files), foldera (folders,
directories), adresiranje fajlova i memorisanje fizičke
lokacije fajlova, obrada više istovremenih zahteva za
pristup istom fajlu)
• zaštita podataka (upravljanje pristupom sistemskim
resursima, zaštita od neautorizovanog pristupa
podacima i programima upotrebom koriničkog imena
(username) i lozinke (password), povezivanje sa drugim
računarima u mreži)
• upravljanje greškama i oporavak sistema
dr Dušan Ljubičić 13
Upravljački programi
• Upravljački programi (drajveri) su programi
koji upravljaju određenim uređajem, kao
što su štampač, skener, grafička kartica,
mrežna kartica itd.
• Oni omogućavaju OS da koristi uređaj
dr Dušan Ljubičić 14
Uslužni softver
• U uslužne programe ubrajamo programe
za
– zaštitu od virusa
– zaštitu podataka od gubitka i oštećenja
(bekap, skeniranje diskova...)
– kompresiju datoteka (zip, arhive...)
– analizu hardvera u cilju dijagnosticiranja
problema i performansi računara itd.
dr Dušan Ljubičić 15
Programi prevodioci
• Programi prevodioci prevode programe koje pišu
programeri na mašinski jezik koji razume procesor
• Otkrivaju i identifikuju greške tokom prevoda
• Postoje tri vrste ovih programa: kompajler,
interpreter i asembler
• Viši programski jezici koriste kompajler ili
interpreter
• Asembler prevodi niže programske jezike u
mašinski jezikdr Dušan Ljubičić 16
Razvojni programi
• Razvojni programi za razvoj drugih programa
• Editor je program koji omogućava unos izvorne
verzije programa, nešto kao tekst procesor
• Izvorni kod prevodi se na mašinski jezik pomoću
prevodioca tj. kompajlera
• Objektni kod povezuje se sa eventaulnim drugim
potprogramima, ili bibliotekom gotovih
potprograma neophodnih za funkcionisanje
izvršne verzije. Ovo povezivanje se radi pomoću
linkera
dr Dušan Ljubičić 17
Razvojni programi
dr Dušan Ljubičić 18
Razvojni programi
• Za pokretanje programa potrebno je da se program učita
u RAM memoriju i ovo se izvršava pomoću programa
punioca, loader
• Još jedan program pomaže u izradi, tačnije testiranju
funkcionisanja programa, zove se debager (debug)
• Kod interpretera prevođenje programa se radi tako što
se prevodi instrukcija po instrukcija u trenutku
izvršavanja, usporava izvršenje programa
• Instrukciju možemo izmeniti u toku izvršenja programa
• Da bi se program pokrenuo moramo imati izvorni kod
programa za razliku od kompajlerske verzijedr Dušan Ljubičić 19
Programski jezici
• Programski jezici omogućavaju pisanje
instrukcija računaru i razvoj programa
• Postoje mašinski, asemblerski jezici i jezici
višeg nivoa
• Mogu da se podele u pet generacija
dr Dušan Ljubičić 20
Programski jezici – prva gen.
• U prvu generaciju spadaju mašinski jezici
• Kompletan program je pisan binarnim
ciframa
• Izuzetno težak za korišćenje
dr Dušan Ljubičić 21
Programski jezici – druga gen.
• U drugu generaciju spadaju asemblerski programi
• Uvedene su skraćenice za nazive instrukcija
• Umesto navođenja fizičkih adresa na kojima su se
nalazili podaci, mogla su se davati imena istima
• Mašinski i asemblerski jezici su niskog nivoa
• Pisani su za određenu arhitekturu računara,
procesori različitih arhitektura nisu mogli da koriste
iste programe
dr Dušan Ljubičić 22
Programski jezici – treća gen.
• Treću generaciju čine jezici visokog nivoa
• Oni su čitljiviji i bliži ljudskom jeziku i daleko lakši
za pisanje i održavanje
• Najpoznatiji jezici ove generacije su COBOL,
Fortran, Pascal, ALGOL, Basic i C
• i objektno orijentisani programi. C++, C#, Java i
Python
• To su ujedno i jezici koji se danas najviše koriste
dr Dušan Ljubičić 23
Programski jezici – četvrta gen.
• Jezici četvrte generacije su namenjeni za:
– rad sa bazom podataka
– matematičku optimizaciju
– razvoj grafičkog interfejsa
– razvoj veba
– prikupljanje izveštaja…
• Poznatiji predstavnici ove generacije su SQL,
SAS i SPSSdr Dušan Ljubičić 24
Programski jezici – peta gen.
• U jezike pete generacije ubrajaju se svi programi
koji se baziraju na rešavanju problema kroz
davanje ograničenja programu, umesto
korišćenja algoritama za njihovo rešavanje
• Uglavnom se koriste za istraživanja vezana za
veštačku inteligenciju
• Prolog, Merkur i OPS5 su predstavnici ove
generacije jezika
dr Dušan Ljubičić 25
Korisnički (aplikativni) softver
• Korisnički softver predstavljaju programi koji su
namenjeni krajnjim korisnicima računarskog
sistema
• Ovde spadaju programi koji su pisani za
rešavanje nekih opštih problema, kao što su
pisanje i obrada teksta, tabelarna izračunavanja,
rad sa bazama podataka
• I namenski pisani programi kojima se rešava
specifičan problem određenih korisnika
dr Dušan Ljubičić 26
Aplikativni softver
• Aplikativni softver su programi koji omogućavaju
korisniku rešavanje konkretnih problema i zadataka
• Ovde spadaju
– programi koji su pisani za rešavanje nekih opštih
problema, kao što je pisanje i obrada teksta,
tabelarna izračunavanja, rad sa bazama podataka itd.
(Word, Excel, Access, AutoCad...)
– namenski pisani programi koji rešavaju problem
jednog ili određenog broja korisnika (programi za
vođenje računovodstvenih poslova, kadrovskih i
ostalih evidencija)dr Dušan Ljubičić 27
Vlasništvo nad softverom
• Svaki softver podleže zaštiti autorskih prava
• Autorsko pravo za područje softvera (Software
Copyright) podrazumeva isključivo pravo proizvođača
da umnožava softver na koji polaže pravo
• Prodajom softvera proizvođač i dalje zadržava
autorska prava. Ovakav softver ne sme se kopirati bez
znanja i dozvole nosioca ovog prava
• Kupovinom softvera postajete vlasnik prava upotrebe
softvera (Software Licence) i na osnovu tog prava
softver možete samo koristiti i to obično na samo
jednom računarudr Dušan Ljubičić 28
Licenca
• Licenca korisnika (End User Licence) je
zakonski ugovor između autora ili izdavača
softverske aplikacije i korisnika u vezi uslova
distribucije, dalje prodaje i ograničenja upotrebe
• Ovo predstavlja ugovor o korišćenju softvera
između autora i korisnika
• Ovaj dokument može da zauzima i desetak
strana. Instaliranjem softvera morate da
odgovorite da prihvatate (Agree) ova prava i
obaveze
dr Dušan Ljubičić 29
Freeware i Shareware
• Freeware (slobodni softver) je jedini softver
koji se zakonski besplatno kopira i koristi, ali bez
prava prodaje
• Shareware (softver sa odloženim plaćanjem)
je softver koji možete koristiti ograničen
vremenski period ili ga možete pokrenuti
određen broj puta. Obično se koristi kako biste
isprobali i uvideli mogućnosti programa
• Ovakav metod se naziva Try before you Buy
(probajte pre kupovine)
dr Dušan Ljubičić 30
Open source software
• Open source software (Softver otvorenog kôda)
se odnosi na bilo koji softver čiji izvorni kod je
dostupan za upotrebu i modifikaciju
• Otvoreni kod omogućava organizacijama da
softver prilagode svojim potrebama, a prodavcima
softvera da ga modifikuju radi dalje prodaje
• Linux je najpoznatiji primer ovog tipa softvera
• Red Hat je najveća kompanija koja pravi softver
otvorenog kôda
dr Dušan Ljubičić 31
Faze razvoja softvera
• Prilikom razvoja novog softvera postoje određene faze
• Analiza
Analitičari analizaju postojeće stanje i analiziraju potrebe
korisnika računara. Planiraju kako će sistem da funkcioniše
u realnom okruženju
• Dizajniranje (projektovanje)
Projektanti, na osnovu plana i specifikacije sistem
analitičara, prave projekat koji opisuje sve module, zahteve
• Programiranje
Programeri, na osnovu projekta, izrađuju programe koje će
u realnom okruženju koristiti krajnji korisnici. Program je niz
instrukcija koje govore računaru šta treba da radi
dr Dušan Ljubičić 32
Faze razvoja softvera
• Testiranje
Podrazumeva detaljna testiranja svih delova programa. Na
osnovu izvršenih testiranja ponovo se radi analiza,
projektovanje i programiranje, odnosno sve se obavlja u
ciklusima
• Dokumentovanje
• Jedna vrsta dokumenata odnosi se na tehničke detalje i
namenjena je profesionalcima koji eventualno treba da
nastave rad na odgovarajućem softveru
• Druga vrsta dokumentacije jeste uputstvo za upotrebu i
namenjeno je korisnicima softvera
dr Dušan Ljubičić 33
Faze razvoja softvera
• Održavanje programa
• Ne postoji program koji ne zahteva održavanje
• Vremenom dolazi do potrebe prilagođavanja
softvera, ispravke nekih njegovih delova
• U slučaju da firma kupuje određeni softver, mora
posebno da obrati pažnju na ovu fazu, jer
održavanje softvera uglavnom u potpunosti zavisi
od njegovog autora
dr Dušan Ljubičić 34
Algoritmi
• Algoritam je opis, uputstvo za rešavanje nekog
problema
• Prvi put reč algoritam pominje se kao greška u
prevodu arapskog matematičara Muhameda Al
Horezmija. Njegovu knjigu Al Horezmi o
indijskim brojkama prevode na latinski kao
Algoritmi de numero indorum
• Ubrzo se reč algoritam (lat. Algorithmus)
odomaćila za način računa sa novim brojkama
(sada poznate kao arapske, a ne indijske)
dr Dušan Ljubičić 35
Algoritmi
• U novije vreme, algoritam je pojam koji se gotovo
isključivo vezuje za informatiku i, mada ne postoji
jedinstvena opšteprihvaćena definicija, podrazumeva se
da je u pitanju nekako opisana procedura za obavljanje
posla
• Algoritmi mogu biti prikazani ili realizovani na više načina:
– prirodnim jezikom (razumljiv govornicima tog jezika),
– grafički, dijagramom toka (blok-dijagramom),
– tekstualno - pseudokodom, veštačkim precizno
definisanim jezikom koji liči na programski jezik,
– odgovarajućim programskim jezikom
dr Dušan Ljubičić 36
Algoritmi
• Recept za spremanje nekog jela može se smatrati
jednim algoritmom ispisanim prirodnim jezikom
• Ali ako za taj recept koristimo simbole sa značenjem
odgovarajućih radnji govorimo o dijagramu toka,
grafičkom algoritmu, Ovakav način sigurno je pregledniji,
ali zahteva da se pridržavamo strogih pravila upotrebe
simbola
• Ako uvedemo neki standard reči koje koristimo za
pisanje recepata govorimo o pseudo kodu
• Ali ako koristimo jezik koji će razumeti računar govorimo
o programskom jeziku
dr Dušan Ljubičić 37
Osobine algoritama
• diskretnost — u odvojenim koracima izvršavaju se
diskretne operacije algoritma koji vode ka konačnom
cilju;
• rezultativnost — označava sposobnost algoritma
da posle konačnog broja koraka daje izlazne
podatke;
• determinisanost — za iste ulazne podatke
algoritam uvek generiše iste vrednosti na izlazima i
• masovnost — algoritam je primenljiv na veći broj
ulaznih vrednostidr Dušan Ljubičić 38
Algoritamske strukture
• U algoritmima se koriste odgovarajuće
strukture:
– sekvenca,
– selekcija i
– iteracija
dr Dušan Ljubičić 39
Sekvenca
• Sekvenca podrazumeva niz instrukcija koje se
izvršavaju jedna za drugom. Na primer, to može
da bude uputstvo kojim se opisuje kojim redom
student treba da polaže ispite
dr Dušan Ljubičić 40
41
Sekvenca je niz naredbi koje se izvršavaju jedna za drugom uokvirenih velikim zagradama { }. Sekvenca je obično deo složenije strukture u programu.
{naredba_1; naredba_2; naredba_3;}
Ili
{
naredba_1;
naredba_2;
naredba_3;
}
naredba 1
naredba 2
naredba 3
{
}
Sekvenca u jeziku C
dr Dušan Ljubičić
Selekcija
• Selekcija podrazumeva da se određeni niz
instrukcija izvršava ako je ispunjen neki uslov, a
u suprotnom se izvršava neki drugi niz
instrukcija
• Na primer, ako student nije položio neki ispit
mora da polaže neki drugi ispit
dr Dušan Ljubičić 42
43
Osnovnom selekcijom se vrši uslovno izvršavanje jedne od dve moguće naredbe (sekvence). Ako izraz (uslov) ima vrednost logičke istine (T – true, numerička vrednost različita od 0) izvršava se naredba_1. Ako je vrednost izraza (uslova) logička neistina (F – false, numerička vrednost jednaka 0) izvršava se naredba_2.
izraz
naredba 2naredba 1
FT
Selekcija u jeziku C
dr Dušan Ljubičić
dr Dušan Ljubičić 44
izraz
naredba 2
naredba 1
FTAko je uslov istinit izvršiće se
naredba_1, a zatim naredba_2.
U suprotnom izvršiće se samo
naredba_2.
if (izraz-uslov) naredba_1;
naredba_2;
Selekcija u jeziku C
Iteracija
• Iteracija podrazumeva da se određeni set
instrukcija ponavlja više puta dok se ne ispuni
neki uslov
• Na primer, ako student ne položi neki ispit, treba
da dalje uči i ponovo polaže sve dok ne položi
ispit
dr Dušan Ljubičić 45
dr Dušan Ljubičić 46
1. while (uslov-izraz)
naredba;
2. while (uslov-izraz)
{
naredba_1;
naredba_2;
}
Naredbe ciklusa se izvršavaju
sve dok je vrednost izraza
logička istina, tj. različita od
nule. Kada vrednost izraza
postane logička neistina
(jednaka nuli) izvršiće se
naredbe definisane posle
strukture ciklusa. U slučaju da
je u prvom prolasku kroz ciklus
vrednost izraza logička neistina
(jednaka nuli) naredbe ciklusa
neće se izvršiti nijednom.
izraz
Naredbe
T
F
Iteracija u jeziku C
Selekcije u programskom jeziku
• IF uslov THEN operacija
(ako je uslov ispunjen tada izvrši operaciju)
• IF uslov THEN operacija1 ELSE operacija2
(ako je uslov ispunjen, tada izvrši operaciju 1, u
suprotnom izvrši operaciju 2)
• CASE uslov OF
vrednost1: operacija1
vrednost2: operacija2
ELSE operacija n
(ako uslov ima vrednost1 izvrši operaciju1, ako uslov ima
vrednost2, izvrši operaciju2... u suprotnom izvrši
operacijun)
dr Dušan Ljubičić 47
Iteracije u programskom jeziku
• WHILE uslov DO operacija
(sve dok je uslov ispunjem, radi operaciju)
• FOR početak TO kraj DO operacija
(od početne vrednosti do krajnje vrednosti, radi
operaciju)
• REPEAT operacija UNTIL uslov
(ponavljaj operaciju sve dok se ne ispuni uslov)
dr Dušan Ljubičić 48
49
{
printf("\n\n\nUnesite ceo broj sa tastature ");
scanf("%d", &broj);
ost = broj % 2;
if (ost == 0)
kvadrat = pow(broj,2);
printf("\n\nBroj = %d", broj);
printf("\n\nKvadrat broja = %d", kvadrat);
}
Unos vrednosti
Ostatak
Prikaz
Ako je paran
računaj kvadrat
Unos vrednosti
Izračunavanje ostatka
Paran?
Računaj kvadrat
Prikaži rezultat
Učitajte ceo broj sa tastature. Ako je paran izračunajte
kvadrat broja i prikažite ga, u suprotnom kvadrat je nula
dr Dušan Ljubičić
dr Dušan Ljubičić 50
Uvod u informacione sisteme i
tehnologije
Software