Kompjuterska simulacija

2

1.UVOD 

1.1.METODOLOGIJA

Kroz istoriju programerske struke pojavljivale su se tri metodologije: 

1.

Kompozitna metodologija 

– nastaje sa pojavom FORTRAN-a i trajala je do 

60-ih godina prošlog
veka.

2.

Strukturirana metodologija 

– je metodologija koja nastaje posle kompozitne 

i zasnovana je na
FORTRAN-u i COBOL-u i traje do kraja 70-ih godina dvadesetog veka.

3.

Objektna   metodologija  

–   koja   nastaje   krajem   70-ih   i   koja   je   i   danas 

dominantna metodologija.

Metodologija   su   se   međusobno   smenjivale   i   menjale   zbog   porasta   kompleksnosti 
programa, prvenstveno zbog naglog razvoja hardvera koji je pružao svoj maksimum 
tek kada je bio praćen odgovarajućim softverom. Kompleksnost programa nije tako 
lako rešiti. U rešavanju nekih problema programeri su došli do neke određene granice, 
programerskog „plafona“, kada ni njihovo umeće ni programski jezik nisu mogli rešiti 
probleme i tada se pribeglo promeni metodologije. Npr. strukturirano programiranje 
se   nije   moglo   izboriti   sa   problemom   korisničkog   interfejsa   i   tada   je   objektna 
metodologija i objektno programiranje postalo dominantno.

Strukturirano i kompozitno programiranje su srodnije međusobno nego sa objektnim 
programiranjem, pa se zajedničkim imenom zovu 

procedurno programiranje

.

Na   kraju   rada   govorićemo   o   Satijevoj   skali   poređenja   uz   primer.   U 
višekriterijumskom metodu Analitički hijerarhijski proces (AHP) za svaku matricu 
poređenja elemenata odlučivanja određuje se tzv. vektor težina poređenih elemenata. 
U   standardnom   AHP   se   za   tu   svrhu   koristi   metod   sopstvenih   vrednosti 
(EVMEigenvector Method). Poznato je, međutim, da je problem određivanja ovog 
vektora   (prioritizacija)   utoliko   neodređeniji   ukoliko   raste   dimenzija   matrice   zbog 
inherentne nekonzistentnosti donosioca odluka i/ili eksternih ograničenja koja unose 
semantičkonumeričke   skale   pri   poređenju   elemenata.   U   radu   se   tretira   inverzni 
problem u odnosu na standardni: zadat je vektor težina elemenata i treba odrediti 
matricu   poređenja,   odnosno   identifikovati   moguću   semantičko-numeričku 
performansu donosioca odluka u toku vrednovanja elemenata. Koristi se genetički 
algoritam (GA) kojim se za zadati vektor težina najpribližnije reprodukuje moguća 
matrica odlučivanja.

1.2. DEKOMPOZICIJA  - Razlike između metodologija

Jedino sredstvo sa kojim se borimo sa kompleksnošću programa jeste 

dekompozicija

background image

Kompjuterska simulacija

4

Treći problem je problem 

mogućnosti višestruke upotrebe

. On nastaje kada hoćemo 

neke potprograme da koristimo uvek kada nam zatrebaju tj. hoćemo da oni budu 
univerzalni.   Načini   na   koji   su   organizovane   biblioteke   potprograma   je   postao 
ograničenje u radu sa potprogramima. Zahtev za višekratnom upotrebom je zahtevao i 
određene izmene i proširenja potprograma kada hoćemo da ih koristimo. Ovo dvoje se 
jednim   imenom   naziva  

modularnost

.   Ona   se   pojavljuje   na   svakom   koraku 

programiranja. Naročito se to primećuje kod korisničkog interfejsa jer sva dugmad su 
99% ista po izgledu koda, tj. suštinski se razlikuje samo njihova funkcija. Zato mi 
samo kod dugmadi u stvari menjamo njihovu funkciju jer bi njihovo pravljenje piksel 
po piksel bilo veoma teško. Ovaj problem dugmadi je nerešiv sistemom biblioteka.

1.4. OBJEKTNO PROGRAMIRANJE

Zbog predhodnih problema moralo je doći do izmena u metodologiji i to u obliku 
objektne   metodologije   I   objektnog   programiranja.   Ono   je   mnogo   savršenije   od 
predhodne dve vrste i bazira se na logoco ljudskog uma. Neki smatraju da je ono 
počelo   1967.   sa   člankom   Dahla   u   knjizi   „Strukturirano   programiranje“.   Stvarni 
početak je odložen do kraja 70-ih godina kada ne njegovo uvođenje bilo neminovno.

Objektni programer počinje sa softverskim modelovanjem. Prvo se ustanovi domen 
problema kome pripada naš problem i pravi se njegov model. Problem sata koji uvek 
radi je karakteristika objektnog programiranja i samo ono nudi rešenje tog problema. 
O programer uočava entitete i povezuje ih u klase entiteta i tek onda ih softverski 
modeluje. U problemu Ax=b uočavamo tri entiteta: A,b,x. Sada se modeluju ove klase 
entiteta ( primer je dat na ad-hok jeziku ; slika1):

Naziv: Matrica

Naziv: Vektor

Matrica A;

Podaci: m,n,P

Podaci: k,V

Vektor x,b;

Operacije:

Operacije:

A.Učitati

Učitati

Učitati

b.Učitati

Invertovati

Prikazati

A.Invertovati

Prikazati

Moduo

X=A.Pomnožiti SD ( b )

Transponovati

.

x.Prikazati

Pomnožiti SL ( vektorom )

.

Pomnožiti SD ( vektorom )

.

Ključni deo objektnog programiranja je da u podacima ne stoje samo osobine entiteta 
već i operacije nad tim entitetom. Kada se završi rad sa jednom klasom počinje rad na 
drugoj klasi i tek kada ovo sve završi programer se vraća na početni problem. Ova 
kratkoća glavnog programa ( treća kolona u primeru ) je u stvari karakteristična za 
objektno programiranje. Znači ovde osim podataka uviđamo i operacije. Objektno 
programiranje   je   podešeno   tako   da   više   nikada   ove   klase   nećemo   pisati   već   ih 
možemo uvek koristiti.

Nasleđivanje je mehanizam C++ kojim omogućava dopunjavanje i prilagođavanje 
klasa našim potrebama tj. možemo klase da prilagodimo našim potrebama bez da 
remetimo izvorni kod te klase. Kod objektnog programiranja objekti međusobno vrše 

Kompjuterska simulacija

5

interakciju. Deo klase naziva se objekat ili instanca klase. U predhodnom primeru 
objekti su A i x,b. Klasa i objekat stoje u istom odnosu kao i tip i promenljiva.

1.5. TEMELJI OBJEKTNOG PROGRAMIRANJA

Objektna metodologija kao i svaka druga metodologija stoji na određenim principima 
tj. ima određene osnove. Ona se zasniva na nekoliko osnovnih principa koji su bili 
poznati čak i pre objektnog programiranja u rudimentalnom obliku, samo što tada nisu 
igrali bitnu ulogu u izradi softvera. Osnovni elementi objektnog programiranja su: 
apstrakcija i skrivanje informacija, inkapsulacija i modularnost, polimorfizam, veze 
između klasa a posebno nasleđivanje.

Apstrakcija 

ili 

apstrahovanje 

je veoma opšti postupak, na kome je zasnovana naša 

logika, poznat I hiljadama godina pre nastanka objektne metodologije i predstavlja 
izdvajanje   odnosno   uočavanje   bitnog   I   zanemarivanje   nebitnog.   Postoji   i   u 
strukturnom   programiranju   gde   svaki   obučen   programer   vidi   potprograme   kao 
apstraktne elemente.

Skrivanje   informacija  

je   odavno   jedan   od   ključnih   principa   objektnog 

programiranja.   On   podrazumeva   da   klijentu   ne   treba   da   budu   poznati   detalji 
realizacije programa jer on može tada da zloupotrebi naš kod u neke svrhe da bi, kada 
izađe novija verzija, nastao veliki problem. Npr. kod starije verzije nekih programskih
prevodioca mogli su se upotrebiti neki trikovi koji će olakšati prevođenje programa. I 
programeri koji su navikli na korištenje tih trikova bili su u teškoj poziciji kada je 
nadograđen softver koji je onemogućavao te trikove.

Inkapsulacija  

je   tehnika   kojom   se   pri   realizaciji   objedinjavaju   deskriptivne   i 

dinamičke osobine modela entiteta ( u našem slučaju objekata ) poštujući pri tome 
princip skrivanja informacija.

Modularnost  

je   tehnika   razlaganja   složenog   softverskog   sistema   u   domenu 

implementacije na jednostavnije elemente koje imaju unutrašnju logku. Ona je bila 
poznata i kod procedurnog programiranja kao skup servisa namenjenih korisnicima 
(   biblioteke   ).   Sama   modularnost   predstavlja   mogućnost   proširivosti   I   višekratne 
upotrebe i to je ključna stvar u objektnom programiranju.

Polimorfizam  

(  

poli  

– više,  

morfe  

– oblik ) je osobina, ili pak mogućnost, da se 

softverska komponenta ponaša zavisno od konteksta ili okolnosti. Tako se polimorfno 
mogu ponašati objekti, promenljive pa i funkcije. Tako se na primer ponaša C-ova 
znakovna promenljiva  kada  se  pojavljuje u  kontekstu  ’a’+1  i  tada  se  ponaša kao 
celobrojna   promenljiva.   Za   ostvarenje   polimorfizma   uvek   mora   postojati   određen 
preduslov koji je u prethodnom slučaju ugrađen u C, tj. znakovna promenljiva je 
podtip celobrojnog tipa.

Želiš da pročitaš svih 16 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti