You are on page 1of 28

RFP470 Program prekvalifikacija u IT sektoru

JAVA Obuka

PRINCIPI
PROGRAMIRANJA
Vučković dr Milica, vanredni profesor, FON
Turajlić dr Nina, docent, FON
Petrović dr Marko, docent, FON
1.2. PREGLED RAZVOJA
METODA
PROGRAMIRANJA
1. Nestrukturno programiranje

2. Strukturno programiranje

3. Proceduralne apstrakcije

4. Apstrakcija podataka
1. NESTRUKTURNO
PROGRAMIRANJE
1. Nestrukturno programiranje
Period od polovine 50-tih do polovine 60-tih
godina prošlog veka

Herojsko doba programiranja


◦ Nepostojanje metoda programiranja, programiranje
se posmatralo kao veština
◦ Programiranjem se bavio mali broj ljudi (posebno
nadareni, „izabrani“ za programiranje)
1. Nestrukturno programiranje
Programi su pisani bez opštih pravila
◦ strukturu i logiku programa određivao je programer
(veština, improvizacija, „lukava rešenja“, trikovi)
◦ zlonamerno korišćenje programerskih struktura
(posebno sa instrukcijom „skoka“ - go to) uticalo je da
programi imaju „špageti logiku“

Haos („špageti struktura“) Hijerarhijska struktura


1. Nestrukturno programiranje
 Osnovni problem je što su takvi programi bili teško
čitljivi i nerazumljivi (za druge programere, a često i za
samog autora), nije postojala dokumentacija o logici
rešavanja, što implicira da je takve programe bilo
veoma teško održavati

 Nestruktuirani programski jezici (FORTRAN, COBOL,


BASIC) dozvoljavaju programeru da u potpunosti
određuje strukturu programa

 Proste aplikacije, glavna briga efikasnost kôda (brzina


izvršavanja i ušteda memorije)
2. STRUKTURNO
PROGRAMIRANJE
2. Strukturno programiranje
Period od kraja 60-tih do početka 70-tih godina
prošlog veka

Razvoj računara: sve veće mogućnosti fizičkih


komponenti računara (hardvera) u pogledu
brzine i kapaciteta, uz istovremeno sniženje cena
hardvera, uticalo je na:
◦ širenje primene računara,
◦ sve složenije zahteve korisnika za novim programima,
◦ kao i na samo programiranje.
2. Strukturno programiranje
 Cena razvoja softvera u porastu, efikasnost programera
postaje veoma važna
 Glavna briga produktivnost u programiranju (brzo i
lako pisanje razumljivih programa)
Strukturno programiranje - prva metoda
programiranja
 Cilj je da se postupnim, disciplinovanim razvojem
programa dođe do logičkih jasnih i razumljivih
programa, kako bi se lakše projektovali i održavali
◦ Strukturno orijentisani jezici (Pascal, Ada) ograničavaju slobodu
programera, prisiljavaju ga na programsku disciplinu, što mu olakšava
dokumentovanje i održavanje programa
2. Strukturno programiranje

 Metoda strukturnog programiranja sadrži:

a) Korišćenje ograničenog broja elementarnih blokova


u strukturiranju programa

b) Top-down tehniku (razvoj programa od opšteg ka


posebnom)
a) Korišćenje ograničenog broja elementarnih blokova
u strukturiranju programa
 Strukturniprogram je program koji se sastoji iz
blokova koji se grade iz unapred datih elementarnih
blokova
 Elementarni blok
◦ je osnovni blok (ne sadrži podblokove)
◦ ima jedan ulaz i jedan izlaz (bez korišćenja intstrukcije “skoka”).

 Elementarniblokovi strukturnog programiranja zovu se


elementarne upravljačke strukture
◦ Svaki proizvoljno složen algoritam može se izgraditi
korišćenjem samo tri elementarne upravljačke structure:
sekvence, selekcije i iteracije
a) Korišćenje ograničenog broja elementarnih blokova
u strukturiranju programa
 Sekvenca

{ //begin
instrukcija 1;
instrukcija 2;

}; //end

// postupak za popravku stone lampe koja ne radi


{
postavi prekidac stone lampe na “on”;
proveri da li je stona lampa ukljucena u struju;
proveri da li je sijalica pregorela;
};
a) Korišćenje ograničenog broja elementarnih blokova
u strukturiranju programa
 Selekcija
if (uslov)
instrukcija 1;
else
instrukcija 2;

if (uslov)
instrukcija 1;

// proveri da li je stona lampa ukljucena u struju


if (stona lampa nije ukljucena)
ukljuci u struju;
// proveri da li je sijalica pregorela
if (sijalica je pregorela)
zameni sijalicu;
else
kupi novu stonu lampu;
a) Korišćenje ograničenog broja elementarnih blokova
u strukturiranju programa
 Iteracija

while(uslov)
instrukcija;

// zameni sijalicu
while (sijalica ne radi)
{
uzmi novu sijalicu;
postavi sijalicu u lampu;
};
b) top-down tehnika

poznata i pod nazivima: stepwise refinement,


funkcionalna dekompozicija
zasniva se na strategiji „podeli i vladaj“
◦ Problem se dekomponuje na manje, jednostavnije potprobleme,
proces dekompozicije se nastavlja do nivoa na kojem svi
potproblemi precizno opisuju i „šta treba uraditi“ i „kako treba
uraditi“.

 Takvi potproblemi obično se mogu relizovati pomoću instrukcija i


upravljačkih struktura konkretnog programskog jezika ili
pseudokoda.
 Svaki potproblem moze se rešavati nezavisno od drugih.
b) top-down tehnika

 Primer:

Specifikacija Obračun neto plate radnika koja opisuje


zahtev šta treba uraditi
b) top-down tehnika
 Strukturaalgoritma (programa) dobija se primenom
bottom-up tehnike (funkcionalna kompozicija).
◦ Kompozijom rešenja potproblema dobija se rešenje problema u celini
(algoritam).
b) top-down tehnika

 Struktura algoritma Obračun neto plate radnika


dobijena primenom bottom-up tehnike:

program main
{
// ulazni numericki podaci
read (brojBodova, vrednostBoda, rataKredita, telefonskiRacun);

// Obracun bruto plate


bruto = brojBodova*vrednostBoda;

// Obračun odbitaka
odbici = rataKredita + telefonskiRacun;

//Obracun neto plate


netoPlata = bruto – odbici;
};
3. PROCEDURALNE
APSTRAKCIJE
3. Proceduralne apstrakcije
Početak 70-tih godina prošlog veka
Proceduralna apstrakcija je prirodna posledica
top-down tehnike:
◦ proceduralna apstrakcija nastaje kada se rešenje potproblema
(dato u formi sekvence instrukcija) posmatra kao jedna naredba
na višem nivou apstrakcije

 Proceduralna apstrakcija obezbeđuje način da se


specificira zahtev za izvršenje procedure (preko
instrukcije za poziv imenovane procedure) bez
poznavanja njenog algoritma.
3. Proceduralne apstrakcije
 Struktura programa za Obračun neto plate radnika
sastoji se iz poziva procedura:
3. Proceduralne apstrakcije

 Proširuju skup naredbi datog programskog jezika


◦ mogu se pozivati i koristiti u projektovanju programa kao
bilo koja druga elementarna naredba

 Bile su osnova za razvoj strukture programa top-down


tehnikom (postepenim detaljisanjem).
◦ Na ovaj način dobijena struktura programa bila je
funkcionalno orjentisana
4. APSTRAKCIJA
PODATAKA
4. Apstrakcija podataka
Kraj70-tih godina prošlog veka
 Omogućava programeru da proširuje skup tipova
podataka nekog programskog jezika sa novim tipovima
(koji nastaju agregiranjem drugih tipova tj. predstavljaju
strukture podataka).
 Takvi novi tipovi su apstraktni tipovi, jer bitan je i ističe
se način njihove upotrebe u projektovanju drugih
programa.
4. Apstrakcija podataka

Tip je apstraktan ako su programima koji


ga koriste vidljivi samo:
◦ Skup operacija (javni interfejs ATP)
◦ Naziv tipa
4. Apstrakcija podataka
 Odvajanje specifikacije(interfejsa) od implementacije ATP:
4. Apstrakcija podataka

 Uvođenje apstrakcija podataka dovelo je do pristupa u


kome struktura programa nije više funkcionalno
orijentisana, već je zasnovana na operacijama
apstraktnog tipa podataka (tj. struktura programa
određuje redosled izvršavanja operacija ATP).

 Pristup zasnovan na apstraktnim tipovima je tokom 80-


tih godina evoluirao u objektno-orijentisani pristup.

You might also like