際際滷

際際滷Share a Scribd company logo
Program 迭 in転inerija Programins 眺rangos projektavimas Bazins projektavimo svokos
Turinys P町 projektavimo procesas, jo metodikos ir sprend転iamos problemos P町 architekt笛ros samprata P町 projektavimo notacijos P町 projektavimo metodai
P町 projektavimo procesas, jo metodikos ir sprend転iamos problemos
Kas tai yra P町 projektavimas? P町 projektavimas apibr転iamas kaip sistemos/komponento architekt笛ros, interfeis迭 ir j/j眺 sudarani迭 komponent迭 i邸skyrimo procesas bei 邸io proceso rezultatas
P町 projektavimas - program迭 in転inerijos proceso dalis P町 projektavimo procesas yra viena i邸  program迭 in転inerijos proceso veikl迭, kurios metu: nagrinjami P町 reikalavimai sudaromas b笛simos sistemos strukt笛ros apra邸ymas, kuris vliau naudojamas P町 programavimo metu
P町 projektavimo svarba P町 projektavimo procesas vaidina svarb迭 vaidmen眺 P町 k笛rimo procese: jo metu sukurti 眺vair笛s P町 architekt笛r atvaizduojantys modeliai naudojami kaip sistemos realizacijos planas turimi modeliai leid転ia 眺vertinti, ar suprojektuota P町 architekt笛ra leis realizuoti visus jai keliamus funkcinius ir nefunkcinius reikalavimus remiantis sudarytu P町 architekt笛ros projektu galima pateikti alternatyvius jos realizacijos pasi笛lymus
P町 projektavimo proceso etapai P町 projektavimo proces sudaro 2 etapai: architekt笛ros projektavimas ( architectural design )  jo metu P町 yra i邸skaidoma 眺 atskirus komponentus detalus projektavimas ( detailed design )  jo metu yra apra邸omas P町 sudarani迭 komponent迭 funkcionavimas
P町 projektavimo proceso rezultatas P町 projektavimo proceso rezultatas yra  modeli迭 , apra邸ani迭 priimtus projektavimo sprendimus, rinkinys
P町 projektavimo metodikos (1) Abstrakcija:   tai atitr笛kimas nuo neesmini迭 nagrinjamo dalyko pusi迭, siekiant susikoncentruoti ties svarbiausiais jo bruo転ais P町 projektavime naudojami du abstrakcijos mechanizmai: parametrizacija ir specifikacija specifikacija naudoja 3 abstrakcijos mechanizmus: proced笛rin, duomen迭 ir kontrols abstrakcij
P町 projektavimo metodikos (2) Sujungimas ir ry邸i迭 nustatymas: sujungimas nusako ry邸ius tarp sistemos moduli迭 ry邸i迭 nustatymas parodo kiekvien modul眺 sudarani迭 element迭 tarpusavio ry邸ius Dekompozicija:  sudtinga P町 i邸skaidoma 眺 nepriklausomus komponentus tam, kad kiekvienas j迭 galt迭 atlikti skirtingas f-jas
P町 projektavimo metodikos (3) Inkapsuliacija:  jos metu elementai yra grupuojami ir suskirstomi 眺 paketus, paslepiant vidines abstrakcijos detales tam, kad jos b笛t迭 nepasiekiamos i邸 i邸ors Interfeiso ir realizacijos atskyrimas:  apra邸ant komponent, jo realizacija atskiriama nuo vie邸o interfeiso, prieinamo i邸oriniams klientams
P町 projektavimo metodikos (4) Pakankamumas, pilnumas ir paprastumas:  P町 komponentas turi pasi転ymti visomis svarbiomis abstrakcijos savybmis ir neturti joki迭 papildom迭 charakteristik迭
P町 projektavimo sprend転iamos problemos (1) Lygiagretumas:  kaip i邸skaidyti P町 眺 procesus, u転duotis ir fredus ( threads ), kad b笛t迭 u転tikrintas jos na邸umas, proces迭 sinchronizacija ir planavimas Komponent迭 paskirstymas:  kaip paskirstyti P町 komponentus kompiuterinei 眺rangai, kaip u転tikrinti komponent迭 tarpusavio sveik ir t.t
P町 projektavimo sprend転iamos problemos (2) Klaid迭 ir nenumatyt迭 situacij迭 valdymas:  kaip apdoroti sistemoje pasirod転iusias klaidas ir nenumatytas situacijas Sveika ir atvaizdavimas:  kaip u転tikrinti sistemos sveik su vartotojais ir atvaizduoti jos generuojam informacij Duomen迭 valdymas:  kaip saugoti ir tvarkyti ilg laik naudojamus duomenis
P町 architekt笛ros samprata
P町 architekt笛ros apibr転imas P町 architekt笛ra  tai P町 sudarani迭 posistemi迭 ir komponent迭 bei ry邸i迭 tarp j迭 apra邸ymas
P町 architekt笛ros projektavimas P町 architekt笛ra gali b笛ti projektuojama skirtingais aspektais: kiekvienas j迭 parodo sistem i邸 tam tikro ta邸ko, akcentuodamas kokias nors specifines jos savybes
P町 architekt笛ros projektavimo aspektai Loginis  vaizduoja sistemos funkcinius reikalavimus Fizinis vaizdas  parodo sistemos paskirstym techniniams 眺renginiams Realizacijos vaizdas  parodo sistemos i邸skaidym 眺 vykdomuosius vienetus
P町 projektavimo notacijos
Kas tai yra notacija? P町 projektavimo notacijos skirtos  grafi邸kai  arba  tekstu  pavaizduoti projektavimo proceso metu priimtiems sprendimams Kai kurios i邸 egzistuojani迭 notacij迭 skirtos auk邸to lygio sistemos projektavimui, kitos  detaliam projektavimui
Notacij迭 tipai Strukt笛rins notacijos  grafi邸kai apra邸o ir atvaizduoja P町 projektavimo strukt笛rinius aspektus  Dinamins notacijos  grafi邸kai arba tekstu apra邸o ir atvaizduoja P町 komponent迭 tarpusavio sveik (jos da転niausiai naudojamos detalaus projektavimo metu)
Strukt笛rins notacijos Klasi迭 ir objekt迭 diagramos Komponent迭 diagramos Paskirstymo diagramos Esybi迭-ry邸i迭 diagramos ( Entity Relationship Diagrams )
Klasi迭 ir objekt迭 diagramos Klasi迭 ir objekt迭 diagramos vaizduoja sistem sudaranias klases (bei objektus) ir j迭 tarpusavio ry邸ius
Komponent迭 diagramos Komponent 迭  diagrama  tai diagrama vaizduojanti sistem   sudaran  ius komponentus ir j 迭  tarpusavio s  ry邸 眺
Paskirstymo diagramos Paskirstymo diagramoje parodyta mazg迭, kuriuose funkcionuoja sistema, bei juose patalpint迭 komponent迭 konfig笛racija
Esybi迭-ry邸i迭 diagramos Esybi迭-ry邸i迭 diagrama naudojama atvaizduoti duomen迭, saugom迭 ir apdorojam迭 informacinje sistemoje, modeliui
Dinamins notacijos Veiklos diagramos Bendradarbiavimo diagramos Sek迭 diagramos B笛sen迭 diagramos P seudo kodas ( Pseudo-code )   ...
Veiklos diagramos Veiklos diagrama parodo per  jim 迭  nuo vienos veiklos prie kitos sek
Bendradarbiavimo diagramos Bendradarbiavimo diagrama parodo sveik tarp sistemos objekt迭, i邸skirdama objektus, ry邸ius tarp j迭 ir ry邸io metu perduodamas 転inutes
Sek迭 diagramos Sek迭 diagrama parodo sveik tarp sistemos objekt迭, i邸skirdama objektus, ry邸ius tarp j迭 ir ry邸io metu perduodam迭 転inui迭 eili邸kum
B笛sen迭 diagramos B 笛 sen 迭  diagrama vaizduoja objekto per  jimus i邸 vienos b 笛 senos  眺  kit
Pseudo kodas Pseudo kodas yra programos algoritmo apra邸ymas, kuriame naudojami programavimo kalbos strukt笛riniai elementai, taiau nesilaikoma programavimo kalbos sintakss
Pseudo kodo pavyzdys (1) Turime PHP programos kodo i邸trauk: <?php if (is_valid($cc_number)) { execute_transaction($cc_number, $order); } else { show_failure(); } ?>
Pseudo kodo pavyzdys (2) PHP programos kodo i邸trauka, u転ra邸yta pseudo kodu: if  kredito kortel galiojanti  then  vykdyti transakcij, naudojant kortels nr. ir u転sakymo duomenis  else  rodyti klaidos prane邸im  end if
P町 projektavimo metodai
Populiariausi P町 projektavimo metodai Funkcinis arba strukt笛rinis projektavimas ( function-oriented (structured) design ) Objekti邸kai orientuotas projektavimas ( object-oriented design ) Duomen迭 projektavimas ( data-structure centered design )
Funkcinis arba strukt笛rinis projektavimas Tai vienas i邸 klasikini迭 P町 projektavimo metod迭, kurio metu identifikuojamos kuriamos P町 funkcijos Jos kruop邸iai i邸analizuojamos ir i邸skaidomos 眺 smulkesnes funkcijas, 邸ios 眺 dar smulkesnes ir t.t., kol gaunamas i邸samus b笛simos sistemos modelis alia gauto modelio labai da転nai yra pateikiamos duomen迭 sraut迭 diagramos ir su jomis susij vykdom迭 proces迭 apra邸ymai
Objekti邸kai orientuotas projektavimas iuo metu si笛loma nema転ai objekti邸kai orientuoto (OO) projektavimo technik迭 Jo prad転ia siekia 1980 m., kuomet buvo pasi笛lytas pats paprasiausias OO projektavimo b笛das:  daiktavardis = objektas; veiksma転odis = metodas; b笛dvardis = atributas   Dabar si笛lomos sudtingos OO projektavimo technikos, kuriose naudojami paveldjimas,  polimorfizmas ir kt.
Duomen迭 projektavimas Duomen迭 projektavimas sistemos projektavim pradeda ne nuo jos atliekam迭 f-j迭, bet nuo duomen迭, kuriais manipuliuoja sistema, analizs Projektuotojas pirmiausia identifikuoja 眺jimo ir i邸jimo duomen迭 strukt笛ras ir tik po to projektuoja programos, apdorosianios sumodeliuotas duomen迭 strukt笛ras, architekt笛r

More Related Content

PI_8paskaita

  • 1. Program 迭 in転inerija Programins 眺rangos projektavimas Bazins projektavimo svokos
  • 2. Turinys P町 projektavimo procesas, jo metodikos ir sprend転iamos problemos P町 architekt笛ros samprata P町 projektavimo notacijos P町 projektavimo metodai
  • 3. P町 projektavimo procesas, jo metodikos ir sprend転iamos problemos
  • 4. Kas tai yra P町 projektavimas? P町 projektavimas apibr転iamas kaip sistemos/komponento architekt笛ros, interfeis迭 ir j/j眺 sudarani迭 komponent迭 i邸skyrimo procesas bei 邸io proceso rezultatas
  • 5. P町 projektavimas - program迭 in転inerijos proceso dalis P町 projektavimo procesas yra viena i邸 program迭 in転inerijos proceso veikl迭, kurios metu: nagrinjami P町 reikalavimai sudaromas b笛simos sistemos strukt笛ros apra邸ymas, kuris vliau naudojamas P町 programavimo metu
  • 6. P町 projektavimo svarba P町 projektavimo procesas vaidina svarb迭 vaidmen眺 P町 k笛rimo procese: jo metu sukurti 眺vair笛s P町 architekt笛r atvaizduojantys modeliai naudojami kaip sistemos realizacijos planas turimi modeliai leid転ia 眺vertinti, ar suprojektuota P町 architekt笛ra leis realizuoti visus jai keliamus funkcinius ir nefunkcinius reikalavimus remiantis sudarytu P町 architekt笛ros projektu galima pateikti alternatyvius jos realizacijos pasi笛lymus
  • 7. P町 projektavimo proceso etapai P町 projektavimo proces sudaro 2 etapai: architekt笛ros projektavimas ( architectural design ) jo metu P町 yra i邸skaidoma 眺 atskirus komponentus detalus projektavimas ( detailed design ) jo metu yra apra邸omas P町 sudarani迭 komponent迭 funkcionavimas
  • 8. P町 projektavimo proceso rezultatas P町 projektavimo proceso rezultatas yra modeli迭 , apra邸ani迭 priimtus projektavimo sprendimus, rinkinys
  • 9. P町 projektavimo metodikos (1) Abstrakcija: tai atitr笛kimas nuo neesmini迭 nagrinjamo dalyko pusi迭, siekiant susikoncentruoti ties svarbiausiais jo bruo転ais P町 projektavime naudojami du abstrakcijos mechanizmai: parametrizacija ir specifikacija specifikacija naudoja 3 abstrakcijos mechanizmus: proced笛rin, duomen迭 ir kontrols abstrakcij
  • 10. P町 projektavimo metodikos (2) Sujungimas ir ry邸i迭 nustatymas: sujungimas nusako ry邸ius tarp sistemos moduli迭 ry邸i迭 nustatymas parodo kiekvien modul眺 sudarani迭 element迭 tarpusavio ry邸ius Dekompozicija: sudtinga P町 i邸skaidoma 眺 nepriklausomus komponentus tam, kad kiekvienas j迭 galt迭 atlikti skirtingas f-jas
  • 11. P町 projektavimo metodikos (3) Inkapsuliacija: jos metu elementai yra grupuojami ir suskirstomi 眺 paketus, paslepiant vidines abstrakcijos detales tam, kad jos b笛t迭 nepasiekiamos i邸 i邸ors Interfeiso ir realizacijos atskyrimas: apra邸ant komponent, jo realizacija atskiriama nuo vie邸o interfeiso, prieinamo i邸oriniams klientams
  • 12. P町 projektavimo metodikos (4) Pakankamumas, pilnumas ir paprastumas: P町 komponentas turi pasi転ymti visomis svarbiomis abstrakcijos savybmis ir neturti joki迭 papildom迭 charakteristik迭
  • 13. P町 projektavimo sprend転iamos problemos (1) Lygiagretumas: kaip i邸skaidyti P町 眺 procesus, u転duotis ir fredus ( threads ), kad b笛t迭 u転tikrintas jos na邸umas, proces迭 sinchronizacija ir planavimas Komponent迭 paskirstymas: kaip paskirstyti P町 komponentus kompiuterinei 眺rangai, kaip u転tikrinti komponent迭 tarpusavio sveik ir t.t
  • 14. P町 projektavimo sprend転iamos problemos (2) Klaid迭 ir nenumatyt迭 situacij迭 valdymas: kaip apdoroti sistemoje pasirod転iusias klaidas ir nenumatytas situacijas Sveika ir atvaizdavimas: kaip u転tikrinti sistemos sveik su vartotojais ir atvaizduoti jos generuojam informacij Duomen迭 valdymas: kaip saugoti ir tvarkyti ilg laik naudojamus duomenis
  • 16. P町 architekt笛ros apibr転imas P町 architekt笛ra tai P町 sudarani迭 posistemi迭 ir komponent迭 bei ry邸i迭 tarp j迭 apra邸ymas
  • 17. P町 architekt笛ros projektavimas P町 architekt笛ra gali b笛ti projektuojama skirtingais aspektais: kiekvienas j迭 parodo sistem i邸 tam tikro ta邸ko, akcentuodamas kokias nors specifines jos savybes
  • 18. P町 architekt笛ros projektavimo aspektai Loginis vaizduoja sistemos funkcinius reikalavimus Fizinis vaizdas parodo sistemos paskirstym techniniams 眺renginiams Realizacijos vaizdas parodo sistemos i邸skaidym 眺 vykdomuosius vienetus
  • 20. Kas tai yra notacija? P町 projektavimo notacijos skirtos grafi邸kai arba tekstu pavaizduoti projektavimo proceso metu priimtiems sprendimams Kai kurios i邸 egzistuojani迭 notacij迭 skirtos auk邸to lygio sistemos projektavimui, kitos detaliam projektavimui
  • 21. Notacij迭 tipai Strukt笛rins notacijos grafi邸kai apra邸o ir atvaizduoja P町 projektavimo strukt笛rinius aspektus Dinamins notacijos grafi邸kai arba tekstu apra邸o ir atvaizduoja P町 komponent迭 tarpusavio sveik (jos da転niausiai naudojamos detalaus projektavimo metu)
  • 22. Strukt笛rins notacijos Klasi迭 ir objekt迭 diagramos Komponent迭 diagramos Paskirstymo diagramos Esybi迭-ry邸i迭 diagramos ( Entity Relationship Diagrams )
  • 23. Klasi迭 ir objekt迭 diagramos Klasi迭 ir objekt迭 diagramos vaizduoja sistem sudaranias klases (bei objektus) ir j迭 tarpusavio ry邸ius
  • 24. Komponent迭 diagramos Komponent 迭 diagrama tai diagrama vaizduojanti sistem sudaran ius komponentus ir j 迭 tarpusavio s ry邸 眺
  • 25. Paskirstymo diagramos Paskirstymo diagramoje parodyta mazg迭, kuriuose funkcionuoja sistema, bei juose patalpint迭 komponent迭 konfig笛racija
  • 26. Esybi迭-ry邸i迭 diagramos Esybi迭-ry邸i迭 diagrama naudojama atvaizduoti duomen迭, saugom迭 ir apdorojam迭 informacinje sistemoje, modeliui
  • 27. Dinamins notacijos Veiklos diagramos Bendradarbiavimo diagramos Sek迭 diagramos B笛sen迭 diagramos P seudo kodas ( Pseudo-code ) ...
  • 28. Veiklos diagramos Veiklos diagrama parodo per jim 迭 nuo vienos veiklos prie kitos sek
  • 29. Bendradarbiavimo diagramos Bendradarbiavimo diagrama parodo sveik tarp sistemos objekt迭, i邸skirdama objektus, ry邸ius tarp j迭 ir ry邸io metu perduodamas 転inutes
  • 30. Sek迭 diagramos Sek迭 diagrama parodo sveik tarp sistemos objekt迭, i邸skirdama objektus, ry邸ius tarp j迭 ir ry邸io metu perduodam迭 転inui迭 eili邸kum
  • 31. B笛sen迭 diagramos B 笛 sen 迭 diagrama vaizduoja objekto per jimus i邸 vienos b 笛 senos 眺 kit
  • 32. Pseudo kodas Pseudo kodas yra programos algoritmo apra邸ymas, kuriame naudojami programavimo kalbos strukt笛riniai elementai, taiau nesilaikoma programavimo kalbos sintakss
  • 33. Pseudo kodo pavyzdys (1) Turime PHP programos kodo i邸trauk: <?php if (is_valid($cc_number)) { execute_transaction($cc_number, $order); } else { show_failure(); } ?>
  • 34. Pseudo kodo pavyzdys (2) PHP programos kodo i邸trauka, u転ra邸yta pseudo kodu: if kredito kortel galiojanti then vykdyti transakcij, naudojant kortels nr. ir u転sakymo duomenis else rodyti klaidos prane邸im end if
  • 36. Populiariausi P町 projektavimo metodai Funkcinis arba strukt笛rinis projektavimas ( function-oriented (structured) design ) Objekti邸kai orientuotas projektavimas ( object-oriented design ) Duomen迭 projektavimas ( data-structure centered design )
  • 37. Funkcinis arba strukt笛rinis projektavimas Tai vienas i邸 klasikini迭 P町 projektavimo metod迭, kurio metu identifikuojamos kuriamos P町 funkcijos Jos kruop邸iai i邸analizuojamos ir i邸skaidomos 眺 smulkesnes funkcijas, 邸ios 眺 dar smulkesnes ir t.t., kol gaunamas i邸samus b笛simos sistemos modelis alia gauto modelio labai da転nai yra pateikiamos duomen迭 sraut迭 diagramos ir su jomis susij vykdom迭 proces迭 apra邸ymai
  • 38. Objekti邸kai orientuotas projektavimas iuo metu si笛loma nema転ai objekti邸kai orientuoto (OO) projektavimo technik迭 Jo prad転ia siekia 1980 m., kuomet buvo pasi笛lytas pats paprasiausias OO projektavimo b笛das: daiktavardis = objektas; veiksma転odis = metodas; b笛dvardis = atributas Dabar si笛lomos sudtingos OO projektavimo technikos, kuriose naudojami paveldjimas, polimorfizmas ir kt.
  • 39. Duomen迭 projektavimas Duomen迭 projektavimas sistemos projektavim pradeda ne nuo jos atliekam迭 f-j迭, bet nuo duomen迭, kuriais manipuliuoja sistema, analizs Projektuotojas pirmiausia identifikuoja 眺jimo ir i邸jimo duomen迭 strukt笛ras ir tik po to projektuoja programos, apdorosianios sumodeliuotas duomen迭 strukt笛ras, architekt笛r