Utisci korisnika

Zaista sam prijatno iznenađena vašom brigom za korisnike, i zahvaljujem vam se na maksimalnoj podršci. Što se tiče vaših usluga sve je jasno, ja se uvijek vraćam i nastaviću…

"Slučajno sam na nekoj diskusiji Infostuda našla vaš link i prosto sam zapanjena, obradovana i neizmerno ponosna što i u SRBIJI možemo da se služimo e-learning opcijom usavršavanja."…


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: Softverski dizajn

Modul: Notacije crne kutije (Black box)

Autor: Test Instruktor

Naziv jedinice: Dijagram toka podataka (Data Flow Diagram)


Materijali vezani uz ovu lekciju:

- Test dijagram toka podataka (data flow diagram)
- Dijagram toka podataka (Data Flow Diagram) (PDF dokument)



U ovoj lekciji obrađivaćemo:

  • Pitanje izbora forme za opis
  • Pojam notacije crne kutije
  • Dijagram toka podataka (Data-Flow Diagram, DFD)
  • Primere i upotrebu DFD-a

 

Pitanje izbora selekcije

Postoji više različitih formi za opisivanje osobina softvera. Grubo ih možemo podeliti u dve grupe:

  • Forme crne kutije (Black Box), koje opisuju šta sistem radi i

  • Forme bele kutije (White Box), koje opisuju kako to sistem radi.

 

Postoji više različitih reprezentativnih formi, kao i varijacija nekih od najviše korišćenih formi. U tabeli 1 i tabeli 2 dat je pregled pogleda na model dizajna koji svaka od formi pruža i lista karakteristika dizajna koji se može predstaviti njenim korišćenjem.

Forma Reprezentacije

Pogledi (viewpoints)

Karakteristike dizajna

Data-Flow Diagram Funkcionalan

Tok informacija, zavisnost od operacija

Entity–Relationship Diagram

Modelovanje podataka

Statičke ralacije izmedju dizajn entiteta
State Transition Diagram Ponašanje State-machine model entiteta
Statechart

Ponašanje

System-wide model stanja, ortogonalnost, hijerarhija i apstrakcija
Structure Diagram (Jackson) Funkcionalnost, modelovanje podataka, ponašanje Forma sekvenciranja operacija, podataka i akcija
UML: Class Diagram Konstruktorski Interakcija između klasa i objekata
UML: Use Case Diagram Ponašanje i funkcionalnost Interakcija između sistema i ostalih učesnika
UML: Activity Diagram Ponašanje i funkcionalnost Sinhronizacija i koordinacija sistemskih aktivnosti


Tabela 1. Reprezentacije dizajna crne kutije (Black Box)[1]

Forma reprezentacije

Pogledi (Viewpoints)

Karakteristike dizajna

Strukturni grafikon

Funkcionalni i konstrukcijski

Poziv hijerarhije između podprograma, dekompozicija u podprogramske jedinice
Klasni i Objektni dijagram Konstrukcijski Relacije između elemenata, interfejsi i zavisnosti
Sekvencni dijagram Ponašanje Sekvence prosleđivanja poruka, interakcioni protokoli
Pseudocode Funkcionalni Algoritamska forma


Tabela
2. Dizajn reprezentacije bele kutije (White Box)[1]

Notacije crne kutije (Black Box)

Notacije crne kutije se bavi sa spoljašnjim osobinama elemenata modela dizajna. Koristi se da opiše šta će pojedini elemenat raditi, pre nego kako će nešto uraditi.

Izbor forme nije jedinstven i može mu se pristupiti sagledavajući i tehnološki i istorijski aspekt. Za početak razmotrićemo dijagram toka podataka (eng. Data Flow Diagram - DFD), oblik koji je bio primenjivan za sistemsko modelovanje pre pojave računara i koji je povezan sa arhitektonskim stilom. Dijagram entitet-veza (eng. Entity-Relationship Diagram - ERD) je takođe povezan za arhitektonski stil, mada na jedan drugačiji način (forma bazirana na transakciji). Razmotrićemo i dve forme ponašanja, State Transition Diagram (STD) i Statechart, svaku sa svojim prednostima i ograničenjima.

Jacksonov strukturni dijagram (eng. Jackson Structure Diagram) nudi sasvim drugačiji primer ovakvih notacija i više se bavi strukturom i stoga manje eksplicitno vezan sa bilo kojim drugim pogledom. Na kraju, postoji i Unified Modeling Language (UML), danas jedan od najzastupljenijih načina predstave[2].

Dijagram toka podataka (Data-Flow Diagram)

Data-Flow Diagram (u daljem tekstu - DFD) se uglavnom koristi za opis problemski orijentisanog pogleda na rad sistema. On omogućava opis zasnovan na modelovanju toka informacija oko mreže operativnih elementata, gde svaki element koristi ili menja informaciju koja ide ka tom elementu.

Korišćenje pojedinih DFD oblika za opis rada složenih sistema je gotovo sigurno postojalo i pre doba primene računara, a Page-Jones[3] je sugerisao da su ti oblici verovatno nastali na mnogim mestima i u različita vremena, ali potpuno nezavisno. Najranija referenca koja je raspoloživa datira iz 1920. godine.

Generalni pristup DFD koncepta efikasno je prikazan kroz primer koji je koristio Tom De Marco[5]. U uvodu svoje knjige "Strukturna Analiza i Specifikacija Sistema", on daje primer neformalnog dijagrama toka koji se koristi kako bi razjasnio uputstvo za sklopanje kajaka. Očigledno je da u ovom slučaju tok podataka predstavlja fizički oblik (sastoji se od podsklopova). Princip je isti kao i za softver, tako da ovaj primer pruža odličnu demonstraciju efikasnosti takvog oblika kada se koristi za opisivanje procesa. U tom smislu, jednostavan dijagram toka (slika 1.) pokazuje kako je ovaj obrazac može koristiti za opis konstrukcionog sklopa baštenske kuće.


Slika 1. Primer dijagrama toka – uputstvo za konstrukciju baštenske kuće
[1]


Čak je i ovaj jednostavan primer dovoljan da prikaže neke od prednosti DFD-a kada se koristi za opisivanje niza operacija. Drugim rečima, pokazuje da se odmah mogu videti preduslovi za bilo koju operaciju, tj. na prvi pogled. Na primer, ako uzmemo operaciju 5: "Fit doors to walls - postavka vrata", možemo videti da ista zavisi od završetka operacija 3 i 4, a može se videti i zašto.

Sekvencijalna lista akcija može dostaviti iste podatke, ali aspekt zavisnosti, koji se vidi kroz korišćenje DFD-a, uopšteno je manje jasan u takvoj formi. Koristi ovakve vizualizacije postaju još važnije za operacije koje uključuju puno veću kompleksnost od predhodno navedenog  primera.

DFD se u širokoj meri koristi za softverski dizajn tokom više godina, tako da se u literaturi može  pronaći veći broj varijacija sa tačnim oblicima simbola koji se koriste za crtanje DFD-a. Kroz ovu lekciju razmatreće se obrazac koji opisuje De Marco[5]. Postoji i drugi primeri formi, koji koriste više formalne notacije, obavljaju pomalo drugačiju ulogu u procesu dizajna, a koristi se u "Strukturnoj sistemskoj analizi i metodama dizajna" (eng. Structured Systems Analysis and Design Method[6]).

Forma DFD-a

DFD je grafička predstava, koja koristi samo četiri osnovna simbola. Zbog svoje vrlo apstraktne prirode, pod uslovima obezbeđenog nivoa opisa, uglavnom se koristi u vreme ranog stadijuma dizajna koji se često naziva "Analiza", u trenutku kada dizajnerski tim verovatno donosi neke od većih odluka arhitekturalnog dizajna.

Na slici 2 je prikazan primer korišćenja jednog DFD-a za opis rada sistema bankomata.


Slika 2.
DFD opis operacija pri radu jednog bankomata[1]

Četiri osnovna elementa koji se koristi u dijagramu su:

  • Krug - koristi se za označavanje jedne operacije i sadrži kratak opis te operacije;
  • Blok - upotrebljava se za označavanje spoljašnjih izvora ili odliva informacija;
  • Paralelne linije - koriste se za označavanje skladišta podataka ili fajlova;
  • Krive - koriste se za označavanje i protok informacija između ostale tri komponente.

 

Pogledajmo primer prikazan na slici 2. Operacija validacije zahteva ulaz iz kartice kupca ili od samog kupca u obliku ličnog identifikacionog broja ili PIN-a ili iz internog fajla. Prva dva od pomenutih ulaza se koriste za proveru autentičnosti i identiteta kupca, dok treći osigurava da je kartica, koja može biti izdana od strane različitih finansijskih institucija,  prihvatljiva za uređaj. Izlazi iz tog procesa se potom posmatraju sa aspekta prihvatanja (sledi izbor tražene transakcije od strane kupca) ili odbijanja (koji može uključivati povratak ili zadržavanje kartice). Čak i ako postoji dozvola da se nastavi dalje sa transakcijom, biće još validacionih procesa kako bi se osiguralo da je odabrana mogućnost dozvoljena za datog klijenta.

U suštini, DFD pruža "top-level" model kako dizajner namerava da radi bankomat. Akcenat je stavljen na opis delova domena (kupca, PIN, transakcije), pre nego na rešenje i kao takav identifikuje glavne arhitekturalne zadatke za bankomatski sistem.

Hijerarhijsko proširenje DFD-a

Važna karakteristika DFD-a je da može biti proširen u hijerarhijskom smislu, gde se operacije (krug na slici) mogu opisuju narednim DFD modelom. Kao primer, na slici 3. je pokazana  ekspanzija kruga 1 sa slike 2, korišćenjem istih simbola. Takođe ističe se važnost  brojčanih oznaka koje se koristi za identifikovanje krugova, budući da identitifikacioni broj pokazuje nivo kruga i njegov položaj u proširenom opisu sistema. U našem primeru korišćene su oznake 1.1, 1.2 i 1.3.

Dakle, u ovom primeru, dizajner je prema sopstvenim idejama proširio operaciju "Validate customer access". Treba primetiti da za operaciju u krugu 1.3, gde nema namere da se pokaže struktura kontrole toka koja je vezana sa mogućim iteracijama zahtevanim radi dozvole kupcu tri pokušaja za unos PIN koda. DFD se ne odnosi na kontrolnu logiku koja je su uključena u obavljanje ove operacije, a njene detalje će biti potrebno obraditi kasnije, koristeći druge forme za opis.

Dok je značaj ekspanzije u omogućavanju postupnog usavršavanje dizajna, sa druge strane to može dovesti do problema nedoslednosti. Promene mogu biti izvedene na nižem nivou (eng. lower-level) dijagrama koji menja broj i/ili formu informacije o protoku (krive linije) prethodnog (starijeg) dijagrama. Proveru konzistentnosti takvih promena (kao i automatsko numerisanje krugova), generalno se vrši  putem specijalizovanog alata koji pomaže pri izradi DFD-a. 

 
Slika 3. Proširene funkcije kruga 1 u DFD modelu bankomata

DFD gledište

Dijagram toka podataka se prvenstveno bavi opisom arhitekture nekog sistema u smislu njegove funkcije, u kojoj se identifikuju operacije koje sistem treba da izvrši, koristeći apstraktni nivo opisa. Elementi dijagrama toka se koriste za identifikuju informacije koje je potrebna za izvođenje odgovarajuće operacije, kao i onih koje su generisane na osnovu njih.

Pitanje apstrakcije postaje važno kada se radi o izboru konvencija koje bi trebalo koristiti pri crtanju dijagrama. Slika 3 upravo pokazuje to pitanje: krug 1.3 opisuje broj dozvoljenih pokušaja u kojima korisnik unosi PIN, ali dijagram ne pokazuje iteraciju na direktan način. U istom trenutku, a kada se radi o sekvenci informacija, oblik i dijagram ne daje nikakve informacije o tome da li se operacija izvodi sekvencijalno ili paralelno. Konvencija obično podrazumeva sekvencijalan niz operacija, ali DFD se može podjednako koristiti za opisivanje paralelnih operacija.  Neke dizajnerske metode upravo koriste ove prednosti DFD-a.

Korišćenje DFD-a

Zbog svoje apstraktne prirode i sposobnosti da opiše funkciju, DFD se široko koristi za inicijalno modelovanje sistema (često nazivano i analizom). To je glavna komponenta široko korišćenog SSA/SD (Structured Systems Analysis/Structured Design) pristupa, a takođe se koristi i u raznim izvodima ovog metoda.

U takvoj ulozi, jedna od prednosti korišćenja DFD-a je da se može relativno lako shvatiti od strane korisnika, budući da se koristi za modelovanje problema, pre nego na računarski-orijentisano rešenje. De Marco[5] utvrđuje razliku između "logičnog" i "fizičkog" DFD-a, što je korisno uzeti u obzir.

Fizički oblik DFD-a se koristi za modelovanje sistema u smislu njegovih fizičkih entiteta, pre nego njihovih funkcija. Na primer, slika 4. pokazuje fizički DFD koji se koristi za modelovanje rada rezervacija u nekoj turističkoj agenciji. Oznake na krugovima u ovom dijagramu opisuju ko izvršava posao, pre nego što opisuju posao u njegovim detaljima (Na primer, Roger radi na poslovima koji se tiču železničkog prevoza).


Slika 4. Fizički oblik DFD dijagrama koji opisuje sistem rezervacija
u nekoj turističkoj agenciji

Slika 5. prikazuje ekvivalentan logički DFD, u kojoj su sada krugovi označeni da pokažu šta se dešava sa podacima, pre nego ko izvršava taj posao. Ovo je više apstraktni i više struktuiran pogled u odnosu na dijagram sa slike 4, ali jasno se vidi da proizilazi iz pomenutog dijagrama. Oba od tih oblika su važni: fizičkog DFD pomaže kod inicijalnog modelovanja i zadataka komunikacije sa naručiocima, dok je logički DFD potreban kada dizajner počinje da gradi arhitekturalni model u cilju izgradnje celokupnog sistema (U ovom slučaju, sistem će verovatno biti neka vrsta automatizovanog sistema rezervacija).


Slika 5. Logički oblik DFD dijagrama koji opisuje sistem
rezervacija u nekoj turističkoj agenciji

Kao što je pomenuto ranije, drugi oblici DFD-a se koriste za pomoć pri detaljnijem modelovanju dizajna, u tački koja ističe opštu korisnost ovog alata. Ovo zauzvrat odražava činjenicu da je često relativno lako definisati akciju (kao što je naglasak starijih programskih jezika na obezbeđivanju formi koji opisuju akciju, umesto na strukture podataka). Iz svega toga proističe da se DFD može relativno lako razumeti, i često se može mnogo lakše razviti u poređenju sa drugim formama opisa.

Reference:

1. David Budgen, Software design, Addison Wesley, 2003
2. Rumbaugh J., Jacobson I. and Booch G. (1999), The Unified Modeling Language Reference Manual. Addison-Wesley
3. Page-Jones M. (1988). The Practical Guide to Structured Systems Design, 2nd edn. Prentice-Hall
4. Longworth G. (1992). Introducing SSADM Version 4. Blackwell
5. De Marco T. (1978). Structured Analysis and System Specification. Yourdon Inc.
6. Longworth (1992), Structured Systems Analysis and Design Method


Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:0