PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na prim

Similar documents
Programiranje III razred

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

Podešavanje za eduroam ios

STRUČNA PRAKSA B-PRO TEMA 13

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

Port Community System

Rešavanje problema pomoću računara

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Uvod u relacione baze podataka

PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum:

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

11 Analiza i dizajn informacionih sistema

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ

Bušilice nove generacije. ImpactDrill

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

SAS On Demand. Video: Upute za registraciju:

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

Nejednakosti s faktorijelima

Otpremanje video snimka na YouTube

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

FAKULTET ZA POSLOVNU INFORMATIKU

Mogudnosti za prilagođavanje

Priprema podataka. NIKOLA MILIKIĆ URL:

PROJEKTNI PRORAČUN 1

Direktan link ka kursu:

Klasterizacija. NIKOLA MILIKIĆ URL:

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice

Dr Smiljan Vukanović, dis

1. Instalacija programske podrške

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

BENCHMARKING HOSTELA

DIPLOMSKI RAD iz predmetа Razvoj veb aplikacija

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

Izveštaj o bugu (defektu)

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

STRUKTURNO KABLIRANJE

SOFTVERSKO INŽENJERSTVO INTELIGENTNIH SISTEMA

Iz predmeta " Osnovi kompjuterske tehnologije Hardver (mikro)procesor operativna (radna) memorija spoljna (masovna, diskovna) memorija Softver

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

Struktura i organizacija baza podataka


CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

DEFINISANJE TURISTIČKE TRAŽNJE

DC MILIAMPERSKA MERNA KLJESTA,Procesna merna kljesta KEW KYORITSU ELECTRICAL INSTRUMENTS WORKS, LTD. All rights reserved.

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

Materijali za pripremu usmenog ispita Predmet: Procesi razvoja softvera

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

Mindomo online aplikacija za izradu umnih mapa

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Albert Farkaš SUVREMENI TRENDOVI RAZVOJA INFORMACIJSKIH SUSTAVA

Sa druge strane neproto~no organizovan sistem ~ije je vreme ciklusa 25 ns ima}e propusnost od

Advertising on the Web

TEHNO SISTEM d.o.o. PRODUCT CATALOGUE KATALOG PROIZVODA TOPLOSKUPLJAJUĆI KABLOVSKI PRIBOR HEAT-SHRINKABLE CABLE ACCESSORIES

Projektovanje softvera. Uvod

TESTIRANJE SOFTVERA SANJA MIJALKOVIĆ 1061/2013

Izrada kalkulatora u C#

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES

ARHITEKTURA RAČUNARA

Uvod u programske pakete

Tutorijal za Štefice za upload slika na forum.

UNIVERZITET SINGIDUNUM. Tema: ERP Enterprise Resource Planning Istorijat razvoja, polje primene i novi oblici poslovanja primenom cloud rešenja

Sadržaj. Projektovanje informacionih sistema Information Systems Design - uvodno predavanje - Prof. drlatinović Tihomir

ANALIZA PRIMJENE KOGENERACIJE SA ORGANSKIM RANKINOVIM CIKLUSOM NA BIOMASU U BOLNICAMA

FAKULTET TEHNIČKIH NAUKA

3D GRAFIKA I ANIMACIJA

Mašinsko učenje Uvod. Bojan Furlan УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ

Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» JOSIP ŠUGIĆ CMM METODA ZA OSIGURANJE KVALITETE SOFTVERA

SQL standard podrzava sledece vrste ogranicenja: Ogranicenja domena Ogranicenja tabela i kolona Opsta ogranicenja

Projektovanje softvera. Dijagrami slučajeva korišćenja

Katedra za menadžment i IT. Razvoj poslovnih informacionih sistema

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

РАЧУНАРСТВО И ИНФОРМАТИКА СКРИПТА

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

CRNA GORA

IZRADA TEHNIČKE DOKUMENTACIJE

KABUPLAST, AGROPLAST, AGROSIL 2500

Dr.Miroljub Banković, prof. Kragujevac, 2008.

RANI BOOKING TURSKA LJETO 2017

Transcription:

PROJEKTOVANJE SOFTVERA

PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na primer: prevodioci za pojedine jezike, komunikacioni program i drugo.

PROJEKTOVANJE SOFTVERA Aplikativni softver piše sam korisnik ili ga kupuje od nekog proizvođača, radi rešavanja određenog zadatka iz domena svog poslovanja.

PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, još uvek u značajnoj meri zavise od inventivnosti i veštine programera. Da bi se pomoglo programerima u pisanju softvera ustanoljene su neka osnovna pravila za pisanje softvera.

DIZAJN SOFTVERA Uz pomoć ustanovljenih pravila pisanje softvera se približava inženjerskim disciplinama i tako otklanjaju problemi u pisanju softvera, kao što su: kašnjenje softverskih projekata, neispunjavanje osnovnih funkcija koje se očekuju od softvera, nekorektno ponašanje u nestandardnim situacijama, složeno upravljanje i drugo.

FAZE DIZAJNA SOFTVERA definicija programa, modularni dizajn, razmatranja o programskom jeziku, pisanje programskih specifikacija, provera dizajna i pregled dizajna.

FAZE DIZAJNA SOFTVERA Definicija programa zahteva pažljivo razmatranje prioriteta, svrhe i funkcije svakog programa, koji će ući u aplikaciju. Nakon definisanja programa, analitičar ga Nakon definisanja programa, analitičar ga pažljivo deli na specifične zadatke ili module.

FAZE DIZAJNA SOFTVERA Posle identifikacije modula, analitičar se koncentriše na detalje svakog modula, obraćajući posebno pažnju na načine na koji su moduli međusobno vezani. Celokupna kolekcija definicija programa i modula čini programske specifikacije.

FAZE DIZAJNA SOFTVERA Kada su moduli specificirani, analitičar može da razmatra koji programski jezik bi sistem mogao da koristi za pisanje potrebnog programa. Ovo se različito rešava u različitim organizacijama.

FAZE DIZAJNA SOFTVERA U jednim se koristi samo jedan programski jezik za sve programe, dok se u drugim organizacijama ostavlja velika sloboda analitičaru u izboru odgovarajućeg programskog jezika, čak postoji mogućnost i korišćenja različitih programskih jezika u zavisnosti od potreba pojedinačne aplikacije (aplikativnog sftvera).

FAZE DIZAJNA SOFTVERA Na kraju, ceo sistem se podvrgava kontroli i reviziji dizajna. Revizija dizajna daje poslednju šansu upravi i korisnicima da pregledaju predloženi sistem, uvere se da on ispunjava sve njihove potrebe i da podrazumeva prihvatljive troškove. Menadžment može još uvek da odbaci sistem ili da zahteva modifikacije, pre nego što ovlasti njegovu primenu.

FAZE DIZAJNA SOFTVERA Faza dizajna se završava pisanjem programskih specifikacija. Specifikacije uključuju ulaz, bazu podataka, izlaz, mrežu i dizajn softvera.

U izradi programa postoje sledeće faze: postavka problema, projektovanje programa, razvoj programa, ispitivanje performansi programa i završno uobličavanje programa.

Kreiranje liste programa Zahteva od analitičara da pregleda dijagram toka podataka (DFD - data flow diagram) za predloženi sistem, a isto tako i rečnik podataka i formate izveštaja (iz dizajna izlaza), šeme (iz dizajna baze podataka) i kolekciju podataka za formate ekrana (iz dizajna ulaza).

Kreiranje liste programa Za vreme pregleda, analitičar izdvaja tačku od koje sistem treba da proizvodi izveštaje i ispituje svaku aktivnost procesa kao potencijalni program. Analitičar traži osnovne procese, koji dalje nisu deljivi. Ovi procesi su idealni kandidati za programe.

MODULARNI DIZAJN

MODULARNI DIDZAJN Posle definisanja glavne svrhe svakog programa, analitičar deli svaki program u module, od kojih svaki izvršava jednu funkciju i ima početnu i završnu tačku, koje je moguće identifikovati. Svaka od ovih funkcija formira poseban modul, koji je povezan sa drugim modulima na određeni način.

Razlozi koji govore u prilog modularnoj izgradnji programa 1) kod velikih nesegmentiranih programa, troši se mnogo vremena na njihovo održavanje, 2) kod nemodularnih programa mnogo teže se pronalaze greške,

Razlozi koji govore u prilog modularnoj izgradnji programa 3) modulnost u dizajnu programa omogućuje: - jednostavnost izrade i najsloženijih programa, - veću pouzdanost programa, - smanjenje razvojnih troškova, - lako proširenje programa, - lako uključivanje novih modula, - lakšu kontrolu izrade programa.

MODULARNI DIZAJN Ne koristi svaka organizacija analitičara za modularni dizajn. Neke organizacije dodeljuju posao modularnog dizajna programerima, a koriste analitičare samo da pregledaju dizajne. U malim organizacijama programer, odnosno analitičar može sam da uradi sve.

MODULARNI DIZAJN Modul čini grupa izvornih instrukcija smeštenih između određenih granica, koje imaju svoje ime. Modulima se daju imena, koja odražavaju njihove aktivnosti (npr. otvaranje, štampanje podataka, zatvaranje i dr.). Preko imena modula vrši se njegovo pozivanje.

MODULARNI DIZAJN Funkcija modula je da izvrši određenu transformaciju ulaza u izlaz.

MODULARNI DIZAJN Na primer, kod postupka ažuriranja neke datoteke, najčešće logičke celine koje mogu da predstavljaju module su: inicijalizacija i otvaranje datoteke, formiranje novih slogova, ažuriranje postojećih slogova (izmena sloga i brisanje sloga) i zatvaranje datoteka. Moduli su odvojene, posebne funkcijske celine, koje je moguće identifikovati.

MODULARNI DIZAJN Da bi se prilagodili standardima struktuirane metodologije, svaki modul treba da sadrži samo jednu ulaznu i jednu izlaznu tačku. Najbolji moduli sadrže jedan ulaz, jedan izlaz i Najbolji moduli sadrže jedan ulaz, jedan izlaz i jednu svrhu.

MODULARNI DIZAJN Podela programa u module pojednostavljuje posao, čineći ga lakšim za razumevanje. Osim toga, ispitujući svaki modul posebno, analitičar može lakše da uoči moguće logiške greške. Što se pre otkriju nastale greške, to ih je lakše popraviti.

Spajanje modula Posle definisanja i usavršavanja svih modula, analitičar počinje važan posao u određivanju veza koje spajaju module. Glavno pravilo je da očuvamo veze između Glavno pravilo je da očuvamo veze između modula na minimumu.

Spajanje modula Koristimo termin spajanje da bi uputili na mere kontrole i nezavisnost između modula. Spajanje nam dozvoljava da se moduli organizuju na način da se smanji veza između modula na minimum.

Spajanje modula Programi su kolekcija modula, povezanih međusobno u hijerarhijskom redosledu ili u obliku stabla. Neki moduli služe kao roditelji i oni kontrolišu Neki moduli služe kao roditelji i oni kontrolišu samo onu decu module, koji su direktno pod njihovom nadležnošću.

KONTROLNE STRUKTURE Svi programi mogu da se napišu u obliku jedne od tri osnovne kontrolne strukture: sekvence, odluke i ponavljanja ili iteracije. Kontrolna struktura sekvence opisuje serije akcija Kontrolna struktura sekvence opisuje serije akcija (tj. naredbi), koje slede jedna iza druge u linijskom redu, zbog čega se ova kontrolna struktura naziva i linijska struktura.

KONTROLNE STRUKTURE Osnovna karakteristika programa sa ovom kontrolnom strukturom jeste da se pri jednom izvršavanju programa svaka naredba izvrši jedanput. U jednostavnim primerima i ceo program može obrazovati linijsku strukturu.

KONTROLNE STRUKTURE Kontrolna (razgranata) struktura odluke opisuje situaciju u kojoj akcija zavisi od toga koji se od dva uslova ispunjava. Postoje dve grane, jedna grana označena sa DA, Postoje dve grane, jedna grana označena sa DA, koja se izvršava kada je ispunjen dati uslov i druga označena sa NE, koja se izvršava kada nije ispunjen dati uslov.

KONTROLNE STRUKTURE Ponavljanje (iteracija ili petlja) predstavlja treću vrstu kontrolne strukture. Naziva se i ciklička struktura. Mogućnost obrazovanja programskih ciklusa znatno smanjuje dužinu programa.

KONTROLNE STRUKTURE Za organizaciju programskog ciklusa moramo poznavati koje naredbe čine ciklus i kako se izlazi iz ciklusa. Naredbe koje čine ciklus zovemo telo ciklusa, a uslov pod kojim se izlazi iz ciklusa zovemo izlazni kriterijum. Prema tome kakav je izlazni kriterijum, cikluse delimo na brojačke i uslovne.

KONTROLNE STRUKTURE Ciklus u kome je broj ponavljanja ciklusa kriterijum za izlazak iz ciklusa zovemo brojački ciklus. Uslovni ciklus predstavlja zapis po kome se blok naredbi izvršava sve dok je uslov tačan. Kada uslov postane netačan, ciklus se završava i program nastavlja izvršavanje naredbom koja sledi iza tela ciklusa.

RAZMATRANJA O PRIHVATANJU PROGRAMSKOG JEZIKA

Izbor odgovarajućeg programskog jezika Pošto menadžment odobri sistemski dizajn, analitičar bira odgovarajući programski jezik koji će se koristiti. U različitim organizacijama postoje različiti pristupi razmatranju o prihvatanju nekog programskog jezika. Ako postoji neko ograničenje, analitičar može da izabere programski jezik koji najviše odgovara aplikaciji.

PROGRAMSKI JEZICI Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski zavisne (mašinski i simbolički jezik) mašinski nezavisne (jezici višeg nivoa)

MAŠINSKI JEZICI Izgrađeni su nad binarnom azbukom (0,1) Nije potrebno prevođenje Vezan je za konkretan računar (svaka Vezan je za konkretan računar (svaka familija procesora ima svoj mašinski jezik)

Mašinski zavisni jezici Simbolički jezici Uvode mnemotehničke skraćenice za operacije i simboličke oznake podataka Jednoj naredbi mašinskog jezika odgovara jedna naredba simboličkog

ASSEMBLER Program koji prevodi simbolički u mašinski jezik zove se asembler. Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara.

ASSEMBLER Obično se koriste za programiranje računara za interakciju računara sa I/O uređajima : štampačima skenerima uređajima za čuvanje podataka,... Njime su pisani programi poznati kao drajveri.

JEZICI VIŠEG NIVOA Bliži su prirodnom jeziku, čitljiviji i lakši za pisanje programa. Imaju visok stepen nezavisnosti od arhitekture računara

PREMA NAČINU REŠAVANJA PROBLEMA Proceduralne dajemo računaru kompletan skup instrukcija kojim se rešava problem, tj. dajemo mu algoritam za rešavanje zadatka (pa se zovu i algoritamski). Tu spadaju: Pascal, Cobol, C, Basic, Fortran, mašinski,... Deklarativne opisujemo šta znamo o problemu i šta želimo da dobijemo rešavajući ga, a sistem (interpreter) sam dolazi do postupka za rešavanje problema. Primeri deklarativnih jezika su Prolog i SQL.

NA OSNOVU NAČINA ALOKACIJE MEMORIJE: Programske jezike sa statičkom alokacijom memorije (C++, C#, Java, Pascal,...). Programske jezike sa dinamičkom alokacijom memorije (Ruby, Lisp, JavaScript i Python).

PODELA PROGRAMSKIH JEZIKA Objektno orijentisani jezici (60.1%) Proceduralni jezici (35.0%) Funkcijski jezici (3.3%) Logički jezici (1.6%)

FUNKCIJSKI JEZICI Funkcije se primenjuju na argumente i vrednosti. Vraćene vrednosti se koriste kao argumenti za druge funkcije. Primer je Lisp.

PROCEDURALNI JEZICI Menjali su se i razvijali tokom vremena. Fortran i Cobol spadaju u prve jezike višeg nivoa. Dolazi do razvoja strukturiranih programskih jezika (Algol, Pascal,...) Sledeća faza je razvijanje modularnih programskih jezika koji funkcionišu tako što razbijaju program na manje celine (module) gde svaki modul obavlja određenu funkciju.

OBJEKTNO ORIJENTISANI JEZICI Jezici poslednje generacije. Objekti su jedinice informacija koje sadrže podatke kao i metode za procesiranje i rad sa podacima. Da bismo koristili gotov objekat ne moramo da znamo kako je on pravljen niti šta je u njemu, već samo kako i šta on radi. U OO jezike se ubrajaju : Java, C++, Python...

LOGIČKI PROGRAMSKI JEZICI Pripadaju klasi deklarativnih (neproceduralnih) programskih jezika. Zasnovani su na predikatima (logičkim izrazima). Prolog (PROgramming in LOGic) Datalog

PROGRAMSKI JEZICI Razvoj programskih jezika je veoma brz. Posebno je uslovljen razvojem hardvera i komunikacija. Sve navedene podele nisu striktne, jer razvojem neki programski jezik može da preuzme dobra rešenja iz drugih jezika.

www.tiobe.com TIOBE index

www.tiobe.com TIOBE index

www.tiobe.com TIOBE index

www.tiobe.com TIOBE index

PROGRAMSKE SPECIFIKACIJE Imaju formu izveštaja sa sledećim elementima: sistemski pregled, dijagram toka podataka, format izlaznog izveštaja, šema baze podataka, izgled ekrana ili formati ulaza, definicije programa, opisi modula.

PROGRAMSKE SPECIFIKACIJE Sada kada ima definisane programe, planirane module, izabrane kontrolne strukture, razložene i obrađene module, utvrđene veze između modula i izabrani programski jezik, analitičar sjedinjuje izlaze iz svih drugih faza dizajna i obrazuje programske specifikacije.

SISTEMSKI PREGLED U ovom delu procesa dizajna prikuplja se i sumira sav materijal koji je proizveden u toku prethodnih faza dizajna. Sistemski pregledi često uključuju i opise metoda kolekcije podataka i sistemskih operacija, objašnjenja svrhe svakog programa unutar sistema i šemu programiranja - plus imena analitičara, programera i svih individualnih programa.

DIJAGRAM TOKA PODATAKA Razvijen u toku analize i možda usavršen u toku dizajna, DFD (dijagram toka podataka) orijentiše čitaoca gde se on nalazi u sistemu.

FORMAT IZLAZNOG IZVEŠTAJA Razvijeni na početku faze dizajna, formati izlaznog izveštaja, takođe, obrazuju deo programskih specifikacija.

ŠEMA BAZE PODATAKA Četvrta komponenta programskih specifikacija je šema baze podataka, koja se može napisati korišćenjem, na primer, Oracle-ovog SQL-a.

IZGLED EKRANA ILI FORMATI ULAZA Dizajni ekrana specificiraju zahteve koji su vezani za unos podataka. Dizajn ekrana treba da specificira tipove podataka (numerički, alfanumerički ili drugi, koje podržava DBMS) i da definišu zahteve.

DEFINICIJA PROGRAMA Definicije programa i opisi modula završavaju specifikaciju. Definicija programa je doslovan opis cilja i svrhe programa.

PROVERA DIZAJNA Obezbeđuje pažljivo ispitivanje sistemskog dizajna i programskih specifikacija. U toku ove faze analitičar, programer (ili vođa U toku ove faze analitičar, programer (ili vođa programerskog tima), drugi analitičari i nekada i korisnik kritikuju specifikacije u pokušaju da lociraju greške modula, da provere dovršenost i da osiguraju jasnoću konačnog programa.

PROVERA DIZAJNA Kao zaključak provere analitičar može prostudirati probleme, napraviti potrebne ispravke i onda pustiti ispravljen sistem i programske specifikacije na dalje razmatranje. Ako tim nađe dosta grešaka može da predvidi da se izvrši naknadna provera.

PROVERA DIZAJNA Pošto provera ne bi trebalo da bude ocenjivanje analitičarevog rada, već bi trebalo da osigura kvalitet, onda nikakav formalan rezime ne ide menadžmentu. Provera nije test softvera, ali je prilika da se uoče greške, pre nego što one porastu. Testiranje je važan deo svih projekata razvoja softvera, ali se ostvaruje u trećoj fazi, implementaciji softvera.

PREGLED DIZAJNA Kada analitičar ispravi sve greške i doda sve nedostajuće elemente, tada menadžment, korisnici i analitičar izvršavaju formalan pregled dizajna. Tokom ove prezentacije sistema svi proučavaju programske specifikacije.

PREGLED DIZAJNA Analitičari bi trebalo da povedu dosta računa tokom ovog pregleda, zato što on obezbeđuje poslednju šansu svim zainteresovanim stranama da provere da li će sistem ispuniti potrebe organizacije uz prihvatljive troškove i planirana ograničenja.

PREGLED DIZAJNA U nekim slučajevima, promene u poslednjem času mogu odložiti razvijanje sistema, ali obavljanje promena će sada manje koštati nego kada bi se one vršile pošto programiranje otpočne. Ako se svi slažu da sistem treba da produži da se razvija, memorandumom se formalno ovlašćuje sledeći korak.