Računarski softver

Download Report

Transcript Računarski softver

Računarski softver
1
Kompjuterski softver
Aplikativni
softver
Programi
opšte
namjene
•Web Browsers
•E-Mail
•Tekst procesori
•Spreadsheet
programi
•Programi za
prezentacije
•Groupware
Programi
specifične
namjene
•Poslovni IS
(Računovodstvene
aplikacije,
procesiranje
transakcija, prodaja,
planiranje,
E-Commerc…)
•Nauka i
inžinjerstvo,
•Obrazovanje
Sistemski
softver
Programi
za upravljanje
sistemom
Programi
za razvoj
sistema
•Operativni sistemi
•Mrežni softver
•DBMS
•Server aplikacija
•Uslužni sistemski
programi
•Programi za
praćenje
performansi i zaštite
•Prevodioci
programskih jezika
•Programski editori i
alati
•CASE alati
2
Mjesto i uloga sistemskog i
aplikativnog softvera
KORISNIK
APLIKATIVNI SOFTVER
SISTEMSKI SOFTVER
HARDVER
3
Sistemski
softver
Programi
za
upravljanje
sistemom
4
Operativni sistemi
• Skup programa koji omogućavaju
funkcionisanje računara tj. efikasno
korišćenje njegovih resursa za izvršavanje
korisničkih aplikacija
• Uravlja operacijama CPU , ulazno/izlaznim
operacijama, dodjeljivanjem memorije,
izvršavanjem programa i datotekama,
omogućava pristupanje mreži, štampanje,
ekranske prikaze itd…
• Nalazi se na disku a kada se sistem pokrene
prebacuje se tj. učitava u OM.
5
Pet osnovnih funkcija OS
Korisnički
interfejs
Krajnji korisnik/
sistemske i mrežne
komunikacije
Upravljanje
resursima
Upravljanje
zadatkom
Upravljanje
datotekama
Uslužne i druge
funkcije
Upravljanje
i upotreba
hardverskih
resursa
Upravljanje
izvršavanjem
zadatka
Upravljanje
podacima i
programskim
datotekama
Obezbjeđivanje
različitih
servisa podrške
6
Korisnički interfejs (UI)
• Omogućava komunikaciju korisnika sa OSom :
• pokretanje programa
• pristup fajlovima (datotekama)
• Tipovi UI-a: komandni, pomoću menija i
GUI
print ugovor.doc
dir poslovanje
7
Korisnički interfejs (UI)
• Omogućava komunikaciju korisnika sa OSom :
• pokretanje programa
• pristup fajlovima (datotekama)
• Tipovi UI-a: komandni, pomoću menija i
GUI
print ugovor.doc
dir poslovanje
8
Korisnički interfejs (UI)
• Omogućava komunikaciju korisnika sa OSom :
• pokretanje programa
• pristup fajlovima (datotekama)
• Tipovi UI-a: komandni, pomoću menija i
GUI
print ugovor.doc
dir poslovanje
9
Upravljanje resursima
• Upravljanje hardverskim komponentama :
(CPU, memorija, sekundarna memorija,
ulazno/izlazne periferije, telekomunikacioni
procesori)
• Realizacija koncepta virtuelne memorije
10
Podjela OM na particije Virtuelna memorija
Apsolutna adresa
001110...
Program za
ažuriranje zaliha
Particije
Program za
štampanje faktura
Program
finansijskog
knjigovodstva
Program za
ažuriranje
zaliha
Relativna adresa
0110..
...
Operativna
memorija i
sistemski
softver
Aplikativni i
ostali softver
Ostatak memorije
11
Upravljanje datotekama
• Kreiranje, brisanje i pristup datotekama
• Održavanje informacija o fizičkoj lokaciji
na disku i karakteristikama dataoteka
12
Upravljanje datotekama
• Kreiranje, brisanje i pristup datotekama
• Održavanje informacija o fizičkoj lokaciji
na disku i karakteristikama dataoteka
13
Upravljanje datotekama
• Kreiranje, brisanje i pristup datotekama
• Održavanje informacija o fizičkoj lokaciji
na disku i karakteristikama dataoteka
14
Upravljanje zadatkom
• Dodjeljivanje procesora programskim zadacima i
prekidanje operacija CPU
• Multitasking - korisnik može istovremeno obavljati dvije
ili više operacija sa jednim programom ( kucati tekst
nekog dokumenta dok se neki drugi štampa)
• Multiprogramiranje - raditi sa više aplikacija (programa)
(na primjer kucati tekst i pretraživati Web).
• Timesharing -istovremeno izvršavanje programa od više
različitih korisnika
• Multiprocesiranje - izvršavanje programa na više
procesora
15
Uslužne funkcije
• Sortiranje i spajanje datoteka, kopiranje
datoteka, formatiranje, podrška
procesorskih programa (punjenje programa,
povezivanje relativnih i apsolutnih adresa
itd…)
16
OS mikroračunara
• MS DOS (Disk Operating System) (80 -tih
godina), komandni UI
• Windows (90-tih), GUI
• Windows 95, GUI, multitasking,
multiprogramiranje
• Windows NT, 98, 2000, XP
• podržavaju multitasking, multiprogramiranje,
timesharing (mrežni- višekorisnički)
• podržavaju multimediju (tekst, grafika, zvuk,
17
animacija)
OS mikroračunara
18
OS velikih računara
Višekorisnički (multiuser), multitasking i
multiprograming sistemi
UNIX, LINUX,…
• UNIX je najčešći izbor za Web servere
• Linux je jeftinija verzija UNIX operativnog
sistema koja se i danas može nabaviti
besplatno ili po veoma niskoj cijeni preko
Interneta.
19
Programi za upravljanje
mrežom
• kontrolišu input/output aktivnosti radnih
stanica i terminala
• dodjeljuju prioritete njihovim
komunikacionim zahtjevima
• otkrivaju i eliminišu grešake prilikom
transmisije
• nalaze se na mrežnim serverima ali i na
drugim kompjuterima i uređajima u mreži
20
• mrežni operativni sistemi (Novell
NetWare za komplekse međusobno
povezanih LAN mreža)
• telekomunikacioni monitori - CICS
(Customer Identification and Control
System) za WAN mreže
• monitori mrežnih performansi
21
Sistemi za upravljanje bazama
podataka
• DBMS (Data Base Management System)
• Aktivnosti DBMS-a : realizacija, održavanje i
korišćenje baze podataka
• Projektanti i aplikativni programi su oslobođeni
metoda za kreiranje, unošenje, izmjene i
pretraživanje podataka
• Poznati DBMS paketi su Oracle 9i, IBM-ov DB2
kao i MS Access, Lotus Approach i Corel Paradox
za mikrokompjutere.
22
Jezici DBMS-a
• Programski jezici za kreiranje aplikacionih
programa ( 4GL jezici)
• DDL (Data Definition Language) jezik za
definisanje podataka tj. njihove logičke
(konceptualne) strukture
• DML (Data Manipulation Language) jezik
za manipulisanje podacima (pretraživanje,
unošenje, brisanje i izmjene)- upitni jezici
(SQL)
23
Korisnici
DDL,
DML
Baza
podataka
I ME_P
SI FRA_PR
AD RESA
Konceptualni
model
podataka
Projektanti i
programeri
Programski
jezici (4GL)
NAZI V
M LB
KRE DITI
nast avni k
predmet
gr upa
STATUS
KNJ I GA
SATI _
N ED
DBMS
VRI JEM E
pr eduslov
cas
izd rz_ li ca
sal e
BR
_ S AL
E
IM E
T AROST
S
BR_MJ ESTA
SROD STVO
Aplikativni
program
24
Uslužni programi
• Uslužni programi samostalno ili kao dio
operativnog sistema omogućavaju različite
upravljačke i fajl-konverzione funkcije:
backup i recovery podataka,
• zaštita od virusa,
• kompresija, kopiranje, sortiranje, spajanje i
defragmentaciju fajlova
25
Programi za praćenje
performansi i zaštite
• Prate performanse i stepen iskorištenosti
računarskog sistema tj. obezbjeđuju
optimalnu efikasnost sistema
• Prate i zapisuju neautorizovane pristupe
računarskom sistemu i o tome porukom
obavještavaju korisnika
26
Sistemski
softver
Programi
za razvoj
sistema
27
Programski jezici
• Jezik je sistem znakova koji služi kao
sredstvo za komunikaciju između učesnika
u komunikacionom procesu
• čovjek (prirodni jezik)-računar (jezik od dva
znaka 0 i 1)
• Kako ostvariti komunikaciju ?
• Pomoću programskih jezika koji se sastoje
od skupa unaprijed utvrđenih instrukcija ili
komandi
28
Generacije programskih jezika
1. Mašinski jezici
2. Asemblerski jezici
3. Viši programski jezici
4. Jezici četvrte generacije 4GL
5. Objektno orijentisani jezici
6. HTML, XML i Java Web orijentisani jezici
29
Prva generacija- mašinski jezici
• Jezik najnižeg nivoa blizak računaru
• Zavisi od strukture i karakteristika
konkretnog hardvera - mašinski zavisan
• Instrukcije se kodiraju binarnim riječima
(kombinacije 0 i 1)
• Programi su teški za pisanje, glomazni,
monolitni i nepregledni
• Prednost, izuzetno brzo se izvršavaju
30
Instrukcija mašinskog jezika
1010
11001
Operacioni kod
Operand
Sabiranje
Lokacija tj. adresa
podatka u memoriji
Učitavanje
Prenošenje
Štampanje
31
Kako izgledaju instrukcije prirodnim jezikom?
— » Dodaj sadržaj polja podatka sa lokacije 2500
sadržaju polja podatka na lokaciji 3250.«
— »Uporedi sadržaj polja podatka sa lokacije
3000 sa sadržajem polja podatka na lokaciji
8085.«
— »Prenesi saidržaj polja podatika sa lokacije
5200 na lokaciju 7500.»
— »Štampaj sadržaj sa lokacije 5500."
32
Program na mašinskom jeziku
0010 0100 1011 0111
1000 1110 1100 1011
0101 1001 0010 0001
0111 0010 0011 1101
0001 0000 1001 0100
1000 1001 1011 1110
0001 0011 0101 1001
0111 0010 0011 1101
0001 0000 1001 0000
1000 1001 1011 1111
1001 1101 1001 1110
0111 0010 0011 1101
0001 0000 1001 0000
0111 0010 0011 1101
0001 0011 1001 1100
33
Druga generacija- asemblerski
jezici
• Mnemonički jezik, koriste simboličke
oznake za mašinske instrukcije
• Zasnivaju se na algoritmima kao jezici III
generacije
• Pregledniji su i lakši za programiranje
• Neophodno je prevođenje instrukcija na
mašinski jezik pa se sporije izvršavaju
ADD X
34
Treća generacija-viši programski
jezici
• Sintaksa zasnovana na Engleskom jeziku
• Lakši su za programiranje
• Problemski orjentisani (na određenu klasu
problema)
• Kompatibilni su tj. nezavisni od mašine
• Obavezno se prevode što donekle usporava
rad
• Algoritamski, proceduralni, strukturirani,
modularni, strukture podataka
35
Algoritam
• Skup jednostavnih pravila (ulaza, izlaza,
obrade i uslova) formulisanih u cilju
rješavanja nekog zadatka
1.Ulazne veličine su X i Y
2. Saberi X i Y i prenesi dobijenu
vrijednost u Z
3. Izlazna veličina je Z
36
Algoritamska šema
• Grafički zapis algoritma
P
X,Y
Z
X+Y
Z
K
37
Procedure - potprogrami i moduli
Procedura -potprogram
Program
…
pov_kvadrata ( X )
...
POV_KOCKE = 6* pov_kvadrata (a)
P= X*X
RETURN P
...
Modul 2
…
Modul 1
38
Strukturirano programiranje
uslov
FOR I=1 TO N DO
WHILE uslov DO
GO TO
39
Strukture podataka
struct ime_studenta
{
char ime[20];
char prezime[30];
};
40
Viši programski jezici
Ada: Dobio je naziv po imenu Augusta Ada Byron koji se smatra prvim
svjetskim programerom. Razvijen od strane američke vlade kao standard
viših programskih jezika koji treba da zamijeni COBOL i FORTRAN.
BASIC: (Beginner’s all-Purpose Symbolic Instruction Code). Jednostavni
proceduralni jezik za programiranje od strane korisnika.
C: Strukturirani jezik srednjeg nivoa razvijen kao dio UNIX operativnog
sistema. Sličan je mašinski zavisnom asemblerskom jeziku po efikasnosti
ali je mašinski nezavisan i ima sve mogućnosti viših programskih jezika.
COBOL: (COmmon Business Oriented Language) Programski jezik čija se
sintaksa zasniva na engleskom jeziku. Ima veoma široku primjenu u
programiranju poslovnih aplikacija
FORTRAN: (FORmula TRANslation) Viši programski jezik dizajniran za
naučne i inženjerske primjene.
PASCAL: Dobio je naziv po Blaise Pascal. Razvijen je specijalno da uključi
koncepte strukturnog programiranja i struktura podataka.
41
Jezici četvrte generacije - 4GL
• Uglavnom se odnose na razvoj aplikacija za
baze podataka
• Neproceduralni, deklarativni i
konverzacioni jezici, programer i korisnik
specificira rezultate koje želi da dobije (npr
upitnim jeziokom SQL) ali ne i kako se
dobijaju
42
Jezici četvrte generacije - 4GL
SELECT IME, PREZIME, BR_IND
FROM studenti
WHERE BR_IND=ANY
(SELECT BR_IND
FROM prijave
WHERE OCJENA>5 AND
DATUM=”januar04”)
43
Jezici četvrte generacije - 4GL
• Nemaju efikasnost i fleksibilnost jezika
treće generacije ali su jednostavni za
upotrebu
• Kompromis kombinovanjem : pretraživanje
podataka korišćenjem SQL-a a upravljanje
programom putem proceduralnih jezika (C,
PL/1,…)
44
Četiri nivoa programskih jezika
 Mašinski jezik
 Viši programski jezici
Koristi binarno kodirane
Koriste kratke naredbe ili aritmetičku
instrukcije
notaciju
1010 11001
BASIC : X=Y+Z
1011 11010
1100 11011
 Asemblerski jezik
 4GL
Koristi simbolički kodirane
Koriste prirodne i neproceduralne
instrukcije
naredbe
LOD Y
ADD Z
SUM THE FOLLOWING NUMBERS
STR X
45
Objektni jezici
• Objekat se sastoji od podataka i operacija koje mogu
biti izvršene nad podacima.(primjer štedni račun i
obračun interesa)
• Kod objektnih jezika objekti aktiviraju druge objekte da
izvršavaju operacije nad sobom (primjer otvaranje
prozora)
• Mogućnost višestrukog korištenja jednom definisanog
objekta je glavna prednost objektnog programiranja.
• Većina objektno orijentisanih paketa za programiranje
obezbjeđuje GUI tj. point and click i drag and drop
vizuelno sastavljanje objekata ili tzv. vizuelno
programsko okruženje (Visual Basic, Visual C++ i
46
drugi).
Vizuelno kreiranje forme za unos podataka
47
Web orijentisani jezici
• HTML (Hypertext Markup Language) je jezik za
kreiranje hypertext i hypermedia dokumenata.
• XML (eXtensibile Markup Language) nije jezik za
formatiranje Web strana već on opisuje njihov sadržaj
primjenom identifikacionih tagova ili kontekstualnih
labela za podatke na Web strani. (primjer označavanje
proizvoda na zalihama na Web strani, sa tagovima vrsta,
cijena, veličina ubrzava pretragu)
• XML omogućava jednostavniji i efektivniji e- commerce,
podržavajući i unapređujući elektronsku razmjenu
poslovnih podataka između kompanija i njihovih klijenata
48
Primjer HTML dokumenta
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>A study of population dynamics</TITLE>
<STYLE type="text/css">
BODY { background: white; color: black}
A:link { color: red }
A:visited { color: maroon }
A:active { color: fuchsia }
</STYLE>
</HEAD>
<BODY>
... document body...
</BODY>
</HTML>
49
Primjer XML dokumenta
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <!-Edited by XMLSpy®
-->
- <CATALOG>
- <PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
- <PLANT>
<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
<ZONE>3</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$9.37</PRICE>
<AVAILABILITY>030699</AVAILABILITY>
</PLANT>
50
Web orijentisani jezici
• Java je objektni jezik sličan C++ , ali je mnogo
jednostavniji, sigurniji i mašinski nezavisniji od njega
• Java aplikacija se sastoji od malih aplikativnih programa
tzv. apleta koji mogu biti izvršeni na bilo kom
kompjuteru ili operativnom sistemu u mreži.
• Apleti su rezidentni na websajtovima na serveru sve dok
ne budu zatraženi od strane klijenta, kada se jednostavno
distribuiraju preko Interneta ili intranet i extranet mreže.
• Apleti su potpuno nezavisni od platforme. Mogu se
ravnopravno izvršavati pod Windows, UNIX ili nekim
drugim sistemom bez ikakvih modifikacija.
• Glavni nedostatak je mala brzina izvršavanja
51
Program prevodioci
• Računarski programi se pišu višim
programskim jezicima koji su razumljivi
za čovjeka
• U računar se unose preko editora u takvom
izvornom kodu
• Računar prepoznaje i izvršava programe
pisane mašinskim jezikom
• Kada se program prevede na mašinski jezik
on dobija formu objektnog koda
• Prevođenje izvornog koda u objektni
52
obavljaju program prevodioci
Viši programski jezik
Mašinski jezik
INPUT X,Y.
...
PRINT Z
PROGRAM
PREVODIOC
1100111…
.
1…..0010
01…..111
…
...
10111...
Izvorni kod
Objektni kod
53
Asembleri i kompajleri
• Prevode cjelokupan izvorni kod programa
u objektni.
• Nezavisani su od mašine
• Program se prevodi samo jednom
• Svaki put kada se program aktivira izvršava
se direktno objektni kod koji rezistira u
memoriji
54
Interpreter
• Sukcesivno prevođenje, instrukciju po instrukciju.
• Instrukcija izvornog koda se prevede u objektni,
zatim se izvrši, odbaci, preuzima sljedeća itd…
• Prilikom svakog aktiviranja programa vrši se
ponovno prevođenje jer se u memoriji čuva samo
izvorni kod sa interpreterom
• Spor je i pogodan za manje programe koji se ne
koriste često
• Java je primjer jezika koji se prevodi
interpreterom.
55
Programski editori i alati
Omogućavaju i podržavaju proces
programiranja koji podrazumijeva :
• pisanje izvornog koda programa
• debug-ovanje tj. ispravljanje grešaka u
izvornom kodu
• prevođenje u objektni kod
Razlikuju se u zavisnosti od programskog
jezika: BASIC editor i interpreter, C editor
i kompajler, itd...
56
CASE alati
• Napredak hardverske tehnologije i zastoj
razvoja softvera - softverska kriza
• CASE (Computer Aided Software
Engineering) - kompjuterom podržana
proizvodnja softvera tj. automatsko
projektovanje, izrada, uvođenje,
eksploatacija i održavanje softvera
• Pojeftinjuju i ubrzavaju proizvodnju
softvera, softver čine pouzdanijim i
efikasnijim
57
1. Intranet jedne kompanije treba da ima 12 radnih
stanica, Web srever i server baze podataka. Svaka
radna stanica pomoću browser-a treba da koristi
interaktivne, real- time Web aplikacije koje se
izvršavaju na Web serveru. Web server je povezan
sa dva štampača koje treba da koriste sve radne
stanice zajedno. Da li je dovoljno da organizacija
nabavi operativni sistem sa mogućnošću
multitasking-a? Zašto? A multiprogramiranja ?
Zašto? Da li je organizaciji potreban OS sa
mogućnošću time sharing-a ? Zašto? Kako se još
zovu OS koji imaju mogućnost time sharing-a? U
čemu je razlika između multiprogramiranja i
multiprocesiranja ?
58
2. Dio poslovnog informacionog sistema jedne firme
treba da real-time procesira oko 5000 transakcija u
sekundi. Imate ponude za realizaciju sistema pomoću
Web orijentisanog jezika Java, objektnih jezika Visual
C++ i Visual Basic, kao i 4GL jezika. Koju od ponuda
ćete izabrati? Zašto?
59