programų sistemų inžinerija - vgtudma.vgtu.lt/psi/psi_6.pdf · programinės įrangos...
TRANSCRIPT
Programų sistemų inžinerija
8 paskaita Programų sistemų architektūros projektavimas
Skaidrės paruoštos remiantis I.Sommerville medžiaga
Paskaitos tikslai
Supažindinti su programinės įrangos architektūriniu projektavimu ir aptarti jo svarbą
Išsiaiškinti programinės įrangos architektūrinio projektavimo sprendimus
Supažindinti su trimis vienas kitą papildančiais architektūriniais stiliais apimančiais organizavimą, skaldymą (dekomponavimą) ir kontrolę.
Aptarti rekomenduojamas programinės įrangos architektūras, naudojamas jų perdavimui ir palyginimui
Temos
Programinės įrangos architektūrinio projektavimo
sprendimai
Sistemos organizavimas
Skaldymo (dekomponavimo) būdai
Valdymo būdai
Rekomendacinės architektūros
Programinės įrangos architektūra
Architektūrinis projektavimas - tai PI projektavimo
procesas, identifikuojantis sistemą sudarančias
posistemes (modulius) ir šablonus posistemių
kontrolei bei bendravimui.
Šio projektavimo proceso rezultatas yra programinės
įrangos architektūrinis modelis, kuris aprašo sistemos
komponentus ir komunikacijas tarp jų.
Architektūrinis projektavimas
Architektūrinis projektavimas – tai ankstyvoji
sistemos projektavimo proceso stadija.
Jis atspindi ryšį tarp reikalavimų specifikacijos ir
projektavimo proceso
Dažnai vykdoma lygiagrečiai su sistemos
specifikacijos veiksmais
Apima didesnės sistemos dalies komponentų
identifikavimą ir jų bendravimą.
Aiškios architektūros privalumai
Suinteresuotų asmenų bendravimas • architektūra gali būti panaudota kaip sistema
suinteresuotų asmenų (stakeholders) komunikavimo
centras
Sistemos analizė • reiškia, kad galima atlikti sistemos nefunkcinių
reikalavimų analizę
Didelės apimties pakartotinis panaudojimas • architektūra gali būti panaudota daugeliui sistemų
Sistemos struktūros nustatymas
Architektūrinis projektas paprastai išreiškiamas kaip
blokinė diagrama vaizduojanti bendrą sistemos
struktūrą.
Kiekvienas blokas – tai programinės įrangos
komponentas
Rodyklėmis vaizduojami duomenų srautai arba
kontrolinius signalus, perduodamus iš vieno
komponento kitam.
Pakavimo roboto kontrolės sistema
Blokų diagramos
Yra labai abstrakčios – nerodo nei komponentų
sąryšių prigimties nei išoriškai matomų posistemių
savybių.
Blokų diagramos dažniausiai naudojamos:
• Bendraujant su užsakovais
• Dokumentuojant PI architektūrą.
Temos
Architektūrinio projektavimo sprendimai (klausimai priimant architektūrinius sprendimus, architektūros
pakartotinis naudojimas, architektūriniai stiliai,
architektūriniai modeliai)
Sistemos organizavimas
Skaldymo būdai
Valdymo būdai
Rekomendacinės architektūros
Architektūrinio projektavimo
sprendimai
Architektūrinis projektavimas yra kūrybinis procesas,
kurio metu kuriama PI architektūra, turėsianti
tenkinti funkcinius ir nefunkcinius reikalavimus.
Architektūrinį projektavimą atlieka PI architektas.
Projektavimo metu priimami PI būsimos struktūros
sprendimai.
PI architektui keliami klausimai
Ar yra kažkoks architektūros šablonas, kurį gali būti
pritaikyti?
Kaip sistema bus masteliuojama per CPU ir branduolius?
Kokie yra tinkami architektūros stiliai?
Kokiu principu bus vykdoma sistemos struktūrizavimas?
Kaip sistema bus sudalinta (dekomponuota) į modulius?
Kokia bus komponentų kontrolės strategija?
Kaip architektūrinis projektas bus įvertintas?
Kaip architektūra turėtų būti dokumentuota?
Architektūros pakartotinis
naudojimas
Sistemos toje pačioje taikymo srityje paprastai turi
panašią architektūrą, kuri atspindi srities suvokimą.
(Pvz. finansų valdymas, buhalterinė apskaita,
logistikos vadyba)
Naudojami architektūros šablonai leidžia pagreitinti
architektūros kūrimo procesą (šiuo metu populiarus
modelis).
Architektūriniai modeliai
Statinis struktūrinis modelis rodo pagrindinius sistemos
komponentus.
Dinaminis procesų modelis rodo sistemos procesų struktūrą.
Sąsajų modelis apibrėžia posistemių sąsajas.
Sąryšių modelis, kaip duomenų srauto diagramos rodo
posistemių sąryšius.
Paskirstymo modelis rodo kaip posistemės paskirstytos tarp
kompiuterių, procesorių, branduolių
Architektūrų tipai
Verslo logikos architektūra. Dažniausiai apibrėžiama
per objektų klases.
Procesų architektūra. Parodo kaip sistemos procesai
saveikauja tarpusavyje. Tinka siekiant projektuoti
didelio našumo ir patikimumo sistemas.
Kūrimo (development) architektūra – parodo PI
komponentus, naudinga programuotojams.
Fizinė architektūra – parodo kompiuterinės ir
programinės įrangos pasiskirstymą tarp procesorių.
Temos
Architektūrinio projektavimo sprendimai
Sistemos organizavimas (organizaciniai būdai : bendros
saugyklos, bendrų paslaugų, sluoksniavimo, juos atitinkantys
modeliai, jų privalumai ir trūkumai)
Skaldymo būdai
Valdymo būdai
Rekomendacinės architektūros
Sistemos organizavimas
Atspindi bazines strategijas, kurios naudojamos
struktūrizuojant sistemą.
Plačiai naudojami trys organizaciniai būdai:
• Bendros duomenų saugyklos naudojimo būdas;
• Bendrų paslaugų ir serverių naudojimo būdas;
• Abstraktaus automato (sluoksniavimo) būdas;
Saugyklos modelis
Posistemės turi keistis duomenimis. Tai gali būti daroma dviem būdais:
• Bendri duomenys yra saugomi centinėje duomenų bazėje arba saugykloje ir gali būti pasiekiami visoms posistemėms;
• Kiekviena posistemė prižiūri savo duomenų bazę ir persiunčia duomenys tiesiai kitai posistemei;
Kai bendrai naudojami didelės apimties duomenys dažniausiai naudojamas bendros saugyklos modelis.
CASE įrankių architektūra
Saugyklos modelio charakteristikos
Privalumai
• Efektyvus kelias bendrai naudoti didelės apimties duomenis;
• Posistemėms nereikia rūpintis kaip duomenys gaunami, centralizuotas valdymas, kopijavimas, apsauga ir pan.
• Bendras modelis traktuojamas kaip saugyklos schema.
Trūkumai
• Posistemės turi susiderinti saugyklos duomenų modelį. Neišvengiamai tenka ieškoti kompromisų;
• Duomenų vystymas sudėtingas ir brangus;
• Nėra galimybių specifiniai valdymo politikai;
• Sunku efektyviai paskirstyti.
Bendrų paslaugų modelis
Paskirstytas sistemos modelis, kuris rodo kaip duomenys ir apdorojimas paskirstytas tarp komponentų.
Savarankiškų serverių aibė, kuri teikia specifines paslaugas kaip spausdinimas, duomenų valdymas ir pan.
Aibė klientų, kurie užsako paslaugas.
Kompiuterių tinklas kuris klientams užtikrina serverių pasiekiamumą.
Filmų ir paveikslų biblioteka
Modelio charakteristikos
Privalumai
• Duomenų paskirstymas yra tiesioginis;
• Efektyviai išnaudoja tinklines sistemas. Gali užtekti pigesnės
aparatūros.
• Lengva įtraukti papildomus serverius arba atnaujinti egzistuojančius
serverius.
Trūkumai
• Nėra bendro duomenų modelio ir posistemės naudoja skirtingą
duomenų organizavimą. Apsikeitimas duomenimis gali būti
neefektyvus.
• Perteklinis valdymas kiekvienam serveryje;
• Nėra centrinio vardų ir paslaugų registro- gali būti sunku surasti
kokie serveriai ir kokios paslaugos yra prieinamos.
Abstraktaus automato (sluoksninis)
modelis Naudojamas modeliuoti posistemių sąveikavimą.
Organizuoja sistemą kaip sluoksnių (abstrakčių automatų) aibę, kurių kiekvienas teikia aibę paslaugų.
Palaiko palaipsninį posistemės skirtingų sluoksnių kūrimą. Keičiantis sluoksnio sąsajai įtakojami tik gretimi sluoksniai.
Tačiau, dažnai tokia sistemos struktūra būna dirbtinė.
Versijų valdymo sistema
Configuration management system layer
Database system layer
Operating system layer
Object management system layer
Temos
Architektūrinio projektavimo sprendimai
Sistemos organizavimas
Skaldymo būdai (posistemės ir moduliai, modulinio
skaldymo modeliai, objektinis ir duomenų srautų, jų
privalumai ir trūkumai)
Valdymo būdai
Rekomendacinės architektūros
Posistemės ir moduliai
Posistemė – tai savarankiška sistema, kurios
operacijos yra nepriklausomos nuo kitų posistemių ar
sistemų teikiamų paslaugų.
Modulis - posistemės komponentas, kuris teikia
paslaugas kitiems komponentams, bet paprastai
nelaikomas kaip atskira sistema.
Modulinis skaldymas
Posistemės skaldomos į modulius kitam struktūriniam lygyje.
Yra du modulinio skaldymo modeliai
• Objektinis modelis, kur sistema įkomponuojama į
sąveikaujančius objektus;
• Duomenų srautų modelis, kur sistema skaldoma į funkcinius
modulius, kurie transformuoja įėjimus į išėjimus.
Jeigu galima, sprendimas apie lygiagretų vykdymą turėtų būti
atidėtas kol bus realizuoti moduliai.
Objektiniai modeliai
Sistemos struktūra iš laisvai susietų objektų su gerai
apibrėžtom sąsajom.
Objektinis dekomponavimas numato objektų klasių
identifikavimą su jų atributais ir operacijomis.
Realizavimo metu objektai sukuriami iš šių klasių ir
valdymo modelis naudojamas koordinuoti objektų
operacijas.
Sąskaitų apdorojimo sistema
Objektinių modelių privalumai
Objektai yra laisvai susieti ir jų realizavimas gali būti lengvai modifikuotas be įtakos kitiems objektams.
Objektai gali atspindėti realaus pasaulio esybes.
Plačiai naudojamos objektinės programavimo kalbos.
Tačiau objektų sąsajų keitimas gali sukelti problemų ir sudėtingus vienetus sunku atvaizduoti kaip objektus.
Duomenų srautų modelis
Duomenų srautų modeliai apdoroja įėjimus ir
išduoda išėjimus.
Gali būti vadinamas kaip transformavimo arba filtrų
modelis.
Netinkamas interaktyvioms sistemoms.
Sąskaitų apdorojimo sistema (DFD)
Duomenų srautų modelio privalumai
Leidžia transformacijas panaudoti pakartotinai.
Patogus bendravimui su užsakovu.
Lengva pridėti naujas transformacijas.
Santykinai paprasta realizuoti kaip nuoseklias ar
lygiagrečias sistemas.
Tačiau reikalauja transformavimui bendro duomenų
formato ir sudėtinga palaikyti įvykiais paremtą
bendravimą.
Temos
Architektūrinio projektavimo sprendimai
Sistemos organizavimas
Skaldymo būdai
Valdymo būdai (centralizuotas, įvykiais paremtas,
kvietimo-grįžimo, realaus laiko, transliavimo , pertraukimais
paremtas modeliai)
Rekomendacinės architektūros
Valdymo būdai
Skirtingai nuo skaldymo modelių, valdymo būdai siejasi su posistemių kontrolė.
Centralizuotas valdymas
• Viena posistemė atsakinga už kontrolę ir startuoja bei stabdo kitas posistemes.
Įvykiais paremtas valdymas
• Kiekviena posistemė savarankiškai atsako į įvykius iš kitų posistemių arba sistemos aplinkos.
Centralizuotas valdymas
Kvietimo-grįžimo modelis: Call-return model
• Paprogramių iš viršaus žemyn kvietimo modelis, kur kontrolė
prasideda viršutinėje paprogramėje ir juda žemyn. Tinkamas
nuoseklioms sistemoms.
Valdytojo (centrinis) modelis
• Tinkamas lygiagrečioms sistemoms. Viena sistemos
komponentas kontroliuoja sustojimą, startavimą ir
koordinavimą su kitais sistemos procesais. Daliniu atveju
galima realizuoti nuoseklias sistemas.
Kvietimo-grįžimo modelis
Realaus laiko sistemos valdymas
Įvykiais paremtos sistemos
Posistemė, kuri apdoroja įvykį, nekontroliuoja jo įvykdimo laiko ir gauna informaciją iš išorės.
Du principiniai įvykiais paremti modeliai:
• Transliavimo modelis. Įvykis transliuojamas visoms posistemėms ir kiekviena posistemė gali jį apdoroti.
• Pertraukimais paremtas modelis. Naudojamas realaus laiko sistemose, kur pertraukimų prižiūrėtojas pastebi pertraukimą ir perduoda kažkuriam komponentui apdorojimui.
Transliavimo modelis
Efektyvus integruojant skirtingų tinklo kompiuterių posistemes.
Kiekviena posistemė reaguoja į specifinius įvykius. Įvykus įvykiui kontrolę perima posistemė, kuri apdoroja įvykį.
Valdymo taisyklės nėra įterptos į įvykio ar pranešimo apdorojimą. Posistemė nusprendžia ar įvykis ją domina.
Tačiau posistemės nežino ar ir kada įvyks įvykis.
Atrankinis transliavimas
Pertraukimais paremtos sistemos
Naudojamos realaus laiko sistemose, kur greitas atsakas į įvykį yra esminis.
Pertraukimų tipai žinomi iš anksto ir kiekvienas iš jų apdorojamas atskirai.
Kiekvienas pertraukimų tipas asocijuoiamas su vieta atmintyje ir aparatūra perduoda valdymą atitinkamam apdorojimui.
Leidžia greit gauti atsaką bet sudėtinga programuoti ir sunku atestuoti.
Pertraukimais paremtas valdymas
Temos
Architektūrinio projektavimo sprendimai
Sistemos organizavimas
Skaldymo būdai
Valdymo būdai
Rekomendacinės architektūros (Bendriniai,
rekomenduotini modeliai, atviros sistemos modelis-
paveikslas, rekomendacinis modelis- paveikslas)
Rekomendacinės architektūros
Architektūriniai modeliai gali būti skirti tam tikroms taikymo
sritims.
Du sričiai specifinių modelių tipai:
• Bendriniai modeliai, kurie turi principines realių sistemų
apibendrintas charakteristikas.
• Rekomenduotini modeliai, kurie yra labiau abstraktūs
idealizuoti modeliai. Pateikia informaciją apie tos klasės
sistemas ir apie skirtingų architektūrų palyginimą.
Bendriniai modeliai paprastai gaunami apibendrinant iš apačios
aukštyn principu, o rekomenduotini modeliai naudojami iš
viršaus į apačią principu.
Standartiniai architektūros modeliai
Standartiniai modeliai gaunami labiau analizuojant
taikymo sritį negu egzistuojančias sistemas.
Gali būti naudojami kaip bazė sistemos realizacijai
arba skirtingų sistemų palyginimui.
Atviros sistemos (OSI) modelis yra komunikavimo
sistemos sluoksniuotas modelis.
Atvirų sistemos sujungimų (OSI)
standartinis modelis
Presenta tion
Session
Transpor t
Network
Data link
Physical
7
6
5
4
3
2
1
Comm unica tions medium
Networ k
Data link
Physical
Applica tion
Presenta tion
Session
Transpor t
Networ k
Data link
Physical
Applica tion
Standartinis modelis
Paskaitos santrauka
Programinės įrangos architektūra yra programų sistemos struktūros fundamentali sandara.
Naudojami skirtingi architektūriniai modeliai kaip struktūrinis modelis, valdymo modelis ir skaldymo (dekomponavimo) modelis.
Sistemų organizaciniai modeliai apima saugyklos modelius, bendrų paslaugų modelius, ir abstraktaus automato modelius.
Paskaitos santrauka
Skaldymo modeliai apima objektinius ir duomenų
srautų modelius.
Valdymo modeliai apima centralizuoto valdymo ir
įvykiais paremto valdymo modelius.
Rekomendacinės architektūros gali būti naudojamos
specifinėse srityse ir architektūrinių projektų
palyginimui.