Kurs: Softverski dizajn Materijali vezani uz ovu lekciju: - Test sekvencijalni dijagram i pseudokod - Sekvencijalni dijagram i pseudokod (PDF dokument) U ovoj lekciji obrađivaćemo:
UML sekvencijalni dijagram predstavlja interesantnu formu notacije koja dobija određenu popularnost u okviru objektno-orjentisanog dizajna, iako ne postoji realan razlog zbog čega bi se koristio za određeni arhitektonski stil. Suštinski posmatrano, svrha ove notacije je da detaljnije sagleda interaktivne sekvence poruka koje se pojavljuju između skupa elemenata (koji mogu biti objekti, učesnici, procesi, klijenti, serveri itd.) kada sarađuju pri izvođenju datih zadataka. Drugi primer korišćenja sekvencijalnog dijagrama može da bude opis interakcije koja se može javiti pri slučajevima korišćenja (Use case) ili tačnije, u određenom scenariju. Takođe se može koristiti da opiše razmenu koja se dešava u mrežnim protokolima, isto kao i više generalizovane aspekte interakcije koji se pojavljuju između bilo koje grupe kooperativnih sistemskih elemenata, koje god arhitektonske forme oni bili. Notacija sekvencijalnog dijagramaOrganizacija sekvencijalnog dijagrama se zasniva na potrebi za vremenskom osom, koja se po konvenciji, kreće sa vrha stranice ka dnu. Očigledno, gde postoji potreba za identifikacijom vremenskih intervala ona može biti nacrtana na skali, ali generalno samo sekvencijalni aspekti se opisuju. Svaki procesni element, obično objekat, ali i eventualno neki drugi "učesnik" u sistemu, je lociran u koloni, a poruke se prikazuju putem strelica između kolona. Sekvencijalni dijagram ima i određene dodatne notacijske elemente. S obzirom da se objekti mogu kreirati i poništiti tokom niza, i s obzirom da njihove metode mogu biti samo-aktivirane ili na neki drugi način, vertikalna linija ispod svakog elementa se menja da pokaže modifikaciju samog elementa. Dok element postoji, njegova vremenska osa se prikazuje isprekidanom linijom, a kada je aktivan, ovo se može predstaviti kao par punih linija. Slika 1 pokazuje jednostavan primer niza osnovnih operacija pomoću ove notacije koja se zasniva na osnovu interakcije između web browsera i applet-a. U ovom primeru, korisnik poziva applet kada je određena web stranica izabrana i zatim počinje interakcija sa applet-om, prouzrokujući ponovno iscrtavanje njegove slike na stranici (na zahtev appleta web browser to izvršava, budući da applet može crtati samo sa alatima koje se nalaze u browseru). Na kraju, korisnik bira drugu stranicu i applet se ukida. ![]()
Gledišta sekvencijalnog dijagramaMožemo reći da se ova notacija uglavnom bavi opisom ponašanja sistema. To je White Box notacija, jer je primarna briga kako predstaviti određeni odziv ponašanja. Kao i mnoge druge forme ponašanja, ona suštinski nije hijerarhijska, i zaista, jedan problem koji može lako nastati je nerazumevanje relativno velikih i kompleksnih dijagrama ove forme. Sekvencijalni aspekt znači da postoji i stepen funkcionalnih informacija obezbeđenih u takvom dijagramu, iako to predstavlja u većini sekundarnu ulogu. Korišćenje sekvencijalnog dijagramaKao što je već rečeno sekvencijalni dijagram se u suštini odnosi na modelovanje detaljnih sekvenci pojedinih akcija preduzetih od skupa elemenata koji međusobno sarađuju (koji se u jednostavnom obliku može posmatrati kao procesiranje "tredova"), i sa porukama koje se koriste za koordinaciju tih aktivnosti. Ovo je očigledno važna uloga kada se vrši proširivanje objektno orijentisanog dizajn modela. Jedan od njih je i na koji način tačno opisati predloženi skup objekata koji će biti u mogućnosti da zadovolji potrebe pojedinih slučajeva korišćenja (use cases), jer je use cases vrlo praktičan način utvrđivanja spoljnih uticaja. Isto tako, sekvencijalni dijagram se takođe može koristiti za opisivanje slučajeva korišćenja (use cases), ili preciznije scenarija. Primere ove uloge sekvencijalnog dijagrama su dali Ratcliffe i Budgen[1]. Slika 2 prikazuje kratke sekvence gde se neiskorišćeni elementi aktiviraju u kasnijem delu sekvence. Ova forma pomaže krajnjim korisnicima da razumeju slučajeve korišćenja i time olakšavaju identifikovanje nedoslednosti ili grešaka koji se mogu javiti. ![]()
Sveukupno gledano, sekvencijalni dijagram nudi vrlo korisnu notaciju koja nije ograničena jednim arhitektonskim stilom (to je uglavnom opis ponašanja) i gradi koristan dodatak dizajnerskom vizuelnom portfoliu. Glavni nedostatak je ograničenje bilo koje hijerarhijske organizacije, iako ponekad može postojati strukturni opseg kroz podgrupe sekvenci. Opisi sekvenci koja obuhvataju više od jedne stranice mogu postati teški za razumevanje i upravljanje. Pseudokod (Pseudocode)Pseudokod ima veoma široku primenu. Ponekad se pojavljuje pod drugim naslovima kao što je PDL (Program description language), ali se lako propoznaje i pod takvim naslovima. Pseudocode se koristi kroz nizak nivo apstrakcije koji omogućava prikrivanje "šume pomoću stabala", kada je u pitanju dizajn. Privlačnost korišćenja pseudocode-a leži u jednostavnosti održavanja. U istom smislu, važan je i nivo apstrakcije koji pruža dizajneru mogućnost da razmišlja o detaljnim sekvencama rešenja, iako se u tom datom momentu još uvek nalazi daleko od detaljnih formi rešenja. Kako bi to učinio efikasno, neophodno je da osigura da pseudokod ne postane previše sličan programskom jeziku. Pseudokod forma Slično kao strukturni dijagram i pseudokod se bavi opisom rešenja u smislu sekvence, iako je restriktivan u opisu sekvenci samih operacija. Slika 3 prikazuje primer ove uloge. Slika 4 pokazuje tipičan primer korišćenja pseudokoda za dizajn programa. Kako bi se povećala efikasnost, postoje neka korisna pravila za pisanje pseudokoda. Ti principi, koji su ilustrovani na slici 4 su:
![]()
![]()
|
Smatrate da je ova lekcija korisna? Preporučite je. | Broj preporuka:0 |