You are on page 1of 11

Programske paradigme i

stilovi programiranja

Vladimir Filipovi
vladaf@matf.bg.ac.rs
vladaf@matf.bg.ac.rs 2/11

Zahtevi koji se postavljaju pred program


Da korektno radi, tj. da daje korektne rezultate.
Da bude lako itljiv, kako bi se mogao lake odravati i
nadograivati u budunosti.
Pregled metodologija programiranja
Trikprogramiranje karakterie tzv. Herojsko doba
raunarstva. U ovom periodu programi su pisani bez optih
pravila. Korienje specifinosti u radu raunara, trikovi za
utedu memorije, pisanje samomodifikujuih programa su bile
karakteristika vrhunskog profesionalca. Ali takav pristup je
dovodio do kreiranja teko itljivih programa.
Strukturno programiranje.
Objektno orijentisano programiranje
vladaf@matf.bg.ac.rs 3/11

Strukturno programiranje
Autori prvih radova o strukturnom programiranju su E.W.
Dijkstra, A.P. Hoare, N. Wirth i dr.
Popularnosti strukturnog programiranja doprinela i pojava
programskog jezika PASCAL.
Strukturno programiranje bilo povezano sa automatskim
dokazivanjem korektnosti programa.
Pod strukturnim programiranjem podrazumeva se opta
metodologija za pisanje kvalitetnih programa. Ona sadri:
Programiranje od opteg ka posebnom (top-down)
Modularnost
Korienje ogranienog broja upravljakih struktura u
zapisu programa
vladaf@matf.bg.ac.rs 4/11

Objektno-orijentisano programiranje
Objekat - integralna celina podataka i procedura za rad sa
njima. Zbog prisustva procedura u objektima, objekti imaju
mogunost da samostalno deluju, tj. postaju dinamiki.
Objektno-orijentisano programiranje - programska
paradigma zasnovana na skupu objekata koji dejstvuju
meusobno. Glavne obrade zasnivaju se na manipulisanju
objektima.
Metod - funkcija koja je sastavni deo objekta, tj. postupak
kojim se realizuje poruka upuena objektu.
Poruka - skup informacija koji se alje objektu. Sastoji se iz
adrese (objekta primaoca poruke) i saoptenja (kazuje ta
treba da se uradi).
vladaf@matf.bg.ac.rs 5/11

Klasa - Skup objekata sa zajednikim svojstvima (koji se ponaaju


na isti nain). Definie ablon za kreiranje instanci.
Primerak (instanca) - konkretan objekat iz klase. Skup instanci
sa skupom metoda kreira jednu klasu.
Klasa B je potklasa klase A ako su svi primerci klase B
istovremeno i primerci klase A. Za klasu kaemo da je nadklasa
klase B. Potklase nastaju dodavanjem novih svojstava (metoda)
postojeoj klasi.
Nasleivanje - mehanizam za kreiranje novih klasa iz postojeih.
Nasleivanjem se formiraju relacije izmeu jedne i vie drugih
klasa.
Polimorfizam - Mogunost primene istog metoda (operatora) na
primerke razliitih klasa.
vladaf@matf.bg.ac.rs 6/11

Primeri nasleivanja
Prilikom projektovanja programa uoavaju se veze izmeu
pojedinih klasa i nain povezivanja tih klasa sa drugim klasama.
Ovde je bitna uloga nasleivanja.
ivo bie

ivotinja Biljka

Sisar Ptica

Grabljivica Pevaica

Jastreb Orao
vladaf@matf.bg.ac.rs 7/11

Jo jedan primer hijerarhijskog nasleivanja

biblioteki primerak

asopis knjiga mikrofilm

dnevni ostali

beletristika struna
vladaf@matf.bg.ac.rs 8/11

Primer viestrukog nasleivanja


(klasa moe imati vie direktnih natklasa)
letilica vozilo brod

jedrilica avion sa motorom bez motora

putniko teretno amfibija

Viestruko nasleivanje nije podrano u jeziku Java, ali jeste u


jeziku C++.
vladaf@matf.bg.ac.rs 9/11

Uloga pojedinih pojmova (Wagner)

Ada, Actors

Objektno-
zasnovani jezici
+klasa

Klasno zasnovani
jezici +nasleivanje
CLU
Objektno-
orijentisani jezici

Smalltalk, Simula 67
vladaf@matf.bg.ac.rs 10/11

Zato je objektno-orijentisan koncept


doiveo veliki uspeh?
Ponovno korienje softvera.
Pogodan za: analizu, projektovanje i programiranje.
Najpogodniji za simuliranje dogaaja.
Objanjenje se delimino moe nai kroz pogled
istorijskog razvoja OOP.
1967: Dall i Simula 67.
70-tih godina: A. Kay i Smalltalk.
Razvoj ostalih OO jezika.
vladaf@matf.bg.ac.rs 11/11

Dalji razvoj paradigmi programiranja

Programiranje voeno dogaajima


Aspekt-orjentisano programiranje
Ekstremno programiranje
Obrasci dizajna
Unifikovani jezik za modeliranje UML

You might also like