Faze razvoja programskog sistema
Programiranje je složen proces koji se odvija u više faza koje možemo sistematizovati na sledeći način:
· Analiza programskog zadatka, tj. definicija problema i određivanje konačnog cilja
· Razrada algoritma, tj. rešavanje zadatka
· Kodiranje programa i prevođenje na mašinski jezik
· Testiranje programa i otklanjanje grešaka
· Izrada konačne dokumentacije
· Upotreba i održavanje programa
Granice između ovih faza nisu krute i nisu jasno definisane, a kvalitet programiranja zavisi od realizacije ovih faza.
Ne postoje precizna pravila za dobro programiranje, već ona više liče na preporuke i uputstva zasnovane pre svega na iskustvu.
Prvo pravilo koje bi početnici trebali da poštuju glasi: Ne krši prvila dok ih dobro ne upoznaš! Dok ne napišete veliki broj dobrih programa, neophodno je pridržavati se pravila i koristiti odgovarajuću literaturu odnosno tuđa iskustva.
Drugo pravilo glasi: Probleme treba rešavati pre svega postupno i po određenim metodama. To znači da ne treba skraćivati niti preskakati pojedine faze u rešavanju programa. Nepoštovanje ovog pravila obično dovodi do učestalih grešaka u programu, nepouzdanosti programa, do programa čija je sturktura zamršena i teško razumljiva pa je i održavanje takvog programa teško.
Prvi korak u rešavanju problema mora biti definicija problema. Ona predstavlja kratak sadržaj i prikaz celine i osnova je za dalji rad, i ujedno predstavlja prvi deo programske dokumentacije.
Definicija problema
Da objasnimo kako se svi problemi rešavaju pomoću računara. Svi problemi se mogu podeliti u dve gurpe:
· Problemi za nalaženje i
· Problemi za dokazivanje
Kod problema za nalaženje (problema za računanje) osnovni zadatak je određivanje nepoznate veličine na osnovu zadtih podataka i skupa jasno definisanih uslova koji povezuju ove podatke i nepoznatu veličinu. Primer za ovakav problem je sledeći:
Ako su poznate katete pravouglog trougla (a i b) odredi hipotenuzu (c). Zadati podaci (ulazni podaci) su a i b. Opšti uslovi koji moraju biti zadovoljeni su: a>0, b>0, c>0 i pri tome c2=a2+b2. Veličina koja se traži, tj izračunava je hipotenuza c (izlazni podatak).
U problemima za dokazivanje potrebno je dokazati da li određeni podaci zadovoljavaju zadate uslove. Kod primene u računarima ovo su zapravo problemi odlučivanja kod kojih se na osnovu podataka (ulaza) i uslova donosi odluka (izlaz) u obliku odgovora DA-NE ili TAČNO-NETAČNO. Primer za ovakav problem je sledeći:
Neka su zadate stranice trougla a, b i c i neka je c>a i c>b. Dokazati da je trougao pravougli. Zadati tj. ulazni podaci su a, b i c. Opšti uslovi su a>0, b>0, c>0 i posebni tj. zadati uslovi su c>a i c>b. Izlaz koji se određuje je zaključak DA ako je c2=a2+b2 ili NE ako je c2¹a2+b2.
Iz svega ovoga se može zaključiti sledeće: Problem se može rešavati samo ukoliko se poznaje, tj. ako su definisane njegove osnovne komponente: ulaz, uslovi i izlaz.
Prva faza u rešavanju zadataka pomoću računara jeste upravo definisanje problema. U ovoj fazi treba precizno odrediti sledeće:
· Šta su ulazi tj. početno stanje sistema
· Šta su željeni izlazi tj. konačno stanje sistema
· Koji su uslovi u kojima se odvija računski proces
· Koje veze postoje između ulaza i izlaza, tj. mora se odrediti matematički model sistema
· Napraviti određene podudarnosti sa već rešenim problemima i razmatrati razne primene
· Uvesti vodeću ideju kako i šta uraditi sa ulazima da bi se rešio problem
· Napraviti globalni algoritam u obliku spoljne specifikacije