RAZVOJ PROGRAMA I PROGRAMSKI JEZICI

Download Report

Transcript RAZVOJ PROGRAMA I PROGRAMSKI JEZICI

RAZVOJ PROGRAMA I
PROGRAMSKI JEZICI
Grupa MI
Milena Slaby
Ivana Mežnarić
1. Životni ciklus razvoja programa
Stvaranje aplikacijskog programa se odnosi na razvoj
aplikacijskog softvera. Potrebno je provesti 5 koraka
potrebnih za razvoj programa koji čine životni ciklus razvoja
programa. To su:
1. Analiza problema
2. Dizajn programa
3. Kodiranje programa
4. Uklanjanje grešaka programa i testiranje
5. Održavanje programa
Grafikon 1: Životni ciklus razvoja programa
Poboljšani
komplet
programa
1. Analiza
programa
Specifikacije programa
5.
Održavanje
programa
2. Dizajn
programa
Dovršeni
komplet
programa
Specifikacije
dizajna
4. Uklanjanje
grešaka i
testiranje
3. Kodiranje
programa
Dokumentirani izvorni kod
1.1. Analiza programa
Tijekom prvih par koraka životnog ciklusa razvoja sistema, sistemski
analitičar razvija set specifikacija koje točno pokazuju što i kako bi
trebao raditi novi sistem. Ove specifikacije se koriste u prvom koraku –
analizi problema. Tijekom ove faze, sistemski analitičar i programer
ponovno pregledavaju specifikacije. Također se nalaze sa korisnicima
novog sistema da bi u potpunosti shvatili koje funkcije softverski
program kojeg razvijaju treba imati za novi sistem.
1.2. Dizajn programa
U ovom koraku, specifikacije iz analize koriste se da se preciznije
objasni priroda programa. Dizajn programa predstavlja algoritam
(koraci potrebni za obavljanje svih zadataka programa). Tek kad se
završi programsko dizajniranje zapravo počinje kodiranje programa.
1.2.1. Vrste programiranja
Strukturno programiranje
Početkom 60-ih godina proizašle su metode koje su sistematizirale
dizajn programa i učinile programe jednostavnijim za razumijevanje i
održavanje. Ove metode se obično grupiraju pod nazivom sistemsko
programiranje. Da bi se savladao problem razumijevanja, praćenja i
modificiranja ovakvog tipa programa, strukturirani programi šalju
naredbe van do potprograma – modula, kad god je potrebno izvesti
malu ili ponavljanu radnju. Modul obavlja zadatak i tad se programska
naredba vraća u glavni program.
Programiranje orijentirano prema objektima (OOP)
Jedna od glavnih motivacija za korištenje ovog pristupa je
savladavanje multimedije i aplikacija za web stranice. Druga motivacija
je pisanje programskog koda koji može značajno skratiti vrijeme
razvoja programa. Ovo je stil programiranja u kojem su objekti, kao npr.
tipke i prozori, modelirani koristeći softver objekti. Objekti u OOP
programiranju sadrže i podatke i instrukcije.
«Aspect-Oriented» Programiranje (AOP)
Ova vrsta programiranja je poznatiji pristup softverskom razvoju. AOP je
način slaganja programskih komponenata tako da se metode i pravila
koje se zajedno koriste mogu lako ponovno koristiti sa odvojenim,
nepovezanim objektima. Njegove pristalice AOP programiranje vide kao
idući logički korak nakon objektno orijentiranog programiranja,
nastavljajući proizvodnju softverskih programa koji su manji i lakši za
upravljanje.
1.2.2. Alati za dizajniranje programa
Alati za dizajn programa su planski alati. Sastoje se od dijagrama,
grafikona, tablica, modela i drugih alata koji prikazuju organizaciju
zadataka programa, korake koje će program slijediti ili karakteristike
objekta.
Structure charts – strukturni grafikoni
Strukturni grafikoni slikovno i riječima prikazuju organizaciju programa.
Prikazuju kako su dijelovi programa ili moduli, definirani i međusobno
povezani. Klasični strukturni grafikon, sa svojih nekoliko redova kutija
povezanih linijama, prikazuje organizacijski grafikon poduzeća.
Strukturni dijagrami predstavljaju top – down filozofiju, prema kojoj su
moduli konceptirani prvo na najvišim razinama hijerarhije a onda
detaljnije prikazani u nižim razinama.
Grafikon 2: Strukturni grafikon za aplikaciju platnog spiska
KONTROLA
PROGRAMA
INPUT
RAČUNANJE
FEDERALNOG
POREZA
IZRAČUN
POREZA
RAČUNANJE
DRŽAVNOG POREZA
IZRAČUN
PLAĆANJA
RAČUNANJE
GRADSKOG POREZA
RAČUNANJE
OSTALIH POREZA
OUTPUT
PROVJERA
GREŠAKA
IZVJEŠTAJ O
PLAĆANJU
Program flowcharts
Program flowcharts koriste geometrijske simbole i znakove kao što je
npr. < za „manje od“, da bi grafički prikazali slijed koraka u programu.
Tablica 1: Znakovi koji se upotrebljavaju u program flowcharts
ZNAK
Objašnjenje
<
Manje od
<= ≤
Manje od ili jednako
>
Više od
>= ≥
Više od ili jednako
=
Jednako
≠ <> ><
Različito od
Svaki flowchart počinje i završava sa ovalnim start/stop simbolom. Prvi
simbol je start a zadnji stop. Simbol u obliku dijamanta označava
pitanje, općenito sa dva moguća odgovora – da i ne, ili točno i netočno.
Simboli za odluku uvijek imaju jednu flowline (linije sa strelicama koje
povezuju simbole) koja ulazi i dvije koje izlaze.
Pravokutni simbol je simbol obrade i sadržava akciju koja će se provesti.
Connector je mjesto susreta nekoliko flowline-a. Input/output simbol
omogućava procesu opisanom u flowchart-u da uvede ili izvede podatak.
Pseudocode
Pseudocode je alternativa flowchart-u. Ova strukturna tehnika koristi
izjave na mjestu grafičkih simbola u flowchart-u. Izgledom više sliči na
program nego flowchart. Ne postoji formalni set standarda za pisanje
pseudocode-a, no ipak postoje neki standardi koji se češće koriste,
npr. riječi start i stop se koriste za početak i kraj pseudocode-a, sve
riječi koje su povezane sa kontrolnom strukturom se obično pišu
velikim tiskanim slovima, itd.
Data modeling
Data modeling je tehnika ilustriranja podataka u aplikaciji i obično se
koristi kad se dizajnira aplikacija koja će se primijeniti koristeći
objektno – orijentirano programiranje.
1.2.3. Kontrolna struktura
Kontrolna struktura je model koji kontrolira kad i kao će se instrukcije u
programu izvoditi.
Redoslijed kao kontrolna struktura
Redoslijed ili sequence je jednostavna serija procedura koje slijede
jedna drugu.
Grafikon 3: Primjer redoslijeda
ULAZ
Procedura 1
Procedura 2
Procedura 3
IZLAZ
Selekcija kao kontrolna struktura
Sa ovim tipom kontrolne strukture, upute koje prima kontrola programa
ovise o određenim uvjetima. Najčešći tip selekcije je ako-onda-ili
struktura prikazana na idućem grafikonu, u kojoj uvjet može rezultirati
dvjema mogućnostima – točno ili netočno (da ili ne).
Grafikon 4: Ako-onda-ili tip selekcije
ULAZ
Točno
(Da)
?
uvjet
Procedura 1
Netočno
(Ne)
Procedura 2
IZLAZ
Ako je određeni uvjet točan, tada program slijedi jednu proceduru, ili,
ako je netočan program slijedi drugu proceduru.
Ponavljanje kao kontrolna struktura
Ponavljanje ili repetition control strukture koristi se jedna ili više
instrukcija koje treba ponoviti u petlji sve dok se određeni uvjet ne
zadovolji. Može biti u dva oblika: do-while ili do-until.
Grafikon 5: Do-while i do-until tipovi repetition control strukture
ULAZ
ULAZ
Netočno
(Ne)
Procedura
?
uvjet
?
uvjet
Točno (Da)
Procedura
IZLAZ
Točno (Da)
IZLAZ
Do - while
Do - until
Netočno
(Ne)
Sa do-while strukturom instrukcije se ponavljaju toliko dugo dok je
određeni uvjet točan. Sa do-until strukturom instrukcije se ponavljaju
toliko dugo dok je određeni uvjet netočan.
1.2.4. Važnost dobrog dizajna programa
Dobar dizajn programa je jako bitan. Postoji nekoliko osnovnih
principa koji bi se trebali imati na umu da bi se napravio dobar
programski dizajn:
 budi točno određen (da bi se dale dobre instrukcije računalu, svaki
njegov korak i odluka moraju biti precizno definirani)
 pravilo jedne ulazne i jedne izlazne točke (iznimno važno pravilo
kontrolne strukture da ima samo jednu ulaznu i jednu izlaznu točku)
 ne postojanje infinite loops ili logičkih grešaka (infinite loops je set
instrukcija koje se vječno ponavljaju. Nastane kad do-while uvjet
nikad ne postane netočan ili do-until nikad ne postane točan. Razlog
tome je stavljanje krivih znakova)
 specifikacije dizajna (dokumentacija koja proizlazi iz dizajna
programa, ilustrira korake potrebne da se riješi problem pitanja)
1.3. Kodiranje programa
Nakon što se dovrši dizajniranje programa, program se kodira.
Kodiranje je proces pisanja koraka programa na programskom jeziku.
U procesu kodiranja računalni profesionalci često koriste posebne
tehnike koje im pomažu da budu produktivniji.
1.3.1. Odabir programskog jezika
Postoji mnogo različitih programskih jezika koji se mogu odabrati za
kodiranje programa. Neki kriteriji koji utječu na taj odabir su sljedeći:
 prikladnost
 uklopljivost
 standardi
 dostupnost programera
 prenosivost
 brzina razvoja
1.3.2. Standardi kodiranja
Mnoge organizacije danas slijede standarde kodiranja – lista pravila
napravljenih da bi se standardizirali stilovi programiranja. Ova pravila
pomažu da programi budu univerzalnije čitljivi i lakši za održavanje.
1.3.3. Ponovno upotrebljiv kod
Različiti programi često upotrebljavaju neke iste blokove koda.
Ponovno upotrebljiv kod omogućuje da se dijelovi novih programa
kreiraju kopiranjem i lijepljenjem prethodno testiranih dijelova koda, iz
već postojećih programa.
1.3.4. Rječnici podataka
Rječnik podataka sadrži informacije o podacima koji se susreću u
procesiranju informacija o poduzeću. Većina rječnika podataka su
aktivni, što znači da su umreženi s aplikacijama koje podržavaju.
1.3.5. Prevođenje kodiranih programa u izvedivi kod
Prevoditelj jezika je softverski program koji prevodi programerove
kodirane programe u strojne jezike.
Kompajleri
Kompajler prevodi cijeli program u strojni jezik prije izvođenja istog.
Interpreteri
Interpreter ne kreira cijeli objektni modul za program, nego čita, prevodi
i izvodi izvorni program red po red.
Asembleri
Treći tip prevoditelja jezika, asembler, prevodi navode sa asembli jezika
na strojni jezik. Asembli jezik upotrebljavaju uglavnom samo
profesionalni programeri za pisanje učinkovitog koda. Asembler radi kao
kompajler, radeći spremljene objektne module.
1.4. Uklanjanje grešaka programa i testiranje
Uklanjanje grešaka je proces kojim se osigurava da program nema
grešaka ili bug-ova.
1.4.1. Preliminarno uklanjanje grešaka
Proces uklanjanja grešaka počinje nakon ulaska izvornog koda u
računalo.
Greške sintakse
Greške sintakse pojavljuju se kad programer ne slijedi odgovarajuće
pravilo programskog jezika koji se upotrebljava (npr. računalo ne može
razumjeti što se želi napraviti ako se krivo napiše PRINT kao PRNT).
Logične greške
Logične greške proizlaze iz logičnih problema u dizajnu programa i
često ih je teško otkriti. Takva greška nastaje npr. ako se formula napiše
pogrešno, ako se napravi pogreška u donošenju uvjeta, ili ako se
pogrešno definira problem.
Testiranje
Na nekoj točci u procesu pronalaženja pogrešaka, program će izgledati
pravilan. U tom trenutku programer pokreće program sa opsežnim «test
data». Pravilno pronalaženje pogrešaka i testiranje je ključno zbog toga
što greška čiji popravak košta samo nekoliko dolara na ovom stadiju u
razvojnom procesu, mogla bi koštati nekoliko tisuća dolara za
ispravljanje nakon što je program završen.
Beta testiranje
Test napravljen na mjestu proizvodnje u poduzeću je često upućen kao
alpha test. «Beta» testiranje je vanjsko testiranje koje obavlja velik broj
volontera koristeći različite hardverske konfiguracije. Preporuča se da
program što više puta prođe kroz testiranja prije nego će proizvod biti
pušten u prodaju.
Završen paket programa
Za završiti programski paket, potrebna je korisnička dokumentacija koja
bi trebala biti razvijena. Korisnička dokumentacija uobičajeno obuhvaća
korisnički priručnik, prikaz softverskih naredbi, te naputak za otkrivanje
smetnji.
1.5. Programsko održavanje
Svaki program, ako bi trebao trajati neko duže vrijeme zahtijeva
konstantno održavanje. Programsko održavanje je proces obnavljanja
softvera tako da i dalje bude koristan. Primjerice ako se u bazu
podataka dodaju novi tipovi podataka programsko održavanje je nužno
da bi program mogao koristiti nove podatke.
Izmijenjen i dopunjen programski paket
Programski paket trebao bi se obnavljati da bi pokazao koji problemi
su se pojavili i koje promjene programa su potrebne da bi ih se
uklonilo. Ako je problem prevelik za rutinsko programsko održavanje,
program bi se trebao opet razviti.
2. Alati za olakšavanje programskog razvoja
Brza razvojna tehnologija i alati su danas mnogo važniji nego
ikada do sada. Programski razvojni alati mogu biti upotrijebljeni
da olakšaju razvoj programskog procesa.
2.1. Aplikativni generatori
Aplikativni generator je softverski proizvod koji omogućava
programerima, također i korisnicima, šifrirati novu aplikaciju vrlo brzo.
Jednostavni primjer je kompjutorski čarobnjak.
2.1.1. Macro zapisivač
Mnogi aplikativni programi dozvoljavaju kreiranje macro-a. Macro je
ishod pritiska tipke spremljenog u posebnu datoteku koja će biti
prikazana u svakom trenutku kada zaželite da se pokaže iz
aplikacijskog programa u kojem je kreiran.
2.1.2. Generatori izvješća i generatori oblika
Generator izvješća omogućava pripremu izvješća brzo i jednostavno.
Generatori oblika su srodni generatorima izvješća, izuzev što oni mogu
kreirati oblike ili zaslone korištene za input podataka u programu ili bazi
podataka.
2.1.3. Generatori šifri
Generatori šifri su programi koji dozvoljavaju aplikacijama da se
kreiraju automatskim prijevodom sa jednog jezika na drugi, ili sa jednog
formata u neki drugi oblik šifre.
2.2. Kompjutorsko-potpomognuta softverska tehnika (CASE)
Ponekad se također naziva poslovna svojstva alata; upućuje općenito na
proizvode dizajnirane da automatiziraju, pomognu voditi, i pojednostave
jedan ili više koraka u programskom razvoju.
2.3. Softver – sredstva menadžmentskih alata
Ona su dizajnirana da bi olakšala ponovno korištenje šifri. Cilj
upotrebe ovog softvera je da napravi nove aplikacije i podupre nove
poslovne procese mnogo brže i vjerodostojnije.
2.4. Alati za brži aplikacijski razvoj (RAD)
Odnose se na grupu metoda razvoja programa u kojima je glavni cilj
postići ekstremnu zbijen raspored. RAD se često koristi zajedno sa
objektno-orijentiranim programiranjima. RAD programi obično
uključuju čarobnjaka da generiraju aplikacije u što kraćem vremenu.
3. Programski jezici
Programski jezik je skup pravila, riječi, simbola i kodova koji se
upotrebljavaju za pisanje kompjutorskih programa. Prilikom
pisanja kompjutorskih programa koristi se programski softver –
program čija je glavna svrha omogućavanje korisnicima da
razvijaju kompjutorske programe u specifičnom programskom
jeziku.
3.1. Kategorije (vrste) programskih jezika
Programske jezike svrstavamo u tri kategorije:
 jezici niske razine
 jezici visoke razine
 jezici vrlo visoke razine (jezici četvrte generacije)
Programski jezici također mogu biti prirodni ili vizualni programski
jezici.
3.1.1. Programski jezici niske razine
Najstarije programske jezike koji su vrlo detaljni i strojno ovisni
nazivamo jezicima niske razine, a to su strojni i asemblerski jezici.
Nazivamo ih jezicima niske razine jer programeri u njih upisuju
instrukcije, odnosno naredbe na najnižoj razini kako bi ih računalni
hardver mogao lakše i brže razumjeti.
Strojni jezik je programski jezik niske razine pomoću kojeg se
kompjutorski programi pišu u kodovima, odnosno naredbama binarne
forme (0 i 1).
Asemblerski jezik je nastao na temelju strojnog jezika, ali
programerima omogućuje korištenje naziva umjesto brojeva, što je
jednostavnije i lakše za razumjeti i zapamtiti.
3.1.2. Programski jezici visoke razine
Programski jezici visoke razine jednostavniji su za pisanje programa,
traže manje detaljan kod, neovisni su o stroju, te puno bliži prirodnim
ljudskim jezicima (posebice u odnosu na strojne jezike).
U ovu klasu jezika uključuju se i oni poznatiji kao treća generacija
programskih jezika, kao što su BASIC, COBOL, Pascal, C, FORTRAN i
drugi. Noviji visoko razvijeni jezici su C++, C# i Visual Basic.
3.1.3. Jezici četvrte generacije
Jezici četvrte generacije još se nazivaju i jezicima vrlo visoke razine.
Bliži su prirodnim jezicima koje koriste ljudi nego jezici treće
generacije, jednostavniji su za korištenje i traže vrlo malo kodiranja od
programera i korisnika.
3.1.4. Prirodni jezici
Softver koji koristi sučelje prirodnog jezika omogućava ljudima
komunikaciju sa računalnim sustavom na njihovom urođenom jeziku.
Korisnik ovog sučelja ne mora poznavati pravila i sintaksu pojedinog
kompjutorskog jezika. Programiranje prirodnim jezicima je još u
početnoj, nerazvijenoj fazi.
3.1.5. Vizualni jezici
To su jezici koji se, za razvijanje grafičkog korisničkog sučelja, koriste
grafičkim programskim okruženjem. Programi pisani ovim jezikom
reagiraju i djeluju povodom različitih poruka ili radnji, npr. klikom na
neko dugme ili ikonicu. Prvi programski jezik koji je koristio vizualno
okruženje je Visual Basic, a kasnije C++, Pascal i Java.
3.1.6. Popularni programski jezici
Najpopularniji i najkorišteniji programski jezici današnjice su jezici
treće i četvrte generacije.
FORTRAN (FORmula TRANslator)
Najstariji programski jezik visoke razine, razvijen je još 1954. g. Koristi
se u aplikacijama za rješavanje znanstvenih, matematičkih i tehničkih
problema pomoću manipulacije formula. FORTRAN je još uvijek
popularan, osobito za znanstvene primjene koje zahtijevaju složene
matematičke izračune.
COBOL (Common Business-oriented Language)
COBOL je programski jezik za poslovne primjene. Razvijen je 1958. g. i
jedan je od prvih predstavnika programskih jezika visoke razine,
odmah iza FORTRAN-a. Namijenjen je razvoju poslovnih aplikacija
koje se izvode na velikim računalima.
PASCAL
Ovaj program je stvoren da bi ispunio potrebu alata za učenje za
stvaranje strukturiranog programiranja. Pascal podupire obilje tipova
podataka i posebno je prilagođen za matematičke i znanstvene
aplikacije.
BASIC i Visual Basic
Basic je stvoren za lakše učenje početničkog jezika. Radi vrlo dobro
gotovo na svim računalima i jedan je od najraširenije korištenih
instrukcijskih jezika za početnike.
Visual Basic je orijentiran na objekt, pripada u četvrtu generaciju
Basica i stvoren je da bi razvio sofisticirane aplikacije koje rade u
Microsoft Windows operativnom sustavu.
C, C++ i C#
C kombinira najbolje dijelove strukturiranih jezika visoke razine i
asemblerskih jezika, tj. relativno lako kodira i efikasno koristi izvore
računala. Iako originalno dizajniran kao sustav programiranja jezika,
C se dokazao kao snažan i fleksibilan jezik koji se koristi za različite
aplikacije. Najviše ga koriste stručnjaci da bi stvorili softver proizvode.
Novija verzija C jezika je nazvana C++, a najnovija verzija C jezika je
C# (C sharp).
JAVA
Java je objektno orijentiran programski jezik sličan C++, ali je
pojednostavljen da bi izbacio dijelove koji prouzrokuju zajedničke
programske greške. Java je trenutno jedan od najpopularnijih
modernih programskih jezika.
Pitanja:
Što je flowline?
Koje su 3 vrste prevoditelja jezika?
Kakve vrste grešaka u programu postoje?
Što je jednostavan primjer aplikativnog generatora?
Koje su 3 vrste programskih jezika?
Strukturni dijagrami predstavljaju
filozofiju.
Ponavljanje kao kontrolna struktura može biti u 2 oblika:
ili
.
8.
je vanjsko testiranje koje obavlja velik broj
volontera koristeći različite hardverske konfiguracije.
9. Programski jezik niske razine pomoću kojeg se kompjutorski
programi pišu u kodovima, odnosno naredbama binarne forme
(0 i 1) zove se
.
10. Najstariji programski jezik visoke razine, razvijen još 1954. g.
zove se
.
1.
2.
3.
4.
5.
6.
7.
Hvala na pažnji!!!