Upload
vuque
View
213
Download
0
Embed Size (px)
Citation preview
1
Programiranje
Informacijske tehnologije Doc. dr. Aleš Hladnik
Programiranje
nn AlgoritemAlgoritem –– zaporedje ukazov oz. navodil, ki v konzaporedje ukazov oz. navodil, ki v konččnem nem šštevilu korakov pripelje do rezultatatevilu korakov pripelje do rezultata
nn Ukazi omogoUkazi omogoččajo raajo raččunalniku, da opravi dolounalniku, da opravi določčeno nalogoeno nalogonn Ukazi so napisani v Ukazi so napisani v programskem jezikuprogramskem jeziku
uu SintaksaSintaksa –– slovnislovniččna pravila za tvorbo ukazovna pravila za tvorbo ukazovuu SemantikaSemantika –– pomen/interpretacija ukazovpomen/interpretacija ukazovuu MoMožžno bolj precizno izrano bolj precizno izražžanje v primerjavi z naravnimi anje v primerjavi z naravnimi
jezikijezikiuu Izvorna (programska) kodaIzvorna (programska) koda –– raraččunalniunalnišški program ali ki program ali
njegov del, napisan v izbranem programskem jezikunjegov del, napisan v izbranem programskem jezikuSAMO ZA INTERNO U
PORABO
2
Organiziranost računalnika
nn Centralna procesna enotaCentralna procesna enota –– opravlja izvropravlja izvršševanje evanje (izvajanje) programskih ukazov(izvajanje) programskih ukazov
nn Notranji pomnilnikNotranji pomnilnik –– hrani program in potrebne podatke hrani program in potrebne podatke med izvajanjemmed izvajanjem
nn Zunanji pomnilnik (trdi disk)Zunanji pomnilnik (trdi disk) –– hrani vse programe, ki se hrani vse programe, ki se ne izvajajo in vse podatkene izvajajo in vse podatke
nn Vhodno/izhodne napraveVhodno/izhodne naprave –– omogoomogoččajo komunikacijo ajo komunikacijo raraččunalnika z zunanjim svetomunalnika z zunanjim svetom
Dva pogleda na računalniške programe
Uporabniški vmesnik
Plasti programov, ki jih zakriva uporabniški vmesnik
Uporabniški pogledPogled računalniškega
programerja
Aplikacija (Word, PhotoShop)
Višji programski jeziki
Nižji programski jeziki
Strojna oprema (PC)
SAMO ZA INTERNO U
PORABO
3
Programski jeziki
nn NiNižžji programski jezikiji programski jezikiuu Vezani na doloVezani na določčeno vrsto raeno vrsto raččunalnika oz. CPE unalnika oz. CPE
(Machine dependent)(Machine dependent)uu ČČloveku teloveku težžko razumljiviko razumljiviuu Strojni in zbirniStrojni in zbirni
nn ViViššji programski jezikiji programski jezikiuu Neodvisni od vrste raNeodvisni od vrste raččunalnika (Machine unalnika (Machine
independent)independent)uu LaLažžje berljivi in razumljivije berljivi in razumljiviuu FORTRAN, C++, Java, BASICFORTRAN, C++, Java, BASIC
Strojni jezik
nn Programski Programski jezik prve generacijejezik prve generacijenn RaRaččunalnikov naravni jezik unalnikov naravni jezik –– edini jezik, ki ga edini jezik, ki ga
mikroprocesor neposredno razumemikroprocesor neposredno razumenn Zaporedje binarnih znakov (0 in 1)Zaporedje binarnih znakov (0 in 1)
SAMO ZA INTERNO U
PORABO
4
Zbirni jezik (Assembly language)
nn Programski Programski jezik druge generacijejezik druge generacijenn Koda sestavljena iz okrajKoda sestavljena iz okrajššav, simbolnih oznak in navodil av, simbolnih oznak in navodil
(ADD, STORE, LD, d1, d2, (ADD, STORE, LD, d1, d2, ……))nn Poleg Poleg šštevilk se uporabljajo tudi tevilk se uporabljajo tudi ččrkerke
Višji programski jeziki
nn ProceduralniProceduralni (spadajo med (spadajo med jezike tretje generacijejezike tretje generacije))uporabljajo procedure, t.j. zaporedja programskih uporabljajo procedure, t.j. zaporedja programskih stavkov, ki sestojijo iz anglestavkov, ki sestojijo iz anglešških besedkih besed
nn Programer napiProgramer napišše ukaze, s katerimi da navodila e ukaze, s katerimi da navodila raraččunalniku, katero nalogo naj opravi in na kakunalniku, katero nalogo naj opravi in na kakššen en nanaččinin
SAMO ZA INTERNO U
PORABO
5
Prevajalnik in tolmač
nn Dve moDve možžnosti izvajanja ukazov, napisanih v vinosti izvajanja ukazov, napisanih v viššjem jem programskem jezikuprogramskem jezikuuu Prevajalni jezikPrevajalni jezik (Compiler) (Compiler) –– pprogramrogram, ki pretvori , ki pretvori
programsko kodo iz viprogramsko kodo iz viššjega programskega jezika jega programskega jezika neposredno v strojni jezikneposredno v strojni jezik
uu TolmaTolmačč (Interpreter) (Interpreter) –– pretvori kodo v vmesno obliko pretvori kodo v vmesno obliko in jo izvedein jo izvedett Ni prevajanja v strojni jezikNi prevajanja v strojni jeziktt ObiObiččajno poajno poččasnejasnejšše izvajanje programae izvajanje programa
C
nn Zmogljiv programski jezik, ki je bil razvit z namenom Zmogljiv programski jezik, ki je bil razvit z namenom pisanja sistemske programske opreme (UNIX)pisanja sistemske programske opreme (UNIX)
nn Zahteva profesionalno znanje programiranjaZahteva profesionalno znanje programiranja
SAMO ZA INTERNO U
PORABO
6
Objektno programiranje
nn Objektno orientirano programiranje (OOP)Objektno orientirano programiranje (OOP)uu Temelji na delu z Temelji na delu z objekti (predmeti)objekti (predmeti), ki vsebujejo , ki vsebujejo
podatke, potrebne za delovanje programa, in podatke, potrebne za delovanje programa, in metodemetode za delo s podatkiza delo s podatki
uu RazredRazred –– skupek pravil, ki opredeljujejo, katere skupek pravil, ki opredeljujejo, katere spremenljivke in metode vsebujejo objekti tega spremenljivke in metode vsebujejo objekti tega razredarazreda
uu Glavna prednost OOP je moGlavna prednost OOP je možžnost ponovne nost ponovne uporabe obstojeuporabe obstoječčih objektov (npr. v novih ih objektov (npr. v novih programih)programih)
uu Primeri OOP jezikov: Primeri OOP jezikov: C++C++, , JavaJava, , C#,C#, DelphiDelphi, , vizualni programski jezikvizualni programski jezik
Objektno programiranje
nn Program vsebuje zbirko med seboj sodelujoProgram vsebuje zbirko med seboj sodelujoččih objektovih objektovnn Delovanje programa doloDelovanje programa določčajo skupinske interakcije, ki jih doloajo skupinske interakcije, ki jih določčajo ajo
posamezni objektiposamezni objekti
nn Objekti so "antropomorfni" Objekti so "antropomorfni" –– vsak posamezen objekt je "pameten" v svoji vsak posamezen objekt je "pameten" v svoji specialnostispecialnostiuu Npr. postelja se lahko sama pospravi, vrata odprejo, itd.Npr. postelja se lahko sama pospravi, vrata odprejo, itd.
nn Vsakemu objektu je potrebno povedati, kdaj mora nanj delovati drVsakemu objektu je potrebno povedati, kdaj mora nanj delovati drug ug objekt objekt àà da bi opravili nalogo, morajo ti med seboj sodelovatida bi opravili nalogo, morajo ti med seboj sodelovati
nn Vsak objekt predstavlja abstrakcijo Vsak objekt predstavlja abstrakcijo –– ""ččrna rna šškatlakatla““: skrije nepomembne : skrije nepomembne podrobnosti podrobnosti
nn OmogoOmogočča programerju, da nadzoruje kompleksnost programaa programerju, da nadzoruje kompleksnost programa
nn Pisanje programa z modeliranjem problema kot niza med seboj Pisanje programa z modeliranjem problema kot niza med seboj sodelujosodelujoččih komponentih komponent
nn Programer doloProgramer določči, kateri so gradniki programa in jih povei, kateri so gradniki programa in jih povežže, tako da e, tako da pravilno sodelujejo (Lego kocke!)pravilno sodelujejo (Lego kocke!)
SAMO ZA INTERNO U
PORABO
7
Objektno programiranje
nn Primer: igra Primer: igra TetrisTetrisuu Kateri objekti nastopajo v igri?Kateri objekti nastopajo v igri?uu Katere naloge morajo ti objekti znati opravljati?Katere naloge morajo ti objekti znati opravljati?uu Katere so njihove lastnosti?Katere so njihove lastnosti?
Objektno programiranje
nn Kateri objekti nastopajo v igri?Kateri objekti nastopajo v igri?uu Liki in igralna povrLiki in igralna površšinaina
nn Katere naloge morajo ti objekti znati Katere naloge morajo ti objekti znati opravljati?opravljati?uu Liki:Liki:
tt se ustvaritise ustvarititt padatipadatitt se vrteti (rotirati)se vrteti (rotirati)tt se ustaviti ob trkuse ustaviti ob trku
uu Igralna povrIgralna površšina:ina:tt se ustvaritise ustvarititt odstraniti vrsticeodstraniti vrsticett preveriti, preveriti, čče je igra kone je igra konččanaana
nn Katere so njihove Katere so njihove lastnosti?lastnosti?uu Liki:Liki:
tt orientacijaorientacijatt polopoložžajajtt oblikaoblikatt barvabarva
uu Igralna povrIgralna površšina:ina:tt velikostvelikosttt vrsticevrsticeSAMO ZA IN
TERNO UPORABO
8
Java
nn Objektno orientiran programski jezik soroden C in C++Objektno orientiran programski jezik soroden C in C++nn Razvit v zgodnjih 90Razvit v zgodnjih 90--ih letih v podjetju Sun Microsystemsih letih v podjetju Sun Microsystemsnn Kot samostojni program ali kot vgrajena aplikacija (Applet), ki Kot samostojni program ali kot vgrajena aplikacija (Applet), ki
jo pojo požženemo iz spletnega brskalnikaenemo iz spletnega brskalnikauu Vnos izvorne kode v datoteko z urejevalnikomVnos izvorne kode v datoteko z urejevalnikomuu Pretvorba izvornega programa v strojni jezik ali Pretvorba izvornega programa v strojni jezik ali Java Java
Bytecode Bytecode s t.i. Justs t.i. Just--inin--Time (JIT) prevajalnikom (npr. Time (JIT) prevajalnikom (npr. javac)javac)
uu IzvrIzvrššitev prevedenega programa s tolmaitev prevedenega programa s tolmaččem (npr. java)em (npr. java)uu Odstranitev napak (hroOdstranitev napak (hroššččev) z urejevalnikomev) z urejevalnikom in zain začčetek etek
novega ciklusanovega ciklusa
C++ in C#
nn C++C++uu Poleg vseh elementov jezika C vsebuje Poleg vseh elementov jezika C vsebuje šše e
dodatne mododatne možžnosti za objektno orientirano delonosti za objektno orientirano delouu Uporaba za razvoj podatkovnih baz in spletnih Uporaba za razvoj podatkovnih baz in spletnih
aplikacijaplikacij
nn C#C#uu Objektno orientiran programski jezik, ki temelji na Objektno orientiran programski jezik, ki temelji na
C++C++uu Sprejet kot standard za spletne aplikacije in Sprejet kot standard za spletne aplikacije in
storitve, temeljestoritve, temelječče na XMLe na XMLuu Podobno kot Java uporablja JIT prevajalnikPodobno kot Java uporablja JIT prevajalnik
SAMO ZA INTERNO U
PORABO
9
Vizualni programski jeziki
nn Vizualno programsko okolje Vizualno programsko okolje (Visual (Visual programming environment, VPE) omogoprogramming environment, VPE) omogočča a programerjem razvijanje programov z vleprogramerjem razvijanje programov z vleččenjem in enjem in odlaganjem predmetovodlaganjem predmetovuu Vizualni ali grafiVizualni ali grafiččni vmesnik za ustvarjanje ni vmesnik za ustvarjanje
izvorne kodeizvorne kodenn Pogosto uporabljani v okoljih hitrega razvijanja Pogosto uporabljani v okoljih hitrega razvijanja
aplikacij (Rapid application development)aplikacij (Rapid application development)uu Programer piProgramer pišše in implementira program v e in implementira program v
segmentihsegmentihnn Primeri: Primeri: LabVIEWLabVIEW, , SimulinkSimulink
Visual Studio 2005
nn Microsoftova zbirka programskih orodij za Microsoftova zbirka programskih orodij za profesionalne razvijalceprofesionalne razvijalceuu OmogoOmogočča ustvarjanje samostojnih aplikacij, a ustvarjanje samostojnih aplikacij,
spletnih strani, aplikacij in storitevspletnih strani, aplikacij in storitev na razlina različčnih nih platformah (streplatformah (strežžniki in delovne postaje MS niki in delovne postaje MS Windows, Pocket PC, pametni telefoni, spletni Windows, Pocket PC, pametni telefoni, spletni brskalniki)brskalniki)
uu VkljuVključčuje uje Visual Basic, Visual C++, Visual C# Visual Basic, Visual C++, Visual C# in Visual J#in Visual J#SAMO ZA IN
TERNO UPORABO
10
Visual Studio 2005
1. korakRazvijalec razvije uporabniški vmesnik
2. korakRazvijalec določi lastnosti vsakemu objektu na obrazcu
3. korak Razvijalec napiše kodo, ki določa funkcijo vsakemu ukaznemu gumbu
4. korak Razvijalec preizkusi program
Neproceduralni jeziki in razvojna orodja
nn Neproceduralni jezikiNeproceduralni jeziki –– Programerji piProgramerji piššejo navodila ejo navodila v anglev angleššččiniini--podobnem jeziku ali interagirajo z podobnem jeziku ali interagirajo z vizualnim okoljem npr. z namenom pridobivanja vizualnim okoljem npr. z namenom pridobivanja podatkov iz datotek ali podatkovnih bazpodatkov iz datotek ali podatkovnih baz
nn Programska razvojna orodjaProgramska razvojna orodja –– Uporabniku prijazni Uporabniku prijazni programi, ki pomagajo programerjem in uporabnikom programi, ki pomagajo programerjem in uporabnikom pri ustvarjanju programovpri ustvarjanju programov
SAMO ZA INTERNO U
PORABO
11
Neproceduralni jeziki
nn Jeziki Jeziki ččetrte generacijeetrte generacije –– rerešševanje evanje problemov, ozko usmerjenih v problemov, ozko usmerjenih v dolodoloččeno podroeno področčje (npr. je (npr. raraččunovodstvo)unovodstvo)
nn OmogoOmogoččajo dostop do podatkov v ajo dostop do podatkov v podatkovnih bazah (SQL), podatkovnih bazah (SQL), generiranje porogeneriranje poroččil, matematiil, matematiččne ne analize (Mathematica, SPSS)analize (Mathematica, SPSS)
uu PovpraPovprašševalni jezik SQLevalni jezik SQL (Structured Query (Structured Query Language) omogoLanguage) omogočča uporabnikom upravljanje s a uporabnikom upravljanje s podatki v relacijskih podatkovnih bazah (DBMS)podatki v relacijskih podatkovnih bazah (DBMS)
Programska razvojna orodja
nn Visual Basic for Applications (VBA)Visual Basic for Applications (VBA) –– makro makro programski jezikprogramski jezikuu Makro Makro –– zaporedje ukazov, ki avtomatizirajo zaporedje ukazov, ki avtomatizirajo
opravilaopravila
SAMO ZA INTERNO U
PORABO
12
Spletno programiranje
nn HTMLHTMLnn Skriptni jeziki Skriptni jeziki
uu JavaScriptJavaScriptuu PERLPERLuu VBScriptVBScript
nn DinamiDinamiččni HTML (DHTML)ni HTML (DHTML)nn XHTMLXHTMLnn XMLXMLnn WMLWMLnn Orodja za izdelavo spletnih strani (Dreamweaver, Flash, Orodja za izdelavo spletnih strani (Dreamweaver, Flash,
FrontPage)FrontPage)
HTML
nn HTMLHTML (HyperText Markup Language) (HyperText Markup Language) –– oznaoznaččevalni jezik evalni jezik za izdelavo spletnih strani oz. veza izdelavo spletnih strani oz. veččpredstavnostnih predstavnostnih dokumentov dokumentov
nn Urejanje HTML datotek: tekstovni (NoteTab) ali Urejanje HTML datotek: tekstovni (NoteTab) ali WYSIWYG urejevalniki (FrontPage, Dreamweaver)WYSIWYG urejevalniki (FrontPage, Dreamweaver)
SAMO ZA INTERNO U
PORABO
13
nn SkriptaSkriptauu Interpretiran Interpretiran program, ki teprogram, ki tečče na odjemalcue na odjemalcu
nn ApletApletuu ObiObiččajno teajno tečče na odjemalcu, a je e na odjemalcu, a je prevedenpreveden
nn ServletServletuu Aplet, ki teAplet, ki tečče na stree na strežžnikuniku
nn ActiveXActiveX controlcontroluu ProgramProgramčček, ki teek, ki tečče na odjemalcue na odjemalcu
nn ŠŠtevectevecuu Vodi evidenco o Vodi evidenco o šštevilu obiskovalcev spletne stranitevilu obiskovalcev spletne strani
nn ObrazecObrazecuu Zbira podatke o obiskovalcih spletne straniZbira podatke o obiskovalcih spletne strani
Interaktivni elementi in dodatki na spletnih straneh
Skriptni jeziki
nn Enostavni za uEnostavni za uččenje in uporaboenje in uporabouu JavaScriptJavaScript –– spletni strani dodaja dinamispletni strani dodaja dinamiččne ne
vsebine in interaktivne elementevsebine in interaktivne elementeuu PERLPERL (Practical Extraction and Report Language)(Practical Extraction and Report Language)
–– vsebuje vsebuje šštevilne napredne motevilne napredne možžnosti obdelave nosti obdelave besedilabesedila
uu VBScriptVBScript (Visual Basic, Scripting Edition)(Visual Basic, Scripting Edition) ––spletnim stranem dodajaspletnim stranem dodaja inteligentnost in inteligentnost in interaktivnostinteraktivnostSAMO ZA IN
TERNO UPORABO
14
Dinamični HTML
nn DHTMLDHTML (dinami(dinamiččni HTML) ni HTML) –– omogoomogočča a razvijalcem, da vkljurazvijalcem, da vključčijo v spletne strani veijo v spletne strani veččgrafigrafiččnih vsebin in interaktivnostinih vsebin in interaktivnosti
XHTML, XML, WML
nn XHTMLXHTML (Extensible HTML)(Extensible HTML) –– omogoomogočča enostavneja enostavnejšše e prikazovanje spletnih straneh na PDA brskalnikihprikazovanje spletnih straneh na PDA brskalnikih (dlan(dlanččniki, niki, mobilni telefoni)mobilni telefoni)uu Vsebuje znaVsebuje značčilnosti ilnosti HTML HTML inin XMLXML
nn XMLXML (Extensible Markup Language)(Extensible Markup Language) –– omogoomogočča razvijalcem a razvijalcem ustvarjanje prilagojenih znaustvarjanje prilagojenih značčk (Tags)k (Tags)uu StreStrežžnik ponik poššlje celoten zapis odjemalcu, ki lahko opravi lje celoten zapis odjemalcu, ki lahko opravi
veveččino procesiranja, ne da bi se moral vraino procesiranja, ne da bi se moral vraččati k streati k strežžnikunikunn WMLWML (Wireless Markup Language)(Wireless Markup Language) –– omogoomogočča razvijalcem a razvijalcem
ustvarjanje spletnih strani, specifiustvarjanje spletnih strani, specifiččno namenjenih PDA no namenjenih PDA brskalnikombrskalnikomuu ŠŠtevilni dlantevilni dlanččniki in pametni telefoni uporabljajo WML kot niki in pametni telefoni uporabljajo WML kot
svoj oznasvoj označčevalni jezikevalni jezik
SAMO ZA INTERNO U
PORABO
15
Programi za postavljanje spletnih strani
nn Spletna razvojna orodja Spletna razvojna orodja -- ustvarjanje kompleksnih spletnih ustvarjanje kompleksnih spletnih strani brez prikaza HTML kodestrani brez prikaza HTML kode
nn Enostavni za uporabo Enostavni za uporabo –– ni potrebno poznavanje jezika ni potrebno poznavanje jezika HTML HTML uu Macromedia DreamweaverMacromedia Dreamweaver (Adobe)(Adobe)
tt 70%70%--ni trni tržžni deleni deležž med HTML urejevalnikimed HTML urejevalnikitt NovejNovejšše verzije vsebujejo podporo drugim spletnim e verzije vsebujejo podporo drugim spletnim
tehnologijam (CSS, JavaScript)tehnologijam (CSS, JavaScript)uu FrontPageFrontPage (Microsoft)(Microsoft)
tt WYSIWYG HTML urejevalnikWYSIWYG HTML urejevalniktt VkljuVključčen v MS Office Proen v MS Office Pro
Večpredstavnostni razvojni programi
nn Kombiniranje besedila, grafike, animacije, audio Kombiniranje besedila, grafike, animacije, audio in video vsebin v interaktivno predstavitevin video vsebin v interaktivno predstavitev
nn Uporaba pri Uporaba pri ee--uuččenjuenjuuu RaRaččunalniunalnišško podprto uko podprto uččenje (Computerenje (Computer--
based Training, CBT)based Training, CBT)uu SpletnoSpletno--podprto upodprto uččenje (Webenje (Web--based Training, based Training,
WBT)WBT)nn Programi: Programi: ToolbookToolbook, , AuthorwareAuthorware,, Director MXDirector MXSAMO ZA IN
TERNO UPORABO
16
Razvoj programske opreme
nn ŽŽivljenjski (razvojni) cikel programske opremeivljenjski (razvojni) cikel programske opremeuu Definicija problemaDefinicija problemauu Analiza in opredelitev zahtevAnaliza in opredelitev zahtevuu NaNaččrtovanjertovanjeuu UvajanjeUvajanjeuu Preverjanje rePreverjanje reššitveitveuu VzdrVzdržževanjeevanje
nn RazliRazliččni pristopini pristopiuu Linearni (kaskadni)Linearni (kaskadni)uu PrototipniPrototipniuu ObjektniObjektniuu Ekstremno programiranjeEkstremno programiranje
Analiza
Načrtovanje
Uvajanje
Testiranje
Vzdrževanje
Analiza zahtev
nn Analiza in dokumentiranje obstojeAnaliza in dokumentiranje obstoječčega procesaega procesann Pregled zahtevPregled zahtevnn ŠŠtudija zmotudija zmožžnosti (Feasibility study) nosti (Feasibility study) –– tehnolotehnološška, ka,
ekonomska, vedenjskaekonomska, vedenjskann Sestanki s sistemskim analitikom in uporabnikiSestanki s sistemskim analitikom in uporabnikinn Identifikacija vhodov, izhodov in procesnih korakov Identifikacija vhodov, izhodov in procesnih korakov ––
IPO diagramIPO diagramSAMO ZA INTERNO U
PORABO
17
Načrtovanje
nn DoloDoloččitev potrebne strojne opremeitev potrebne strojne opremenn DoloDoloččitev komponent sistemaitev komponent sistemann DoloDoloččitev komunikacije med komponentamiitev komunikacije med komponentaminn Strukturni (hierarhiStrukturni (hierarhiččni) diagramni) diagram
Diagram poteka
nn Diagram potekaDiagram poteka (Flow (Flow chart) omogochart) omogočča zapis a zapis algoritmaalgoritmauu PuPuššččice ice –– potek potek
algoritmaalgoritmauu Liki razliLiki različčnih obliknih oblik
SAMO ZA INTERNO U
PORABO
18
Diagram poteka
nn PrireditevPrireditev –– spremenljivki spremenljivki priredimo neko vrednostpriredimo neko vrednostuu X X ←← 55uu n n ←← n + 1n + 1
nn Branje in izpisBranje in izpis –– preberemo preberemo vrednost spremenljivke in jo vrednost spremenljivke in jo izpiizpiššemoemo
START
Beri A
Beri A
STOP
A ← A + 3
Diagram poteka
nn Vejitev Vejitev –– izvajanje izvajanje algoritma se cepi v algoritma se cepi v dve vejidve veji
START
Beri A, B
Izpiši C
STOP
A > B
C ← AC ← B
ne da
Primerjava dveh števil in izpis večjega
SAMO ZA INTERNO U
PORABO
19
Diagram poteka
nn ZankaZanka –– uporabimo pri uporabimo pri zaporedju enakih ukazovzaporedju enakih ukazovuu ŠŠtevilo ponovitev tevilo ponovitev
omejimo z doloomejimo z določčenim enim pogojempogojem
START
Beri A, B
Izpiši A*C
C ← 1
STOP
C > B
C ← C + 1
da
ne
Izpis B večkratnikov števila A
SAMO ZA INTERNO U
PORABO
20
nn Preverjanje toPreverjanje toččnosti oz. pravilnosti nanosti oz. pravilnosti naččrtartauu "Desk check"Desk check““ –– programerji na podlagi testnih programerji na podlagi testnih
(simuliranih) podatkov preverjajo logiko (simuliranih) podatkov preverjajo logiko posameznih korakovposameznih korakov
nn Iskanje logiIskanje logiččnih napak v nanih napak v naččrturtu
Validacija načrta
Uvajanje
n Kodiranje – pisanje programske kode, ki spremeni načrt v računalniški program
t Sintaksa – pravila programskega jezika, ki določajo, kako je treba pisati ukaze
t Komentarji – programska dokumentacija
SAMO ZA INTERNO U
PORABO
21
Preverjanje rešitve
nn Preverjanje, ali program tePreverjanje, ali program tečče pravilno in je brez e pravilno in je brez napaknapak
nn RazhroRazhroššččevanjeevanje (Debugging) (Debugging) –– iskanje in iskanje in popravljanje sintaktipopravljanje sintaktiččnih in loginih in logiččnih napak nih napak (hro(hroššččev)ev)uu Za iskanje hroZa iskanje hroššččev se vev se vččasih uporablja testna asih uporablja testna
((betabeta) verzija programa) verzija programa
Dokumentiranje rešitve
nn Naloge programerja oz. programerjevNaloge programerja oz. programerjevuu Pregled programske kodePregled programske kode
tt Odstranjevanje delov kode, ki se ne Odstranjevanje delov kode, ki se ne izvajajoizvajajo
uu Pregled dokumentacijePregled dokumentacije
SAMO ZA INTERNO U
PORABO
22
Slabosti klasičnega (linearnega) pristopa
nn ČČas, obseas, obsežžna dokumentacijana dokumentacijann Vsaka napaka v specifikaciji je lahko zelo draga in se Vsaka napaka v specifikaciji je lahko zelo draga in se
jo tejo težžko popravi v delujoko popravi v delujoččem sistemuem sistemunn Od uporabnika se zahteva Od uporabnika se zahteva ““popolnapopolna”” definicija definicija
sistema sistema žže v zae v začčetni fazietni fazinn Komunikacija med uporabniki in razvijalciKomunikacija med uporabniki in razvijalci
uu Uporabniki steUporabniki stežžka podajo abstraktne definicijeka podajo abstraktne definicijeuu Komunikacijski problemi vodijo v nepopolne Komunikacijski problemi vodijo v nepopolne
sistemesistemenn Problemi se pokaProblemi se pokažžejo ejo ššele kasneje, ko jih je teele kasneje, ko jih je težžko ko
odpravitiodpraviti
Ekstremno programiranje
SAMO ZA INTERNO U
PORABO
23
Ekstremno programiranje
nn Inkrementalni razvoj, minimalno naInkrementalni razvoj, minimalno naččrtovanje pred rtovanje pred kodiranjemkodiranjem
nn Poslovno najpomembnejPoslovno najpomembnejšši deli so razviti najpreji deli so razviti najprejnn Kratek Kratek ččas med posameznimi verzijami izdaje as med posameznimi verzijami izdaje
programske opremeprogramske opremenn Majhne razvojne ekipeMajhne razvojne ekipenn Kupci in programerji razvijajo programe skupajKupci in programerji razvijajo programe skupaj
Lastnosti dobrega programa
nn Ustreza specifikacijamUstreza specifikacijamnn Izdelan pravoIzdelan pravoččasno in v okviru predvidenih asno in v okviru predvidenih
strostrošškovkovnn OsredotoOsredotoččen na uporabnikaen na uporabnikann Pri rePri rešševanju problema je uporabljena evanju problema je uporabljena
ustvarjalnostustvarjalnostnn Dobro strukturiran / organiziran / napisan / Dobro strukturiran / organiziran / napisan /
dokumentirandokumentirannn Lahko ga nadgrajujemo in vzdrLahko ga nadgrajujemo in vzdržžujemoujemo
SAMO ZA INTERNO U
PORABO
24
Lastnosti dobrega programerja
nn Dober programer je mnogo veDober programer je mnogo večč od zgolj pisca od zgolj pisca programske kodeprogramske kode
nn Problem mora znati razstaviti v dovolj majhne Problem mora znati razstaviti v dovolj majhne korakekorake
nn Dovolj dobro mora poznati podroDovolj dobro mora poznati področčje je –– in in programski jezik programski jezik –– da ve, kaj v konkretnem da ve, kaj v konkretnem primeru pomeni "korak" primeru pomeni "korak"
Kje lahko uporabiš svoje znanje programiranja
nn InInžženirske in tehnienirske in tehniččne vedene vedenn NaravoslovjeNaravoslovje
uu MedicinaMedicinauu RaRaččunska biologijaunska biologija
nn Poslovne aplikacijePoslovne aplikacijenn InternetInternetnn ……SAMO ZA IN
TERNO UPORABO