glava1 uvod. 1-2 ciljevi kursa objektno-orijentisani razvoj softvera rjesavanje problema dizajn...
Post on 20-Dec-2015
222 Views
Preview:
TRANSCRIPT
Glava1
Uvod
1-2
Ciljevi kursa
• Objektno-orijentisani razvoj softvera
Rjesavanje problema
Dizajn programa, implementacija i testiranje
Objektno-orijentisani koncepti
• klase
• objekti
• Inkapsulacija (encapsulation)
• nasljedjivanje (inheritance)
• polimorfizam (polymorphism)
GUI (Graphical User Interfaces)
Programski jezik Java
1-3
Uvod
• Na pocetku moramo izloziti osnove rada kompjutera
• U Glavi izlazemo:
komponente kompjutera kako ove komponente medjusobno reaguju kako kompjuter cuva i obradjuje informaciju kompjuterske mreze Internet i World Wide Web programiranje i programski jezici uvod u programski jezik Java pregled objektno-orijentisanih koncepta
1-4
Pregled
Kompjuterska obrada
Hardverske komponente
Mreze
Programski jezik Java
Razvoj programa
Objektno-Orijenisano Programiranje
1-5
Hardver i softver
• Hardver Fizicki, dodirljivi dijelovi kompjutera (tastatura) keyboard, monitor, diskovi, zice, cipovi, itd.
• Softver programi i podaci program je niz instrukcija
• Kompjuter treba oba, hardver i softver
• Svaki je u sustini beskoristan bez drugog
1-6
CPU i glavna memorija
CentralProcessing
Unit
MainMemory
Cip koji izvrsava komande programa
Intel Pentium 4Sun ultraSPARC III
Primarna oblast za stavljanje
programa i podataka koji su
u aktivnoj upotrebi
Sinonim sa RAM
1-7
Jedinice sekundarne memorije
CentralProcessing
Unit
MainMemory
Floppy Disk
Hard Disk
Na sekundarnim jedinicama memorije podaci se cuvaju na duze vrijeme
Informacija se prebacuje izmedju glavne i sekundarne memorije kada je to potrebno
Hard diskoviFloppy diskZIP disksWritable CDsWritable DVDsTrake (Tapes)
1-8
Input/Output jedinice
CentralProcessing
Unit
MainMemory
Floppy Disk
Hard Disk
Monitor
Keyboard
I/O jedinice ubrzavajukorisnicku interakciju
Monitor screenKeyboardMouseJoystickBar code scannerTouch screen
1-9
Kategorije softvera
• Operacioni sistem kontrola svih aktivnosti masine obezbjedjuje interfejs korisnika i racunara upravlja resursima kao sto su CPU i memorija Windows XP, Unix, Linux, Mac OS
• Aplikacioni programi genericki termin za svaku drugu vrstu softvera Procesiranje teksta, sistemi kontrole raketa, igre
• Operacioni sistemi i aplikacioni programi cesto imaju Graphical User Interface (GUI)
1-10
Analogno i digitalno
• Postoje dva osnovna nacina za cuvanje i upravljanje podacima:
• Analogno neprekidan, direktno proporcionalan predstavljenim
podacima muzika na plocama – igla ide po rubovima rupa cije su
dimenzije direktno proporcionalne voltazi koja se salje na zvucnik
• Digitalno informacija je usitnjena u dijelove, a svaki se dio
predstavlja posebno Muzika na kompakt disku - disk cuva brojeve koji
predstavljaju specificne nivoe voltaze samplirane u specificnom intervalu vremena
1-11
Digitalna informacija
• Racunari cuvaju sve informacije digitalno: brojeve tekst grafiku i slike video audio programske instrukcije (komande)
• U neku ruku, svaka informacija je digitalizovana – razbijena u manje komade i predstavljena pomocu brojeva
1-12
Digitalno predstavljanje teksta
• Na primjer, svaki karakter se cuva kao broj, ukljucujuci razmake, cifre, i punktuaciju
• Odgovarajuca velika i mala slova su posebni karakteri
H i , H e a t h e r .
72 105 44 32 72 101 97 116 104 101 114 46
1-13
Binarni brojevi
• Nakon sto je informacija digitalizovana, predstavlja se i cuva u memoriji pomocu binarnog brojnog sistema
• Binarna cifra (0 ili 1) naziva se bit
• Uredjaji koji cuvaju i premjestaju informaciju su jeftiniji i pouzdaniji kada predstavljaju samo dva stanja
• Jedan bit moze predstaviti dva moguca stanja, kao sto je baterija koja je upaljena (1) ili ugasena (0)
• Permutacije bita koriste se za cuvanje vrijednosti
1-14
Permutacije bitova
1 bit
01
2 bita
00011011
3 bita
000001010011100101110111
4 bita
00000001001000110100010101100111
10001001101010111100110111101111
Svaki dodatni bit duplira broj mogucih permutacija
1-15
Permutacije bitova
• Svaka permutacija predstavlja poseban dogadjaj
• Postoji 2N permutacija od N bitova
• Dakle, N bitova su potrebni za predstavljanje 2N jedinstvenih dogadjaja
21 = 2 dogadjaja
22 = 4 dogadjaja
23 = 8 dogadjaja
24 = 16 dogadjaja
25 = 32 dogadjaja
1 bit ?
2 bita ?
3 bita ?
4 bita ?
5 bita ?
Koliko dogadjaja moze
biti predstavljeno sa
1-16
Pregled
Racunarska obrada
Hardverske komponente
Mreze
Programski jezik Java
Razvoj programa
Objektno-Orientisano Programiranje
1-17
Specifikacija racunara
• Razmotrimo sljedecu specifikaciju personalnog racunara:
2.8 GHz Pentium 4 Processor 512 MB RAM 80 GB Hard Disk 48x CD-RW / DVD-ROM Combo Drive 17” Video Display with 1280 x 1024 resolution 56 Kb/s Modem
• Sta to znaci?
1-18
Memorija
Glavna (unutrasnja) memorija je podijeljena u vise memorijskih lokacija (celija)
927892799280928192829283928492859286
Svaka celija memorije ima numericku adresu, koja je identifikuje na jedinstven nacin
1-19
Cuvanje informacije
927892799280928192829283928492859286
Velike vrijednosti se cuvajuU uzastopnim celijskim Memorijskim lokacijama
1001101010011010Svaka memorijska celija cuva jedan broj bitova (obicno 8 bitova, ili jedan byte)
1-20
Memorija i kapacitet
• Svaka memorijska jedinica daje informaciju o broju bita koje sadrzi
• Kapaciteti se predstavljaju u raznim jedinicama:
KB 210 = 1024
MB 220 (preko 1 milion)
GB 230 (preko 1 bilion)
TB 240 (preko 1 trilion)
Jedinica Simbol Broj byte-ova
kilobyte
megabyte
gigabyte
terabyte
1-21
Memorija
• Glavna memorija je volatilna - cuvana informacija se gubi ako se iskljuci elektricna struja
• Jedinice sekundarne memorije su nevolatilne
• Glavna memorija i diskovi su jedinice sa direktnim pristupom – informacija moze biti dobivena direktno
• Termini direct access i random access cesto se koriste kao sinonimi
• Magnetska traka je jedinica sa sekvencijalnim pristupom posto su podaci aranzirani u linearnom poretku - mora se ici redom da bi se dobila trazena informacija
1-22
RAM i ROM
• RAM - Random Access Memory (direktan pristup)
• ROM - Read-Only Memory
• Termini RAM i glavna memorija su u osnovi sinonimi
• ROM moze biti skup cipova, ili posebna jedinica, kao sto je CD ROM
• Oba RAM i ROM su jedinice sa random (direktnim) pristupom!
• RAM uglavnom mozemo smatrati Read-Write Memorijom
1-23
Kompakt diskovi
• CD-ROM je prenosiva read-only memorija
• Mikroskopski pit (rupa, progorelina) na CD predstavlja binarno 1 a glatka povrsina predstavllja binarno 0
• Laser malog intenziteta jako se reflektuje od glatke povrsine i slabo od progorele
• CD-Recordable (CD-R) drajv moze biti koristen za pisanje informacije na CD jednom
• CD-Rewritable (CD-RW) moze biti brisan i reupotrebljavan
• Brzina CD drajva indicira koliko brzo (max) informacija moze biti pisana i citana sa CD
1-24
DVD
• DVD je istih dimenzija kao i CD, ali moze cuvati mnogo vise informacija
• Format DVD cuva vise bita po kvadratnom incu
• CD moze cuvati 650 MB, dok standardan DVD moze cuvati 4.7 GB double sided DVD moze cuvati 9.4 GB
druge napredne tehnike mogu povecati kapacitet do 17.0 GB
• Slicno CDu, postoje DVD-R i DVD-RW diskovi
1-25
Centralna procesorska jedinica
• CPU je cip koji zovemo mikroprocesor
• On kontinualno slijedi fetch-decode-execute ciklus:
fetch
Uzimanje instrukcije iz glavne memorije
decode
Prepoznavanje instrukcije
execute
Izvodjenjeinstrukcije
1-26
Centralna procesorska jedinica
• CPU sadrzi:
Arithmetic/Logic Unit
Registers
Control Unit
Male oblasti memorije
Izvodi racunanja i donosi odluke
Koordinira radprocesora
1-27
Centralna procesorska jedinica
• Brzinu CPU kontrolise system clock
• Sat (system clock) generise electronske impulse u regularnim intervalima
• Impulsi koordiniraju aktivnost CPU
• Brzina se obicno mjeri u gigahertz-ima (GHz)
1-28
Monitor
• Velicina monitora je (17") mjereno po dijagonali, slicno TV ekranu
• Vecina danasnjih monitora dozvoljava multimedia osobine: text, grafika, video, itd.
• Monitor ima neku maksimalnu rezoluciju, koja oznacava broj elemenata slike, zvanih pikseli, koje moze prikazati (kao 1280 x 1024)
• Vise rezolucije (vise piksela) daju ostriju sliku
1-29
Modem
• Jedinice za transfer podataka dozvoljavaju da saljemo i primamo informaciju preko kompjutera
• Mnogi kompjuteri sadrze modulator-demodulator ili modem, koji dozvoljava da informacija bude prenesena preko telefonske linije
• Jedinice transfera podataka karakterisu se maksimalnim opsegom transfera podataka
• Modem, na primjer, moze imati opseg od 56,000 bits per second (bps)
1-30
Pregled
Racunarska obrada
Hardverske komponente
Mreze
Programski jezik Java
Razvoj programa
Objektno-Orijentisano Programiranje
1-31
Mreze
• Mreza se sastoji od dva ili vise kompjutera koji su spojeni tako da mogu dijeliti resurse
• Vecina kompjutera su spojeni u neku vrstu mreze
• Svaki kompjuter ima svoju vlastitu adresu u mrezi, po kojoj moze biti identifikovan medju drugim
• File server je kompjuter u mrezi posvecen cuvanju programa i podataka dijeljenih medju korisnicima mreze
1-32
Povezivanje u mrezu
• Svaki racunar u mrezi moze biti direktno povezan sa ostalim racunarima mreze
• To se naziva point-to-point povezivanje
Ova tehnikanije prakticna ako imamoveci broj racunara
Dodavanje novog racunara zahtijeva novu liniju do svakog racunara u mrezi
1-33
Povezivanje u mrezu
• Vise mreza dijele jednu komunikacionu liniju
• Dodavanje novog racunara u mrezu je relativno jednostavno
Promet u mrezi koristi liniju, stouzrokuje kasnjenje
Cesto je informacija podijeljena u dijelove, zvane paketi,koji se salju prijemnom racunaru, a ovaj ih sastavlja
1-34
Local-Area Networks
LAN
Local-Area Network(LAN) pokriva malurazdaljinu i mali broj kompjutera
LAN cesto povezuje masineU jednoj sobi ili jednoj zgradi
1-35
Wide-Area Networks
LAN
Wide-Area Network (WAN)spaja dvije ili vise LAN-ova,cesto na dugim razdaljinama
LAN je obicno vlasnistvojedne organizacije, aliWAN cesto povezujegrupe u raznim drzavama
LAN
1-36
Internet
• Internet je WAN koji spaja cijelu planetu
• Rijec Internet dolazi od termina internetworking
• Poceo je kao projekat vlade USA, sponzorisan od Advanced Research Projects Agency (ARPA) – originalno je bio nazivan ARPANET
• Internet je rastao brzo u 1980-im i 90-im
1-37
TCP/IP
• Protokol je skup pravila koja odredjuju kako moduli komuniciraju medjusobom
• Software koji upravlja Internet komunikacijama slijedi skup protokola zvani TCP/IP
• Internet Protocol (IP) odredjuje format u kojem ce informacija biti transferovana
• Transmission Control Protocol (TCP) diktira kako se poruke reasembliraju i upravlja izgubljenom informacijom
1-38
IP i internet adrese
• Svaki racunar na Internetu ima jedinstvenu IP adresu, kao sto je:
204.192.116.2
• Vecina racunara takodje ima jedinstveno Internet ime, koje je takodje referisano kao Internet adresa:
pmf.bgd.ac.yu
kant.gestalt-llc.com
• Prvi dio indicira konkretni racunar (pmf)
• Ostatak je ime domena, odredjuje organizaciju (bgd.ac.yu)
1-39
Imena domena
• Zadnji dio imena domena, zvani top-level domain (TLD), odredjuje tip organizacije:
educomorgnet
- edukaciona institucija- komercijalni entitet- non-profit organizacija
- organizacija zasnovana na mrezi
Ponekad sufiksoznacava drzavu: Nnedavno su dodati
novi TLD-ovi:
biz, info, tv, name
ukaucase
- United Kingdom- Australia- Canada- Sweden
1-40
Imena domena
• Ime domena moze imati vise dijelova
• Jedinstvenost imena domena znaci da vise mjesta mogu imati individualne racunare sa istim lokalnim imenom
• Pri koristenju, Internet adresa se prevodi u IP adresu softverom koji se zove Domain Name System (DNS)
• Ne postoji 1 - 1 korespondencija izmedju sekcija IP adrese i sekcija Internet adrese
1-41
World Wide Web
• World Wide Web dopusta pristup na vise raznih tipova informacije koristeci zajednicki interfejs
• Browser je program koji pristupa informaciji i prezentuje informaciju
tekst, grafika, video, zvuk, ekzekutabilni programi
• Web document obicno sadrzi linkove na druge Web dokumente, kreirajuci hypermedia okruzenje
• Termin Web dolazi od cinjenice da informacija nije organizovana linearno
1-42
World Wide Web
• Web dokumenti su cesto definisani koristeci HyperText Markup Language (HTML)
• Informacija na Web se trazi koristeci Uniform Resource Locator (URL):
http://www.lycos.com
http://www.villanova.edu/webinfo/domains.html
ftp://java.sun.com/applets/animation.zip
• URL oznacava protocol (http), domain, i moguce specifican dokument
1-43
Pregled
Racunarska obrada
Komponente hardvera
Mreze
Programski jezik Java
Razvoj programa
Objektno-Orijentisano Programiranje
1-44
Java
• Programski jezik specificira rijeci i simbole koje mozemo koristiti u pisanju programa
• Programski jezik koristi skup pravila koja diktiraju nacin na koji rijeci i simboli mogu da se sloze zajedno kako bi cinili pravilne programske komande (program statements)
• Programski jezik Java kreiran je u Sun Microsystems, Inc.
• Uveden je 1995 i njegova popularnost od tada brzo raste
1-45
Struktura Java programa
• U programskom jeziku Java: Program je napravljen od jedne ili vise klasa Klasa sadrzi jednu ili vise metoda Metod sadrzi komande programa
• Ovi termini ce biti detaljno objasnjeni u toku kursa
• Java aplikacija uvijek sadrzi metod zvani main
• Vidi Lincoln.java (str. 28)
1-46
Struktura Java programa
public class MyProgram
{
}
// komentari o klasi
Naslov klase
Tijelo klase
Komentari mogu biti stavljeni gotovo svuda
1-47
Struktura Java programa
public class MyProgram
{
}
// komentari o klasi
public static void main (String[] args)
{
}
// komentari o metodi
naslov metodetijelo metode
1-48
Komentari• Komentare u programu nazivamo inline
dokumentacija
• Oni se ukljucuju da objasne ciljeve programa i opisu korake u programu
• Oni ne uticu na rad programa
• Java komentari mogu biti u tri forme:
// ovaj komentar ide do kraja linije
/* ovaj komentar ide do oznake za kraj Komentara, cak i preko prekida linija */
/** ovo je javadoc komentar */
1-49
Identifikatori
• Identifikatori su rijeci koje programer koristi u programu
• Identifikator moze biti napravljen od slova, brojeva, podvlake ( _ ), i znaka dolara
• Identifikatori ne mogu pocinjati cifrom
• Java je case sensitive – Total, total, i TOTAL su razliciti identifikatori
• Po dogovoru, programeri koriste razne case stilove za razne identifikatore, kao sto su slova naslova za imena klasa - Lincoln
velika slova za konstante - MAXIMUM
1-50
Identifikatori
• Neke identifikatore biramo sami (kao Lincoln)
• Nekada koristimo kod drugih programera i njihove oznake (kao println)
• Cesto koristimo specijalne identifikatore zvane rezervisane rijeci (reserved words) koje vec imaju predefinisano znacenje u jeziku
• Rezervisana rijec ne moze biti koristena na drugi nacin, razlicit od predefinissanog
1-51
Rezervisane rijeci
• Rezervisane rijeci u jeziku Java:
abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodouble
elseenumextendsfalsefinalfinallyfloatforgotoifimplementsimportinstanceof
intinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstatic
strictfpsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile
1-52
Razmaci (white spaces)
• Razmaci, prazne linije, i tabovi nazivaju se white space
• White space se koriste za razdvajanje rijeci i simbola u programu
• Ekstra white space se ignorise
• Validan Java program moze biti formatiran na vise nacina
• Programi trebaju biti formatirani da bi se povecala citljivost, koristeci konzistentnu indentaciju (uvlacenje pasusa)
• Vidi Lincoln2.java (str. 34)
• Vidi Lincoln3.java (str. 35)
1-53
Pregled
Racunarska obrada
Komponente hardvera
Mreze
Programski jezik Java
Razvoj programa
Objektno-Orijentisano Programiranje
1-54
Razvoj programa
• Razvojna mehanika programa ukljucuje vise aktivnosti
pisanje programa u nekom specificnom programskom jeziku
Prevodjenje programa u formu koju kompjuter moze izvesti
Pronalazenje i ispravljanje raznih gresaka koje mogu nastupiti
• Softverski alati mogu biti koristeni za pomoc u svim fazama ovog procesa
1-55
Nivoi jezika
• Postoje cetiri nivoa programskih jezika: Masinski jezik Jezik asemblera Jezici visokog nivoa Jezici cetvrte generacije
• Svaki CPU ima svoj specifican masinski jezik
• Ostali nivoi su kreirani da ucine covjeku jednostavnijim citanje i pisanje programa
1-56
Programski jezici
• Svaki tip CPU izvodi samo partikularan masinski jezik
• Program mora biti preveden u masinski jezik prije nego sto ga izvedemo
• Kompajler je softverski alat koji prevodi izvorni kod u specifican ciljni jezik
• Cesto, taj target (ciljni) jezik je masinski jezik za partikularni CPU tip
• Java pristup je nesto drugaciji
1-57
Prevod Jave
• Java kompajler prevodi Java izvorni kod u specijalni kod zvani bytecode
• Java bytecode nije masinski kod ni za koji tradicionalni CPU
• Drugi softverski alat, zvani interpreter, prevodi bytecode u masinski jezik i izvodi ga
• Prema tome Java kompajler nije specijalno vezan ni za jednu masinu
• Java se smatra programskim jezikom nezavisnim od arhitekture
1-58
Prevod Jave
Java sourcecode
Machinecode
Javabytecode
Bytecodeinterpreter
Bytecodecompiler
Javacompiler
1-59
Razvojno okruzenje
• Postoji puno programa koji podrzavaju razvoj Java softvera, ukljucujuci:
Sun Java Development Kit (JDK) Sun NetBeans IBM Eclipse Borland JBuilder MetroWerks CodeWarrior Monash BlueJ
• Iako se ova okruzenja razlikuju u detaljima, osnovna kompilacija i egzekucija su iste
1-60
Sintaksa i semantika
• Sintaksna pravila jezika definisu nacin na koji mozemo staviti zajedno simbole, rezervisane rijeci, i identifikatore da bismo napravili korektne programe
• Semantika programske komande definise sta ta komanda znaci (njen cilj ili uloga u programu)
• Program koji je sintakticki korektan, nije obavezno i (logicki) semanticki korektan
• Program uvijek radi ono sto mu mi kazemo da radi, ne ono sto mi zelimo da radi
1-61
Greske (Errors)
• Program moze imati tri tipa gresaka
• Kompajler ce naci sintaksne greske i ostale osnovne probleme (compile-time errors)
Ako postoje compile-time greske, izvodljiva verzija programa nece biti kreirana
• Problem se moze pojaviti u toku egzekucije, kao pokusaj dijeljenja nulom, sto uzrokuje abnormalnu terminaciju programa (run-time errors)
• Program se moze izvesti, ali daje nekorektan rezultat, mozda koristenjem nekorektne formule (logical errors)
1-62
Osnovni razvoj programa
greske
greske
Editovati iZapisati program
Kompajlirati program
Izvesti program iOcijeniti rezultate
1-63
Pregled
Racunarska obrada
Komponente hardvera
Mreze
Programski jezik Java
Razvoj programa
Objektno-Orijentisano Programiranje
1-64
Rjesavanje problema
• Cilj pisanja programa je rjesavanje zadatka
• Rjesavanje zadatka sastoji se od vise aktivnosti:
Razumijevanje problema
Dizajn i rjesenje
Razmatranje alternativa i poboljsanje rjesenja
Implementacija rjesenja
Testiranje rjesenja
• Ove aktivnosti nisu linearne – one se prekrivaju i medjusobno reaguju
1-65
Rjesavanje problema
• Osnovno u rjesavanju problema je razbijnje problema u manje razumljive dijelove
• Kada pisemo softver, mi dizajniramo odvojene dijelove koji odgovaraju za posebne dijelove rjesenja
• Objektno-orijentisani pristup ukljucuje ovu vrstu dekompozicije
• Mi razbijamo nase rjesenje u dijelove koje zovemo objekti i klase
1-66
Objektno-Orientisano programiranje• Java je objektno orijentisan jezik
• Objekat je osnovni pojam u Java programu
• Objekti mogu biti efektno iskoristeni za predstavljanje realnog svijeta
• Na primjer, objekat moze predstavljati jednog radnika kompanije
• Svaki objekat-radnik upravlja podacima i procesima odredjenog radnika kompanije
1-67
Objekti
• Objekt ima:
stanje - deskriptivne karakteristike
ponasanje - sta moze uraditi (ili sta se sa njim moze uraditi)
• Stanje bankovnog racuna ukljucuje tekuci saldo
• Ponasanje pridruzeno bankovnom racunu ukljucuje mogucnost ulaganja i podizanja novca sa racuna
• Ponasanje objekta moze izmijeniti stanje objekta
1-68
Klase
• Neki objekat se definise preko klase
• Klasa je kalup za pravljenje objekata
• Klasa koristi metode za definisanje ponasanja objekata
• Klasa koja sadrzi main metodu Java programa predstavlja kompletan program
• Klasa predstavlja koncept, a objekt predstavlja realizaciju (instancijaciju) tog koncepta
• Mozemo kreirati razne objekte jedne iste klase
1-69
Objekti i klase
Bankovni Racun
Klasa(koncept)
Stanje Dzonovog racuna: $5,257
Objekat(realizacija)
Stanje Bilovog racuna: $1,245,069
Stanje Marijinog racuna: $16,833
Razni objektiIz iste klase
1-70
Nasljedjivanje (Inheritance)• Jedna klasa moze biti koristena za definisanje
druge preko nasljedjivanja
• Klase mogu biti organizovane u hijerarhije
Bankovni Racun
Racun
Tekuci Racun
Racun Orocene Stednje
Cekovni Racun
1-71
Sazetak
• U glavi 1 razmatrali smo:
Komponente kompjutera Kako komponente medjusobno inter-reaguju Kako kompjuter cuva i obradjuje informaciju Racunarske mreze Internet i World Wide Web Programiranje i programske jezike Uvod u programski jezik Java Pregled objektno-orijentisanih koncepta
top related