Kurs: Softverski dizajn Materijali vezani uz ovu lekciju: - Test strukturni dijagram (structure chart) - Strukturni dijagram (Structure Chart) (PDF dokument) U ovoj lekciji obrađivaćemo:
Notacije bele kutije (White box)Notacije bele kutije se u najvećoj meri bave opisom pojedinih aspekta detaljne realizacije elementa dizajna. Shodno tome, notacije bele kutije se vezuju za konstrukciono i funkcionalno gledište. Ipak, tu postoji dizajn proces koji se izvodi u cilju transformacije opisa bele kutije u finalni sistem (u suštini različite aktivnosti detaljnog dizajna programiranja). Strukturni dijagramStrukturni dijagram pruža vizuelni index za hijerarhiju procedura unutar programa, koristeći format stabla. Stoga možemo reći da je u pitanju forma čije je je rešenje orjentisano ka opisu (eng. solution-oriented form), a kada se poveže sa algoritamskim obrascem kao što je pseudocode, može se koristiti da obezbedi prilično sveobuhvatan plan implementacije za programera. Početak razvoja dijagrama leži u istraživanju koji je izveo IBM u cilju razumevanja problema sa kojim su se sreli pri dizajnu OS/360 operacionog sistema, koji na neki način predstavlja prvi pravi primer "većeg" programiranja. Glavni problem sa kojim su se susreli istraživači, identifikovan je kao kompleksnost, a strukturni dijagram je bio jedan od predloga pri rešavanju i razumevanju strukture programa[1]. Strukturni dijagram osigurava sredstva za snimanje detalja programske strukture u formi koja je od velike vrednosti svima koji žele da razumeju njen rad. To je posebno korisno održavanju, jer oni moraju znati generalnu arhitekturu nekog dizajna, kako bi promene koje rade bile u skladu sa formom. Forma strukturnog dijagramaStrukturni dijagram koristi notaciju sličnu stablu za opis hijerarhije procedure (podprograma) u uslovima pozivanja relacija između njih (eng. call graph). Ističe zavisnost procedura na nižim nivoima koje pokreće. Slika 1. prikazuje jedan primer strukturnog dijagrama, a tri glavne komponente su:
![]()
Postoji nekoliko konvencija koje se mogu identifikovati na ovom primeru. Tri najočiglednije su:
Forma strukturnog dijagrama je takođe i hijerarhijska, u smislu da svaki blok na dijagramu može sam biti proširen koristeći istu formu, iako se ovo uobičajeno koristi samo na blok nacrtan na najnižem nivou. Na slici 1. procedura ReadNextToken je očigledan kandidat za takav tretman, budući da da izvršava poziv drugih procedura u obavljanju svojih zadataka. Alternativa notacija koja se ponekad koristi za crtanje strukturnog dijagrama je prikazana na slici 2 i više podseća na onu koju je izvorno predložio Stevens[1]. Umesto upisivanja teksta u dijagramu kao parametar toka (koji brzo postaje težak i naporan), ovaj obrazac koristi posebnu tabelu koja pokazuje parametre za svaku proceduru. ![]()
Jedna od prednosti gore prikazanog obrasca je da lako može biti proširen za korišćenje sa programskim jezicima koji podržavaju lokalne stalne strukture podataka, kao što su Java, C ++, Ada, Modula-2. Pri korišćenju strukturnog dijagrama za snimanje dizajna programa pisanog u takvom jeziku, treća kolona se može dodati u tabeli, u kojoj se beleže detalji svake lokalne ili promenljive instance koja se koristi u proceduri. Pri projektovanje za takve programske jezike korišćenje direktne reference na takve strukture je važna praksa i jedna koja podržava skrivanje informacija. Takođe, važno je beležiti detalje kao što je obrazac za direktan pristup kako bi se objasnilo korišćenje takve prakse. Gledišta strukturnog dijagramaGlavna uloga strukturnog dijagrama je da opiše način na koji je program sastavljen od skupa procedura. Njegova primarna osobina je opis procedura funkcija i povezivanja sa drugim procedurama kroz pozivanje, iako se samo ovo drugo beleži, bez pokušaja da se naznači bilo šta o frekvenciji ili redosledu poziva. Bez obzira što se beleži i prenos podataka preko parametara, to nije primarna funkcija dijagrama. Strukturni dijagram sadrži neke informacije o organizaciji programa, i zato takođe može pružiti određenu količinu konstrukcionih informacija. Primena strukturnog dijagramaStrukturni dijagram pruža relativno nizak stepen apstraktnosti od konačne implementacije rešenja i kao što smo videli ranije, može kreirati koristan index za strukturu programa (postoje i alati za "reverse engineering" programskog kod-a u cilju konstruisanja detalja strukturnog dijagrama). Iz tog razloga, on ne daje samo plan koji programer koristi, već takođe daje informacije koje će biti korisne za održavanje. Reference:1. Stevens W.P., Myers G.J. and Constantine L.L. (1974). Structured design. IBM Systems J.
|