Programų sistemų analiz Duomenų projektavimas Lina Vasiliauskien Grafinių sistemų katedra Vilniaus Gedimino echnikos Universitetas 2009-2010 Vienas vaizdas vertas daugiau, nei 1024 žodžiai... Duomenų srautų diagramos (data flow diagram DFD) Būsenos kaitos diagrama (state-transition diagram - SD or statechart) Vartotojo sąsajos veikla (dialog maps) Semantiniai modeliai Klasių diagramos Veiksmų sprendimų medis 1
Kas ką vaizduoja... ipas Daiktavardis Pavyzdžiai Žmon s Organizacijos Sistemos Daiktai Objektai Analiz s komponentai Duomenų srautų diagramos (DFD) Vartotojo scenarijai (use-case diagram) Esybių ryšių diagramos (ERD) Klasių diagramos (class diagram) Veiksmažodis Veiksmai, kuriuos vartotojas gali atlikti, įvykiai, kurie gali atsitikti Procesai (DFD) Vartojimo atvejai (use-case diagram) Ryšiai (ERD) Būsenos kaitos diagramos (SD) Veiksmų diagramos (activity diagram) Kaip įvertinti laiką, reikalingą programos kūrimui Sumuojame Daiktavardžių skaičius x 2 Veiksmažodžių skaičius x 3 2
Duomenų srautų diagramos (DFD) Duomenų srautų diagramos yra pagrindinis įrankis struktūrizuotai analizei atlikti. Pradininkai - DeMarco (1979) ir Robertson and Robertson (1994). DFD nustato: sistemos procesus, duomenų rinkinius, duomenų saugyklas, arba medžiagas kuriomis manipuliuoja sistema. duomenų srautus tarp procesų, saugyklų ir aplinkos. DFD detalizuoja sud tingas sistemas iki funkcinio ar veiksmo lygio (Hatley, Hruschka, and Pirbhai 2000). Duomenų srautų diagramos (DFD) Duomenų srauto diagramos (DSD) gali būti naudojamos atvaizduoti sistemos duomenų apdorojimą. DSD diagramos rodo duomenų, einančių per sistemą, apdorojimo žingsnius DSD yra esmin daugelio analiz s metodų dalis DSD naudojamas paprastas ir intuityvus žym jimas, kurį gali suprasti ir vartotojas. Rodo duomenų apdorojimą nuo pradžios iki pabaigos. 3
Duomenų srautų diagramos pavyzdys Nulinio lygio diagrama Skritulys reiškia atskirą sistemos procesą, kuris gali būti vaizduojamas atskira duomenų srautų diagrama Rodykl s rodo duomenų srautų jud jimą Du horizontalūs brūkšniai reiškia duomenų saugyklą Veik jai vaizduojami stačiakampiais Duomenų srautų diagramos pavyzdys - užsakymo apdorojimas 4
Duomenų srautų diagramos pavyzdys insulino pompos veikimas Duomenų srautų diagramos kūrimo taisykl s Duomenys iš vienos duomenų saugyklos į kitą duomenų saugyklą patenka tik per proceso skritulį DFD nevaizduoja procesų eiliškumo Kiekvienas procesas pavadinamas daiktavardis + veiksmažodis, pavadinimas turi atitikti nagrin jamą sritį Procesai numeruojami unikaliai ir hierarchiškai: Nulinio lygio diagramoje proceso numeris yra sveikasis skaičius Dukterin je proceso diagramoje (pvz, trečio proceso) esantys procesai tur s numerius 3.1, 3.2,... Vienoje DFD nevaizduoti daugiau, nei 8-10 skirtingų procesų Kiekvienas proceso skritulys turi gauti ir į jimo, ir iš jimo duomenis 5
Būsenos kaitos diagrama (SD) Visa programin įranga susideda ir funkcionalumo, duomenų manipuliavimo ir būsenų kaitos. am tikru metu realaus laiko ir proceso sekimo sistemos gali būti tik vienoje būsenoje iš baigtinio būsenų skaičiaus. Būsenos pakeitimas gali įvykti tik esant nustatytoms sąlygoms, pri mus laukiamus duomenis atitinkančius reikalavimus. Kartais sistemos su nustatytų būsenų elementais vadinamos baigtinių būsenų mašina (finite-state machine) (Booch, Rumbaugh, Jacobson 1999). Būsenos kaitos diagrama (2) Galimos sistemos būsenos atvaizduojamos kvadratais Galimas būsenos pasikeitimas iš vienos į kitą, atvaizduojamas rodykl mis Sąlygos arba įvykiai, iššaukiantys būsenos pasikeitimus, atvaizduojami tekstu šalia rodyklių 6
Būsenos kaitos diagrama (3) SD nerodo sistemos proceso detalių, o rodo tik galimus būsenų pasikeitimus, iššaukiamus tų sistemos procesų. SD padeda programuotojams suprasti kuriamos sistemos elgesį Padeda išsiaiškinti, ar visos reikalingos būsenos ir jų pokyčiai pilnai aprašyti funkciniais reikalavimais Leidžia testuotojams paruošti būsenų kaitos testavimo planus Lengvai suprantamos užsakovams, nes vaizdavimui naudojamos tik rodykl s ir stačiakampiai Būsenos kaitos diagramos pavyzdys Patikrinkite, ar visos būsenos reikalingos, ir ar ko nors neužmiršote 7
Būsenos kaitos diagramos (4) Leidžia modelį sudalinti į smulkesnius modelius. Kiekvienam būviui pridedamas sutrumpintas veiksmų aprašymas Gali būti papildytos lentel mis, aprašančiomis būvius ir poveikius. Mikrobang s krosnel s modelis 8
Mikrobangin s krosnel s būviai Būsena Laukimas Dalinis paj gumas Pilnas paj gumas Nustatytas laikas Uždrausta Leidžiama Operacija Aprašymas Mikrobang laukia komandos. Ekrane rodomas dabartinis laikas. Mikrobangei nustatyti 300 vatai. Ekrane rodomas užrašas Dalinis paj gumas. Mikrobangei nustatyti 600 vatai. Ekrane rodomas užrašas Pilnas paj gumas. Vartotojas nustet veikimo laiką. Ekrane rodomas įvestas laikas. Mikrobang s operacijos uždraustos saugumo sumetimais. Ekrane rodomas užrašas Neparuošta Mikrobang s operacijos leidžiamos. Ekrane rodomas užrašas Paruošta Mikrobang vykdo operaciją. Mikrobang s viduje dega šviesa Ekrane rodomas iki operacijos pabaigos likęs laikas. Pasibaigus operacijai pasigirsta 5 sekundes trunkantis garsinis signalas. Išsijungia mikrobang s šviesa. Ekrane rodomas užrašas operacija baigta Mikrobangin s krosnel s veikimas Veiksmas Dalinis paj gumas Pilnas paj gumas Laikmatis Skaičius Atidarytos durel s Uždarytos durel s Aprašymas Vartotojas nuspaud dalinio paj gumo mygtuką Vartotojas nuspaud pilno paj gumo mygtuką Vartotojas nuspaud laikmačio mygtuką Vartotojas nuspaud skaičiaus mygtuką Durel s neuždarytos Durel s uždarytos 9
Vartotojo sąsajos veikla (dialog maps) Vartotojo sąsaja yra baigtinių būsenų mašinos dalis, nes: ik vienas sąsajos elementas (meniu, įvedimo laukas, mygtukas ir t.t.) konkrečiu laiko momentu gali reaguoti į vartotojo veiksmus. Vartotojas gali valdyti ir kitus sąsajos elementus priklausomai nuo veiksmų, kuriuos jis atliko. Galimų sąsajos valdymo variantų yra labai daug, bet kiekis būsenų, kuriose gali būti vartotojo sąsaja, yra baigtinis ir gerokai mažesnis. Vartotojo sąsajos veikla (2) Dauguma vartotojų sąsajų gali būti modeliuojama būsenos kaitos diagramomis, kurios vadinamos vartotojo sąsajos veikla (Wasserman 1985; Wiegers 1996a): Vartotojo veikla, tarkim mygtuko paspaudimas Duomenų reikšm, tarkim neteisingai įvestų duomenų pasekm je bus parodyta klaida Sistemin s sąlygos, tarkim pasibaig popierius 10
Vartotojo sąsajos veiklos pavyzdys Vartotojui reikia gauti chemikalų sąrašą ir jis iškviečia dialogą Current request list dialogas turi keturias pasirinkimo galimybes:... Nutraukti užklausos formavimą Įtraukti į sąrašą naują chemikalą Ištrinti chemikalą iš sąrašo Patvirtinti chemikalų sąrašą, jei jis susideda iš nenulinio elementų skaičiaus Semantiniai duomenų modeliai Naudojami aprašyti sistemoje apdorojamų duomenų loginę struktūrą. Esybių santykio atributų modelis apibr žia sistemos duomenų esybes, jų surišimą ir atributus Plačiai naudojama projektuojant duomenų bazes, lengvai realizuojama reliacin se duomenų baz se. 11
Bibliotekos semantinis modelis Duomenų žodynai Duomenų žodyną sudaro visų sistemos modelyje naudojamų terminų sąrašas. Esybių, jų sąryšių bei atributų aprašymas taip pat pridedamas. Privalumai Kontroliuoja terminus ir padeda išvengti dubliavimo; Išsaugo informaciją apie analizę, projektavimą ir realizavimą; Dauguma CASE paketų palaiko duomenų žodynus. 12
Duomenų žodyno įrašai Vardas Aprašymas ipas Data Straipsnis Autoriai Pirk jas Mokestismokamas Adresas (pirk jo) Publikuotas straipsnis, prieinamas visiems, naudojantioms LIBSYS. Skyriaus autorių vardai Asmuo arba organizacija, užsakiusi straipsnio kopiją 1:1 sąryšis tarp straipsnio ir autorinių teisių agentūros, kontroliuojančios mokesčių už straipsnį surinkimą. Pirk jo adresas Esyb 30.12.200 2 Atributas 30.12.200 2 Esyb 30.12.200 2 Sąryšis 29.12.200 2 Atributas 31.12.200 2 Klasių diagramos Struktūrizuota analiz ir projektavimas yra išstumiamas objektiškai orientuoto analiz s atlikimo metodologijos. Realaus pasaulio daiktai arba problemos atitinka objektus. Objektai atvaizduoja konkrečius atvejus ir remiasi šablonais, kurie vadinami klas mis. Aprašyti duomenys klas se vadinami atributais. Klasių diagramos skirtos grafiškai atvaizduoti analiz s metu nustatytas klases ir ryšius tarp jų. Naudojamas UML 13
Klasių diagramos pavyzdys Klas s pavadinimas Klas s atributai Galimų veiksmų sąrašas Ryšiai tarp klasių Bibliotekos klas s hierarchija 14
Vartotojo klas s hierarchija Veiksmų sprendimų medis Programin įranga realizuoja sud tingą logiką, tod l, pereinant iš vienos būsenos į kitą, reikia įvertinti ne tik esamas sąlygas bei esamus duomenis, bet ir prieš tai atliktus veiksmus. Veiksmų sprendimų medis ir veiksmų sprendimų lentel leidžia atvaizduoti sud tingą logiką. Remiasi eisinga/neteisinga kombinacijomis 15
Veiksmų sprendimų medžio pavyzdys Veiksmų sprendimų lentel Requirement Number Condition 1 2 3 4 5 User is authorized F Chemical is available F Chemical is hazardous F Requester is trained F Action Accept request X X Reject request X X X 16
Klausimai ir pasiūlymai 17