710 likes | 907 Vues
Glava1. Uvod. Ciljevi kursa. Objektno-orijentisani razvoj softvera Rjesavanje problema Dizajn programa, implementacija i testiranje Objektno-orijentisani koncepti klase objekti Inkapsulacija (encapsulation) nasljedjivanje (inheritance) polimorfizam (polymorphism)
E N D
Glava1 Uvod
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
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
Pregled Kompjuterska obrada Hardverske komponente Mreze Programski jezik Java Razvoj programa Objektno-Orijenisano Programiranje
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
Main Memory CPU i glavna memorija Cip koji izvrsava komande programa Intel Pentium 4 Sun ultraSPARC III Central Processing Unit Primarna oblast za stavljanje programa i podataka koji su u aktivnoj upotrebi Sinonim sa RAM
Hard Disk Main Memory Floppy Disk Jedinice sekundarne memorije Informacija se prebacuje izmedju glavne i sekundarne memorije kada je to potrebno Na sekundarnim jedinicama memorije podaci se cuvaju na duze vrijeme Central Processing Unit Hard diskovi Floppy disk ZIP disks Writable CDs Writable DVDs Trake (Tapes)
Monitor Keyboard Hard Disk Main Memory Floppy Disk Input/Output jedinice I/O jedinice ubrzavaju korisnicku interakciju Central Processing Unit Monitor screen Keyboard Mouse Joystick Bar code scanner Touch screen
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)
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
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
72 105 44 32 72 101 97 116 104 101 114 46 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 .
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 bit 2 bita 3 bita 4 bita 0 1 00 01 10 11 000 001 010 011 100 101 110 111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Permutacije bitova Svaki dodatni bit duplira broj mogucih permutacija
1 bit ? 2 bita ? 3 bita ? 4 bita ? 5 bita ? Koliko dogadjaja moze biti predstavljeno sa 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
Pregled Racunarska obrada Hardverske komponente Mreze Programski jezik Java Razvoj programa Objektno-Orientisano Programiranje
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?
9278 9279 9280 9281 9282 9283 9284 9285 9286 Glavna (unutrasnja) memorija je podijeljena u vise memorijskih lokacija (celija) Svaka celija memorije ima numericku adresu, koja je identifikuje na jedinstven nacin Memorija
Svaka memorijska celija cuva jedan broj bitova (obicno 8 bitova, ili jedan byte) Velike vrijednosti se cuvaju U uzastopnim celijskim Memorijskim lokacijama Cuvanje informacije 9278 9279 9280 9281 9282 9283 9284 9285 9286 10011010
Memorija i kapacitet • Svaka memorijska jedinica daje informaciju o broju bita koje sadrzi • Kapaciteti se predstavljaju u raznim jedinicama: Jedinica Simbol Broj byte-ova KB 210 = 1024 kilobyte megabyte gigabyte terabyte MB 220 (preko 1 milion) GB 230 (preko 1 bilion) TB 240 (preko 1 trilion)
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
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
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
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
Uzimanje instrukcije iz glavne memorije fetch execute decode Izvodjenje instrukcije Prepoznavanje instrukcije Centralna procesorska jedinica • CPU je cip koji zovemo mikroprocesor • On kontinualno slijedi fetch-decode-execute ciklus:
Centralna procesorska jedinica • CPU sadrzi: Izvodi racunanja i donosi odluke Arithmetic/Logic Unit Koordinira rad procesora Control Unit Male oblasti memorije Registers
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)
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
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)
Pregled Racunarska obrada Hardverske komponente Mreze Programski jezik Java Razvoj programa Objektno-Orijentisano Programiranje
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
Povezivanje u mrezu • Svaki racunar u mrezi moze biti direktno povezan sa ostalim racunarima mreze • To se naziva point-to-point povezivanje Dodavanje novog racunara zahtijeva novu liniju do svakog racunara u mrezi Ova tehnika nije prakticna ako imamo veci broj racunara
Povezivanje u mrezu • Vise mreza dijele jednu komunikacionu liniju • Dodavanje novog racunara u mrezu je relativno jednostavno Promet u mrezi koristi liniju, sto uzrokuje kasnjenje Cesto je informacija podijeljena u dijelove, zvane paketi, koji se salju prijemnom racunaru, a ovaj ih sastavlja
LAN Local-Area Networks Local-Area Network (LAN) pokriva malu razdaljinu i mali broj kompjutera LAN cesto povezuje masine U jednoj sobi ili jednoj zgradi
LAN LAN Wide-Area Networks Wide-Area Network (WAN) spaja dvije ili vise LAN-ova, cesto na dugim razdaljinama LAN je obicno vlasnistvo jedne organizacije, ali WAN cesto povezuje grupe u raznim drzavama
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
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
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)
Imena domena • Zadnji dio imena domena, zvani top-level domain (TLD), odredjuje tip organizacije: - edukaciona institucija edu com org net - komercijalni entitet - non-profit organizacija - organizacija zasnovana na mrezi Ponekad sufiks oznacava drzavu: Nnedavno su dodati novi TLD-ovi: biz, info, tv, name - United Kingdom uk au ca se - Australia - Canada - Sweden
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
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
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
Pregled Racunarska obrada Komponente hardvera Mreze Programski jezik Java Razvoj programa Objektno-Orijentisano Programiranje
Java • Programski jezik specificirarijeci 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
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)
Struktura Java programa // komentari o klasi public class MyProgram { } Naslov klase Tijelo klase Komentari mogu biti stavljeni gotovo svuda
Struktura Java programa // komentari o klasi public class MyProgram { } // komentari o metodi public static void main (String[] args) { } naslov metode tijelo metode
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 */
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
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