11.07.2015 Views

Projektavimas - techmat.vgtu.lt - Vilniaus Gedimino technikos ...

Projektavimas - techmat.vgtu.lt - Vilniaus Gedimino technikos ...

Projektavimas - techmat.vgtu.lt - Vilniaus Gedimino technikos ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Programų sistemų analizėPrograminės įrangos projektavimasFunkcinis ir objektiškai orientuotas projektavimometodaiLina VasiliauskienėGrafinių sistemų katedra<strong>Vilniaus</strong> <strong>Gedimino</strong> Technikos Universitetas2009-2010Turinys Funkcinis projektavimas Funkcinio projektavimo metodika ir procesas Duomenų srautų diagramos Struktūrinės diagramos Duomenų žodyno sudarymas Objektiškai orientuotas projektavimas Objektiškai orientuoto projektavimo metodika ir procesas Objektiškai orientuoto projektavimo pavyzdys Funkcinio ir objektiškai orientuoto projektavimometodų palyginimasL. Vasiliauskienė. PĮ projektavimas1


Funkcinio projektavimo metodika Funkcinio projektavimo metodika pagrįsta programosdekompozicija į rinkinį tarpusavyje sąveikaujančiųfunkcijų, įskaitant sistemos būseną, kurios informacijajos dalinasi (vidinė funkcijų būsenos informacija yrapalaikoma tik jų vykdymo metu) Funkcinio projektavimo atveju algoritmas saugomaspačioje funkcijoje, o sistemos būsenos informacijažinoma visiems programos komponentamsL. Vasiliauskienė. PĮ projektavimasFunkcinio projektavimo taikymas Funkcinis projektavimo metodas yra efektyviausiasprojektuojant sistemą, kur saugomos informacijoskiekis apie jos būseną minimalus ir yra aiškusinformacijos dalijimasis tarp jos komponenčių Kai kuriose situacijose tokia architektūra keliaproblemų, nes galimi atvejai, kuomet kuri norsfunkcija pakeičia sistemos būseną taip, kaip kitosfunkcijos to nesitikiL. Vasiliauskienė. PĮ projektavimas2


Funkcinio projektavimo procesas Duomenų srautų projektavimas. Jis leidžiaatskleisti, kaip vyksta duomenų mainai tarp sistemosfunkcijų, ir kaip jos įėjimo duomenis transformuoja įišėjimo duomenis Struktūrinė dekompozicija. Pavaizduoja sistemosfunkcijų hierarchiją, pradedant nuo aukščiausio lygiofunkcijų ir baigiant žemiausio lygio funkcijomis Detalus projektavimas. Jo metu išsamiai aprašomosprojektavimo metu išskirtos sistemos dalys ir jųtarpusavio sąsajosL. Vasiliauskienė. PĮ projektavimasDuomenų srautų projektavimas Duomenų srautų projektavimo metu yramodeliuojamos funkcinės transformacijos, kuriosgautus įėjimo duomenis transformuoja įpageidaujamus išėjimo duomenisL. Vasiliauskienė. PĮ projektavimas3


Duomenų srautų diagramos Duomenų srautų projektavimo rezu<strong>lt</strong>atai yraatvaizduojami duomenų srautų diagramomis Duomenų srautų diagramos yra patogus ir intuityviaisuvokiamas sistemos atvaizdavimo būdasL. Vasiliauskienė. PĮ projektavimasDuomenų srautų diagramos žymėjimaiDiagramoselementasElemento aprašymasFunkcija, kuri paverčia įėjimo duomenis į išėjimoDuomenų saugyklaVartotojo sąveika su sistema, kurios metu pateikiami įėjimoduomenys arba gaunami išėjimo duomenysDuomenų srauto kryptis“and”; “or”Loginės išraiškos, kurios skirtos susieti duomenų srautus, kuometdaugiau negu vienas iš jų gali būti įėjimo arba išėjimo duomenimisL. Vasiliauskienė. PĮ projektavimas4


Pavyzdys Panagrinėkime ataskaitų generavimo programą: Vartotojas programai nurodo diagramos pavadinimą, oataskaitų generatorius suranda visas esybes, priklausančiasnurodytai diagramai, ir jų aprašymus duomenų žodyne Atrinkus visą reikiamą informaciją, sugeneruojama ataskaitaL. Vasiliauskienė. PĮ projektavimasAtaskaitų generatoriaus duomenų srautų diagramaL. Vasiliauskienė. PĮ projektavimas5


Duomenų srautų diagramos rezu<strong>lt</strong>atas Duomenų srautų diagramos parodo duomenųtransformacijas, tačiau nesiūlo, kaip reikėtų jasrealizuoti Jomis aprašyta sistema gali būti realizuota kaip vienaprograma, sudaryta iš funkcijų ir procedūrų, arba kaipvisa eilė tarpusavyje sąveikaujančių programųL. Vasiliauskienė. PĮ projektavimasFunkcinis projektavimas - struktūrinė dekompozicija Struktūrinė dekompozija leidžia parodyti, kaip kurinors viena funkcija yra realizuota kitų funkcijų, iš kuriųji yra sudaryta ir kurias iškviečia vykdymo metuL. Vasiliauskienė. PĮ projektavimas6


Struktūrinės diagramos Struktūrinės dekompozijos rezu<strong>lt</strong>atams atvaizduotinaudojamos struktūrinės diagramos, kuriosepavaizduota sistemą sudarančių funkcijų hierarchija,iš kurios matyti, kaip viena funkcija iškviečia kitasL. Vasiliauskienė. PĮ projektavimasStruktūrinės diagramos žymėjimaiDiagramoselementasElemento aprašymasSistemos funkcijaFunkcijų susiejimo ryšysĮėjimo ir išėjimo duomenys (parametrai arba bendri kintamieji)Duomenų saugyklaVartotojo įvedami duomenysL. Vasiliauskienė. PĮ projektavimas7


Struktūrinės diagramos sudarymas Paprastai duomenų srautų diagrama yra paverčiama įstruktūrinę diagramą Tai nėra automatinis procesas – jis reikalaujaprojektuotojo įžvalgumo ir kūrybiškumoL. Vasiliauskienė. PĮ projektavimasStruktūrinės diagramos sudarymo taisyklės (1) Dauguma verslo sistemų, kurioms funkcinisprojektavimas yra pats tinkamiausias, yra sudarytos ištrijų dalių: duomenų įvedimo, apimančio jų kontrolę ir tikrinimą duomenų apdorojimo duomenų išvedimo (dažniausiai ataskaitos pavidalu) arba jųišsaugojimo į failąL. Vasiliauskienė. PĮ projektavimas8


Struktūrinės diagramos sudarymo taisyklės (2) Jeigu reikalinga duomenų kontrolė, ją realizuojančiosfunkcijos priskiriamos duomenų įvedimo funkcijoms Atitinkamai ataskaitų formavimo, saugojimo į failus irpan. funkcijos turi būti priskirtos duomenų išvedimofunkcijomsL. Vasiliauskienė. PĮ projektavimasStruktūrinės diagramos sudarymo taisyklės (3) Kiekviena funkcija turi atlikti tik vieną užduotį irdaugiau nieko Kiekvienas struktūrinės diagramos mazgas gali turėtine daugiau 7 jam pavaldžių mazgų Jeigu mazgas teturi vieną pavaldų mazgą, tai reiškia,kad pastarasis negali būti atskira funkcija Jeigu mazgas turi labai daug jam pavaldžių mazgų,vadinasi, sistema išskaidyta per smulkiaiL. Vasiliauskienė. PĮ projektavimas9


Duomenų srautų diagramos transformacija įstruktūrinę diagramą Duomenų apdorojimo transformacijų identifikavimas Duomenų įvedimo transformacijų identifikavimas Duomenų išvedimo transformacijų identifikavimasL. Vasiliauskienė. PĮ projektavimasAtaskaitų generatoriaus struktūrinė diagramaL. Vasiliauskienė. PĮ projektavimas10


Funkcinis projektavimas - detalus projektavimas Detalaus projektavimo metu aprašoma kiekvienasistemos funkcija: jos algoritmas, įėjimai ir išėjimai Detalus projektavimas padeda išryškinti duomenųsrautų ir struktūrinių diagramų spragas, todėl josšiame etape dažnai yra modifikuojamosL. Vasiliauskienė. PĮ projektavimasFunkcinis projektavimas - duomenų žodynas Funkcijų aprašymai yra talpinami į duomenų žodyną,kuris leidžia išvengti to paties funkcijos vardopanaudojimo kelis kartus ir atskleisti skaitytojams,kaip projektuotojas įsivaizduoja būsimos sistemosstruktūrą Duomenų žodynuose gali būti saugomi tiek trumpi,neformalūs funkcijų aprašymai, tiek ir detalus funkcijųapibūdinimas kokia nors projektavimo aprašymokalbaL. Vasiliauskienė. PĮ projektavimas11


Ataskaitų generatoriaus duomenų žodyno ištraukaEsybė Tipas AprašymasDiagramosvardasSTRINGDiagramos vardas, jai priskirtas projektuotojoĮvesti diagramosvardąFUNCTIONĮėjimas: Diagramos vardasFunkcija: funkcija sąveikauja su vartotoju tam,kad jis galėtų įvesti diagramos, kurios esybiųinformacijos ataskaitą jis nori gauti, vardąIšėjimas: Diagramos vardasL. Vasiliauskienė. PĮ projektavimasObjektiškai orientuotas projektavimas Objektiškai orientuota analizė (OOA), projektavimas(OOP) ir programavimas (OOPRG) yra tarpusavyjesusijusios, bet ne tos pačios sąvokos OOA metu sudaromas objektų, priklausančių nagrinėjamaidalykinei sričiai, modelis OOP metu sudaromas objektiškai orientuotos sistemos (PĮ)modelis, pagal kurį bus realizuoti PĮ keliami reikalavimai OOPRG metu, naudojant pasirinktą OO programavimokalbą (C++, Java ar kt.), realizuojamas OOP metu sudarytassistemos modelisL. Vasiliauskienė. PĮ projektavimas12


OOP metodologija – objektai Objektas yra realaus pasaulio esybės abstrakcija Objektai yra nepriklausomi vienetai, kurių būsena irrealizacijos detalės yra paslėptos nuo kitų objektų(inkapsuliacija) Sistemos funkcionalumas išreiškiamas objektųteikiamomis paslaugomis (metodais) Objektai tarpusavyje sąveikauja žinučių pagalbaL. Vasiliauskienė. PĮ projektavimasOOP metodologija – objektų klasės Objektai yra skirstomi į klases Tai pačiai klasei priklausantys objektai pasižymi tomispačiomis savybėmis (atributais ir metodais) Tarp objektų klasių gali egzistuoti paveldėjimo ryšys: vaikoklasės objektai paveldi visas tėvo klasės objekto savybesbei turi papildomas savo savybesL. Vasiliauskienė. PĮ projektavimas13


OOP procesas Apibrėžiamas sistemos veikimo kontekstas Sudaroma sistemą sudarančių objektų klasiųdiagrama Sukuriami reikalingi statiniai ir dinaminiai modeliaiir/arba aprašai, apibūdinantys sistemą sudarančiasklasesL. Vasiliauskienė. PĮ projektavimasObjektiškai orientuotas projektavimas– panaudojimo atvejų diagramos Panaudojimo atvejų diagramos vaizduoja sistemosvartotojus ir sistemos jiems teikiamas funkcijasL. Vasiliauskienė. PĮ projektavimas14


Pavyzdys (1) Nagrinėsime adresų knygutės programą, kurioje saugomaskontaktų sąrašas Apie kiekvieną kontaktą galima sužinoti tokią informaciją:vardą, pavardę, adresą, šalį, miestą, pašto indeksą ir telefononumerį Turi būti galimybė pridėti naują kontaktą, redaguoti jau esančiųkontaktų informaciją (išskyrus vardą ir pavardę) bei pašalintikontaktą Turi būti galima rūšiuoti kontaktų sąrašą:abėcėlės tvarka pagal vardą ir pavardępagal pašto indeksą Turi būti galimybė atsispausdinti kontaktų sąrašąL. Vasiliauskienė. PĮ projektavimasPavyzdys (2) Turi būti galima: sukurti naują adresų knygutę atidaryti jau esamą adresų knygutę uždaryti darbinę adresų knygutę užsaugoti adresų knygutėje atliktus pakeitimus, jei jų buvo Vartotojui turi būti galimybė dirbti su keletu adresųknygučių, kiekvieną jų rodant atskiruose languoseL. Vasiliauskienė. PĮ projektavimas15


Adresų knygutės panaudojimo atvejų diagramaL. Vasiliauskienė. PĮ projektavimasObjektiškai orientuotas projektavimas - adresųknygutės programos klasių diagramaL. Vasiliauskienė. PĮ projektavimas16


Adresų knygutės programos klasių aprašymas AddressBook Application: pagrindinė klasė,atsakinga už programos paleidimą, File System ir GUIobjektų sukūrimą File System: klasė, atsakinga už adresų knygutėsužkrovimą ir išsaugojimą AddressBook GUI: klasė, atsakinga už adresųknygutės valdymą AddressBook: klasė, atsakinga už joje esančiųkontaktų valdymąL. Vasiliauskienė. PĮ projektavimasAdresų knygutės programos klasės AddressBookdetalus aprašymasL. Vasiliauskienė. PĮ projektavimas17


Funkcinio ir objektiškai orientuoto projektavimometodų palyginimas Funkcinio projektavimo privalumai ir trūkumai: Funkcinis projektavimas leidžia geriau atskleisti sistemosfunkcionavimą, tačiau skaitytojui suteikia mažai informacijosapie esybes, kuriomis manipuliuoja sistema Objektiškai orientuoto projektavimo privalumai irtrūkumai Objektinis projektavimas leidžia labai detaliai aprašytisistemos naudojamas esybes, lengviau pasiduodamodifikavimui Tačiau objektinis projektavimas neleidžia taip detaliaiatskleisti sistemoje vykdomų procesų, kaip funkcinisprojektavimasL. Vasiliauskienė. PĮ projektavimasKlausimai ir pasiūlymaiL. Vasiliauskienė. PĮ projektavimas18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!