eMPIRICA VISOKA ŠKOLA RAČUNARSTVA I POSLOVNIH … · 12/24/2015 2 Programska podrška Programska...
Transcript of eMPIRICA VISOKA ŠKOLA RAČUNARSTVA I POSLOVNIH … · 12/24/2015 2 Programska podrška Programska...
12/24/2015
1
http://www.empirica.ba/
eMPIRICA VISOKA ŠKOLA RAČUNARSTVA I POSLOVNIH KOMUNIKACIJA
Brčko, Brčko Distrikt BiH
Studijski program: Inženjerska informatika/Poslovna
informatika Ak.god. 2015./2016.
Uvod u računarstvo i informatiku Programska podrška
Sadržaj
Programska podrška
• Sistemski softver
• Operativni sistem
• BIOS
• Grafički korisnički interfejs GUI
• Programi prevodioci
• Generacije programskih jezika
• Evolucija i održavanje softvera
12/24/2015
2
Programska podrška
Programska podrška
Računarski hardver ne može da izvrši nijednu aktivnost bez
prethodno dobijene instrukcije. Te instrukcije nazivamo
softverom ili računarskim programima.
Podrazumijeva da program mora odgovarati
zahtjevima koji proističu iz prirode problema za
koji je pisan program.
Funkcionalnost
Pod pouzdanošću se podrazumijeva broj
otkaza u jedinici vremena. Pouzdanost
Sposobnost izvršavanja na što više različitih
sistema. Prenosivost
Programska podrška se uglavnom dijeli na sistemsku
programsku podršku i korisničku programsku podršku.
Sistemsku programsku podršku čini skup programa pripremljenih
za prihvaćanje i izvršenje korisničkih programa. Korisničku
programsku podršku čine programi za rješavanje određenog
zadatka sastavljeni od korisnika računarskog sistema.
Programska podrška
12/24/2015
3
Sistemski softver Sistemski softver je opšti naziv za svaki računarski program
kojem je namjena da omogući računaru samo pokretanje i
izvršavanje osnovnih funkcija.
Korisnik
Aplikacija
Operativni sistem
Uređaj
OS
Sistemski softver je zadužan za
upravljanje pojedinačnim
hardverskim dijelovima.
Sistemski softver izvršava zadatke
kao što je prijenos podataka sa
memorije na disk, ispisivanja teksta
na ekranu i tako dalje.
To su operativni sistemi, drajveri,
programski alati, kompajleri,
asembleri i ostali slični alati.
Operativni sistem (OS) Operativni sistem (OS) je skup računarskih programa koji
upravljaju hardverskim i softverskim resursima računara.
OS ima dvostruku ulogu:
• upravlja sastavnim dijelovima računara, kao štu su npr.
procesor, kontroleri i radna memorija (sa ciljem što većeg
iskorištavanja),
• operativni sistem stvara za krajnjeg korisnika računara
pristupačno radno okruženje.
Operativni sistem tretira računar kao skup resursa i pokušava
da dodijeli ove resurse programima, tako da računar kao
cjelina bude što bolje iskorišten. Resursi računarskog sistema
su: procesor, memorija, datoteke na disku i ostali uređaji
priključeni na računar.
12/24/2015
4
Funkcije operativnog sistema Da bi zadovoljio sve ove zahtjeve, operativni sistem ima tri
glavne funkcije:
• kontrolu procesa,
• upravljanje memorijom i
• upravljanje jedinicama.
Operativni sistem mora stalno da prati akcije programa i
promjene u stanju hardvera i da djeluje u skladu sa tim
promjenama.
Ovo djelovanje operativnog sistema odvija se pozivanjem
odgovarajućih sistemskih programa u sastavu operativnog
sistema kojima se izvršavaju različiti zadaci, a u skladu sa
komandama koje mu je zadao korisnik.
Struktura operativnog sistema Tipičan operativni sistem se sastoji od sljedećih
komponenata:
• mikrokoda (microcode),
• jezgra (kernel) i
• ljuske (omotača, školjke - shell).
Mikrokod je skup programa specifičan za određeni hardver
računara.
Jezgro je skup programa operativnog sistema koji kontroliše
pristup računaru, organizaciju memorije, organizaciju
datoteka, raspored rada procesa i raspored sistemskih
resursa.
Ljuska je komandni interfejs koji interpretira ulazne komande
korisnika ili njihovih programa i aktivira odgovarajuće
sistemske programe koji čine jezgro sistema.
12/24/2015
5
Podjela operativnih sistema
• Operativni sistemi mogu se podijeliti na
osnovu:
– broja programa koji mogu istovremeno da
budu u memoriji,
– broja korisnika koji mogu istovremeno da
koriste računar,
– načina zadavanja komandi i
– prenosivosti na različite arhitekture.
Podjela prema broju programa koji mogu
biti istovremeno u memoriji
• monoprogramske - monoprocesne
(jednoprocesne)
• multiprogramske - multiprocesne
(višeprocesne)
12/24/2015
6
Podjela prema broju korisnika koji
istovremeno koriste računar
• jednokorisničke (singleuser) – desktop OS
• višekorisnički (multiuser) – mrežni,
serverski OS
Podjela OS na osnovu zadavanja komandi
• operativne sisteme komandnog tipa
• operativne sistemesa grafičkim
okruženjem
12/24/2015
7
DOS operativni sistem
MS DOS
DOS (engl. Dos Operating System) je naziv za operativni
sistem koji se je počeo pojavljivati krajem 70-tih godina 20.
vijeka i u slobodnom prijevodu DOS znači operativni sistem
za diskove (flopi disk i hard disk).
Windows 1.0
• Umjesto da kucate MS-DOS komande,
sada jednostavno pomjerate miša kako
biste se putem pokazivača i kliktanja
kretali kroz ekrane odnosno „prozore“.
12/24/2015
8
Windows 3.x
Windows 3.1
Windows 3.x je serija 16-bitnih operativnih sistema firme
Microsoft za personalne računare.
Windows 3.0 je vjerovatno
najvažnija verzija i prelomni korak
od DOS-a ka grafičkom okruženju i
simultanom multiprogramskom radu.
U ovoj verziji je inkorporiran i DOS
operativni sistem tako da je bilo
moguće raditi sa aplikacijama u oba
sistema.
Windows 95 je donio konačan raskid sa verzijama serije 3.x,
a to znači i DOS-om koji pokreće operativni sistem. Ovo je
možda i najpopularnija verzija Windows-a u svijetu.
Windows 8
Windows 8
Kompanija Microsoft izdaje
najnoviju verziju operativnog
sistema – Windows 8 – 26.
oktobra 2012. godine.
Najavljena naredna verzija-
Windows 10 za 2015. godinu.
Android OS, logo
Android je operativni sistem
za mobilne uređaje, kao što
su mobilni telefoni, "tablet"
računari, i "netbooks". Android
je razvijen u kompaniji
Google, i baziran je na Linux
kernelu i GNU softveru.
12/24/2015
9
BIOS
BIOS
BIOS je skraćenica od Basic Input/Output System, a to je
prva stvar koja se vidi nakon uključenja računara, kojime
sistem provjerava osnovne postavke računara.
Praktično bez BIOS-a ne bi se mogli pokrenuti operativni
sistem (Microsoft Windows, Linux itd.). BIOS se obično nalazi
na matičnoj ploči, iako ga često imaju SCSI kontroleri i
grafičke kartice.
Grafički korisnički interfejs
GUI
GUI, grafički korisnički interfejs ili grafički interfejs (engl.
graphical user interface; hr. sučelje) je metod interakcije sa
računarom kroz manipulaciju grafičkim elementima i
dodacima uz pomoć tekstovnih poruka i obavještenja.
12/24/2015
10
Programi prevodioci Programi za prve računare pisani su u mašinskom jeziku.
Naredbe ovog jezika sastojale su se od nizova jedinica i nula
koje su označavale stanja bitova u memoriji računara.
Ovakve naredbe najčešće su bile logički podijeljene u dva
dijela.
Pisanje ovakvih programa bilo je veoma težak posao,
podložan greškama. To je navelo tadašnje programere da
izmisle simbolički jezik, u kome je operacija koju računar
treba da izvrši dobila svoje ime, a i adresa memorijske
lokacije je dobila neko simboličko ime. Programi napisani u
ovakvom simboličkom jeziku prevodili su se kasnije u
mašinski jezik tako što je programer zamjenjivao naziv
operacije njenim kodom, a simboličku adresu stvarnom
adresom. U ovakvom postupku svaka naredba simboličkog
jezika prevodila se neposredno u odgovarajuću naredbu
mašinskog jezika.
Da bi se olakšalo pisanje programa, a i njihova prenosivost s
jednog računara na drugi, razvijeni su programski jezici koji
su bili bliži korisnicima u određenim oblastima.
Ovi jezici su se sastojali od dvadesetak riječi engleskog
jezika, skupa svih pravila za dodjeljivanje imena memorijskim
lokacijama sa podacima i skupa pravila za formiranje
ispravnih naredbi u programskom jeziku.
Pomoću rječnika i ovih pravila pisan je program u ovom
jeziku,koji je gotovo bio nezavisan od arhitekture računara.
Ovakav program zove se izvorni (source) program.
Međutim, da bi program napisan u nekom od ovih jezika
mogao da se izvšava, trebalo ga je prevesti u mašinski jezik.
Za ovo prevođenje korišten je program nazvan KOMPAJLER
(compiler).
Programi prevodioci
12/24/2015
11
Hello world! - Primjer u C jezik
org 100h /opseg za program
mov dx,msg /definisanje opsega za poruku
mov ah,9h /DOS funkcija za ispis poruke koja završava sa $
int 21h /pozivanje DOS-a da izvrši 9h
mov ah,4Ch /DOS funkcija za kraj programa
int 21h /pozivanje DOS-a da izvrši 4Ch
msg db 'Hello, World!',0Dh,0Ah,'$' /poruka
/* Hello World program */
#include<stdio.h>
main()
{
printf("Hello World");
}
Hello world! (Pozdrav Svijete) - Primjer u Assembler
Programi prevodioci
Drajveri Svaki uređaj koji se priključi na računar (štampač, skener, itd.)
mora da ima i odgovarajući program koji se zove drajver i koji
komande date iz nekog programa (npr. procesora texta)
prema nekom usvojenom standardu prevodi u komande koje
taj uređaj razumije.
12/24/2015
12
Generacije programskih jezika Prva generacija programskih jezika (1GL) predstavlja jezike
na mašinskom nivou.
Druga generacija programskih jezika (2GL) predstavljaju
simbolički asembleri.
Treća generacija programskih jezika (3GL) predstavlja jezike
koji su dorađena verzija jezika druge generacije.
Jedna naredba ovih programskih jezika prevodi se u više
naredbi mašinskog jezika.
Četvrta generacija programskih jezika (4GL) je produkt
naglog razvoja tehnologija 80-ih godina 20. vijeka.
OOP Objektno orijentisano programiranje je pokušaj približavanja
modela programa načinu ljudskog razmišljanja.
Objekat
Metode Funkcije ili procedure
Svojstva Osobine ili stanja
U osnovi objektno orijentisanog programiranja, umjesto
zadataka nalazimo objekte - jedinice koje imaju svoje
ponašanje, drže podatke i mogu međusobno djelovati.
Da bi se jezik smatrao objektno orijentisanim, mora
posjedovati najmanje 4 karakteristike: enkapsulacija,
apstrakcija, polimorfizam i nasljeđivanje.
12/24/2015
13
OOP (1)
• Učahurivanje ili enkapsulacija objekata. Pošto ne postoje
globalne varijable, iz drugih dijelova koda nije moguć pristup
varijablama klase nikako osim ugrađenim metodama za
njihovo čitanje i pisanje (ako smo ih deklarirali kao privatne,
što je preporučeno). Na taj način se osigurava da objekt ne
može doći u neko nepredviđeno stanje iz bilo kojeg razloga,
npr. kad mu se pristupa istovremeno iz više dijelova koda (ako
imamo višenitno programiranje) jer nužno je upotrebljavati
funkcijske članove objekta u koje se mogu ugraditi sigurnosni
mehanizmi poput sinkronizacije.
• Apstrakcija - čest je slučaj da se neki objekti minimalno
razlikuju, i zasebno definiranje svakog od njih je redundantno.
Osim toga za samo efikasno projektiranje praktično je
pojednostavljivanje konkretnog problema. Tu ulaze u igru
apstraktne klase i sučelja.
OOP (2)
• Nasljeđivanje - kad već definiramo neki objekt, a
zatreba nam neki sličan objekt koji je zapravo
podskup početnog objekta, moguće
je naslijediti početni objekt, čime štedimo vrijeme za
programiranje (makar to bio copy-paste) i diskovni
prostor.
• Višeobličje ili polimorfizam - kao što
je preopterećivanje operatora zgodna stvar
ponekad, tako preopterećivanje metoda zovemo
polimorfizmom. Moguće je definirati nekoliko metoda
istog imena, a svaka će kao parametre primati
objekte različitih tipova.
12/24/2015
14
Evolucija i održavanje softvera Održavanje softvera je proces modifikovanja softverskog
sistema ili komponente nakon isporuke radi otklanjanja
grešaka, poboljšanja performansi ili drugih atributa, ili
prilagođavanja promenljivom okruženju.
Evolucija softvera je skup aktivnosti, tehničkih i upravnih,
koje obezbeđuju da softver nastavi da ispunjava
organizacione i poslovne ciljeve na isplativ način, te
sve programerske aktivnosti čiji je cilj generisanje nove
verzije softvera na osnovu starije operacione verzije.
Takođe pod evolucijom softvera se podrazumjeva primjena
aktivnosti i procesa održavanja softvera kojima se generiše
nova operativna verzija softvera sa novim funkcionalnostima
ili karakteristikama u odnosu na prethodnu operativnu verziju
pri čemu su obuhvaćene i aktivnosti obezbeđivanja kvaliteta.
Održavanje softvera moguće je podijeliti na 4 tipa:
• Korektivno – ispravljanje bagova nastalih u nekoj fazi
razvoja
• Adaptivno – prilagođavanje softvera promjenama u
okruženju (hardver, operativni sistem, pravna regulativa
..)
• Perfektivno – prilagođavanje izmijenjenim korisničkim
zahtjevima (nove funkcionalnosti, bolji interfejs,
poboljšanje performansi)
• Preventivno – aktivnosti čiji je cilj povećanje održivosti
softverskog sistema (poboljšanje dokumentacije,
komentarisanje i refaktorisanje koda)
Evolucija i održavanje softvera
12/24/2015
15
Pitanja