informacione tehnologije u biznisu • predstavljaju ga svi programi koji se izvršavaju na...
TRANSCRIPT
1
Informacione tehnologije u
biznisu
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
2
Softver (Software)
• Definicija Instituta inženjera Elektrotehnike i
Elektronike (The Institute of Electrical and
Electronics Engineers - IEEE) za pojam softver
glasi:
• Softver je sveobuhvatni zbir informatičkih
programa, procesa, pravila; dokumentacije i
datoteka u vezi, koji čine deo operacija
jednog informacionog sistema
3
Sistemski i korisnički
• Razlikujemo dve vrste softvera, sistemski i
korisnički (aplikativni)
4
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
5
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čunara6
Operativni sistemi
• Operativni sistem je skup programa koji se
automatski učitava u RAM memoriju po
uključenju računara i neprekidno upravlja radom
računara
• Drajveri su programi koji se pišu posebno za
svaki operativni sistem, a predstavljaju uputstva
operativnom sistemu kako da koristi određenu
hardversku komponentu, štampač, skener,
zvučnu karticu itd
• Najpoznatiji operativni sistemi su Microsoft
Windows, Unix, Linux, Mac OS7
Operativni sistemi
• Najpopularniji OS su Android, Windows,
iOS, OS X i Linux
dr Dušan Ljubičić 8
Različiti interfejs
• Postoje dva osnovna interfejsa preko
kojih korisnik komunicira sa
računarom:
–komandno linijski (tekstualni)
–grafički interfejs
9
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)
10
MS DOS
11
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
12
Windows
13
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)
14
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
15
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ć 16
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.17
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ć 18
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
19
Razvojni programi
20
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 verzije21
Programski jezici
• Programski jezik je bilo koji od veštačkih jezika kojim je
moguće dati detaljne instrukcije računaru
• Programski jezici koriste se da olakšaju komunikaciju sa
računarom prilikom organizovanja i manipulacije
informacijama, ali i da precizno izraze algoritme
• Postoje mašinski i asemblerski jezici i jezici višeg nivoa
• Mašinski i asemblerski jezici su jezici niskog nivoa, koji
zahtevaju od programera da se posveti upravljanju svim
parametrima vezanim za čuvanje podataka i operacije
nad njima
• Jezici visokog nivoa bliži su prirodnom (ljudskom) jeziku,
čitljiviji su i daleko lakši za pisanje i održavanje programa
22
Mašinski i asemblerski jezik
• Mašinski jezik sastoji se od numeričkog kôda za
operacije koji određeni računar može direktno da izvrši.
Kôd je alfanumerička serija binarnih cifara 0 i 1 koji se
pretvara u heksadecimalni kôd radi lakše čitljivosti
• Asemblerski jezik je jedan nivo iznad mašinskog jezika.
Koristi kratki mnemonički kôd za instrukcije i omogućava
programeru da unosi imena za blokove memorije koja
sadrži podatke. Dizajniran je da omogući lako
prevođenje u mašinski jezik
• Kao i mašinski jezik, asemblerski jezik zahteva od
programera detaljno poznavanje računarske arhitekture
23
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ć 24
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ć 25
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ć 26
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ć 27
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ć 28
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ć 29
Korisnički (aplikativni) softver
• Korisnički softver predstavljaju programi koji su
namenjeni krajnjim korisnicima računarskog sistema
• Granica između operativnog sistema i korisničkih
programa nije precizno određena i predstavlja često
predmet rasprava
• Na primer, jedno od ključnih pitanja u
antimonopolskom sudskom slučaju Sjedinjene
Američke Države protiv Majkrosofta je - da li je
Majkrosoftov pretraživač Internet Eksplorer deo
operativnog sistema Windows, ili je deo skupa
korisničkih programa30
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)31
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čunaru32
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
33
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)
34
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ć 35
ANALIZA SISTEMA I ZAHTEVA KORISNIKA (SSA, UML, UMM)
KONCEPTUALNI MODEL (MOV, RM, Dijagram klasa)
LOGIČKO PROJEKTOVANJE BAZE PODATAKA U DATOM SUBP
(MOV u RM, ERwin)
FIZIČKO PROJEKTOVANJE BAZE PODATAKA
IMPLEMENTACIJA I PODEŠAVANJE
SPECIFIKACIJA APLIKACIJA (UML)
PROJEKTOVANJE APLIKACIJA (JPRS, MDA)
NOVI RAZVOJNI CIKLUS
PROJEKTOVANJE BAZE PODATAKA
PROJEKTOVANJE APLIKACIJA
STRATEŠKO PLANIRANJE
TESTIRANJE
UVOĐENJE SA ODRŽAVANJEM I MODIFIKACIJAMA SISTEMA
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
37
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
38
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
39
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)
40
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
41
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
42
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 vrednosti43
Algoritamske strukture
• U algoritmima se koriste odgovarajuće
strukture:
– sekvenca,
– selekcija i
– iteracija
44
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
45
46
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
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 kolokvijum
ne može da izađe na ispit.
47
48
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
49
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
50
51
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)
52
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)
53
Dijagrami
• Uobičajen način pristupanja kreiranju algoritma je
crtanjem dijagrama. Postoji više vrsta dijagrama
• Najpopularniji i najrasprostranjeniji je standardni
dijagram toka kada se tok prati po pravcu kretanja
strelica. U pravougaonike se upisuju kratki opisi
operacija i poslova, a u rombove i izdužene
šestougaonika uslovi za grananje
• Popularizacija strukturnog programiranja je dovelo do
uvođenja novih, strukturnih dijagrama toka. Ceo
dijagram je u obliku niza spojenih pravougaonika. Oni,
međutim, nisu široko prihvaćeni od programera
54
Standardni dijagram toka Strukturni dijagram toka
55
Dijagrami toka
56
{
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
57
Informacione tehnologije u
biznisu
Software