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