Program ų inžinerija Programinės įrangos projektavimas Bazinės projektavimo sąvokos
Turinys <ul><li>PĮ projektavimo procesas, jo metodikos ir sprendžiamos problemos </li></ul><ul><li>PĮ architektūros sampra...
PĮ projektavimo procesas, jo metodikos ir sprendžiamos problemos
Kas tai yra PĮ projektavimas? <ul><li>PĮ projektavimas apibrėžiamas kaip sistemos/komponento architektūros, interfeisų ir ...
PĮ projektavimas - programų inžinerijos proceso dalis <ul><li>PĮ projektavimo procesas yra viena iš  programų inžinerijos ...
PĮ projektavimo svarba <ul><li>PĮ projektavimo procesas vaidina svarbų vaidmenį PĮ kūrimo procese: </li></ul><ul><ul><li>j...
PĮ projektavimo proceso etapai <ul><li>PĮ projektavimo procesą sudaro 2 etapai: </li></ul><ul><ul><li>architektūros projek...
PĮ projektavimo proceso rezultatas <ul><li>PĮ projektavimo proceso rezultatas yra  modelių , aprašančių priimtus projektav...
PĮ projektavimo metodikos (1) <ul><li>Abstrakcija:   </li></ul><ul><ul><li>tai atitrūkimas nuo neesminių nagrinėjamo dalyk...
PĮ projektavimo metodikos (2) <ul><li>Sujungimas ir ryšių nustatymas: </li></ul><ul><ul><li>sujungimas nusako ryšius tarp ...
PĮ projektavimo metodikos (3) <ul><li>Inkapsuliacija:  jos metu elementai yra grupuojami ir suskirstomi į paketus, paslepi...
PĮ projektavimo metodikos (4) <ul><li>Pakankamumas, pilnumas ir paprastumas:  PĮ komponentas turi pasižymėti visomis svarb...
PĮ projektavimo sprendžiamos problemos (1) <ul><li>Lygiagretumas:  kaip išskaidyti PĮ į procesus, užduotis ir fredus ( thr...
PĮ projektavimo sprendžiamos problemos (2) <ul><li>Klaidų ir nenumatytų situacijų valdymas:  kaip apdoroti sistemoje pasir...
PĮ architektūros samprata
PĮ architektūros apibrėžimas <ul><li>PĮ architektūra – tai PĮ sudarančių posistemių ir komponentų bei ryšių tarp jų aprašy...
PĮ architektūros projektavimas <ul><li>PĮ architektūra gali būti projektuojama skirtingais aspektais: kiekvienas jų parodo...
PĮ architektūros projektavimo aspektai <ul><li>Loginis – vaizduoja sistemos funkcinius reikalavimus </li></ul><ul><li>Fizi...
PĮ projektavimo notacijos
Kas tai yra notacija? <ul><li>PĮ projektavimo notacijos skirtos  grafiškai  arba  tekstu  pavaizduoti projektavimo proceso...
Notacijų tipai <ul><li>Struktūrinės notacijos  grafiškai aprašo ir atvaizduoja PĮ projektavimo struktūrinius aspektus  </l...
Struktūrinės notacijos <ul><li>Klasių ir objektų diagramos </li></ul><ul><li>Komponentų diagramos </li></ul><ul><li>Paskir...
Klasių ir objektų diagramos <ul><li>Klasių ir objektų diagramos vaizduoja sistemą sudarančias klases (bei objektus) ir jų ...
Komponentų diagramos <ul><li>Komponent ų  diagrama – tai diagrama vaizduojanti sistem ą  sudaran č ius komponentus ir j ų ...
Paskirstymo diagramos <ul><li>Paskirstymo diagramoje parodyta mazgų, kuriuose funkcionuoja sistema, bei juose patalpintų k...
Esybių-ryšių diagramos <ul><li>Esybių-ryšių diagrama naudojama atvaizduoti duomenų, saugomų ir apdorojamų informacinėje si...
Dinaminės notacijos <ul><li>Veiklos diagramos </li></ul><ul><li>Bendradarbiavimo diagramos </li></ul><ul><li>Sekų diagramo...
Veiklos diagramos <ul><li>Veiklos diagrama parodo per ė jim ų  nuo vienos veiklos prie kitos sek ą </li></ul>
Bendradarbiavimo diagramos <ul><li>Bendradarbiavimo diagrama parodo sąveiką tarp sistemos objektų, išskirdama objektus, ry...
Sekų diagramos <ul><li>Sekų diagrama parodo sąveiką tarp sistemos objektų, išskirdama objektus, ryšius tarp jų ir ryšio me...
Būsenų diagramos <ul><li>B ū sen ų  diagrama vaizduoja objekto per ė jimus iš vienos b ū senos  į  kit ą </li></ul>
Pseudo kodas <ul><li>Pseudo kodas yra programos algoritmo aprašymas, kuriame naudojami programavimo kalbos struktūriniai e...
Pseudo kodo pavyzdys (1) <ul><li>Turime PHP programos kodo ištrauką: </li></ul><?php if (is_valid($cc_number)) { execute_t...
Pseudo kodo pavyzdys (2) <ul><li>PHP programos kodo ištrauka, užrašyta pseudo kodu: </li></ul>if  kredito kortelė galiojan...
PĮ projektavimo metodai
Populiariausi PĮ projektavimo metodai <ul><li>Funkcinis arba struktūrinis projektavimas ( function-oriented (structured) d...
Funkcinis arba struktūrinis projektavimas <ul><li>Tai vienas iš klasikinių PĮ projektavimo metodų, kurio metu identifikuoj...
Objektiškai orientuotas projektavimas <ul><li>Šiuo metu siūloma nemažai objektiškai orientuoto (OO) projektavimo technikų ...
Duomenų projektavimas <ul><li>Duomenų projektavimas sistemos projektavimą pradeda ne nuo jos atliekamų f-jų, bet nuo duome...
Upcoming SlideShare
Loading in …5
×

PI_8paskaita

1,602 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,602
On SlideShare
0
From Embeds
0
Number of Embeds
94
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PI_8paskaita

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

×