Title: Komponentinis projektavimas
1Komponentinis projektavimas
2Tikslai
- Paaiškinti, kad komponentinis projektavimas
siejasi standartizuotu komponentu kurimu ir ju
naudojimu konkreciuose taikymuose. - Aprašyti komponentus ir ju modelius.
- Parodyti pagrindines komponentinio projektavimo
proceso veiklas. - Aptarti komponenentu sudeties sudarymo budus ir
problemas, kurios gali iškilti.
3Temos
- Komponentai ir ju modeliai
- Komponentinio projektavimo procesas
- Surinkimas iš komponentu
4Komponentinis kurimas
- Komponentinis kurimas yra programu kurimo
metodas, kuris remiasi programu pakartotiniu
panaudojimu. - Tai atsirado iš objektinio kurimo siekiant
efektyvesnio pakartotinio panaudojimo. Atskiros
objektu klases yra par daug mažos ir specifines. - Komponentai yra labiau abstraktus kaip objektu
klases ir gali savarankiškai teikti paslaugas.
5Komponentinio projektavimo esme
- Nepriklausomi komponentai apibrežti per ju
sasajas. - Komponentu standartai palengvina komponentu
integravima. - Tarpines programos padeda komponentu
pernešamumui. - Kurimo procesas skatina pakartotini panaudojima.
6Komponentinis projektavimas ir bendri
projektavimo principai
- Be pakartotinio panaudojimo komponentinis
projektavimas remiasi žinomais programu
projektavimo principais. - Komponetai yra nepriklausomi ir vienas kitam
netrukdo - Komponnetu realizavimas yra pasleptas
- Bendravimas vyksta per gerai apibrežta sasajas
- Komponentai turi bendras platformas, kas sumažina
kurimo išlaidas.
7Komponentinio projektavimo problemos
- Pasitikejimas komponentais kaip galima
pasitiketi komponentu neturint jo išeities
teksto? - Komponentu sertifikavimas kas sertifikuos
komponentu kokybe? - Pasireiškianciu savybiu numatymas kaip gali buti
numatytos komponentu komplekso pasireiškiancios
savybes? - Reikalavimu palyginimas kaip galima atlikti
palyginamaja analize tarp vieno ir kito
komponentu savybiu?
8Temos
- Komponentai ir ju modeliai
- Komponentinio projektavimo procesas
- Surinkimas iš komponentu
9Komponentai
- Komponentai teikia paslaugas nepriklausomai nuo
to kur komponentas vykdomas ir kokia kalba
realizuotas. - Komponentas yra nepriklausomas vykdomas vienetas,
kuris gali buti sudarytas iš vieno ar daugiau
vykdomu objektu - Komponento sasaja yra paskelbta ir visi
bendravimai vyksta per paskelbta sasaja
10Komponento charakteristikos 1
11Komponento charakteristikos 2
12Komponento sasajos
- Tiekimo sasaja
- Apibrežia paslaugas teikiamas kitiems
komponentams. - Prašymu sasaja
- Apibrežia komponentui priimtinas paslaugas,
kurias gali komponentas ivykdyti.
13Komponento sasajos
14Duomenu surinkimo komponentas
15Komponentai ir objektai
- Komponenntai yra išskleidžiami komponentai.
- Komponentai neapibrežia tipu.
- Komponentu realizavimas yra nepermatomas.
- Komponentai nepriklauso nuo kalbos.
- Komponentai yra standartizuoti.
16Komponento modeliai
- Komponento modelis yra standartai komponento
realizavimui, dokumentavimui ir naudojimui. - Komponento modelis specifikuoja kaip sasaja turi
buti apibrežta ir kokie elementai turetu buti
iterpti i sasajos apibrežima.
17Komponento modelio elementai
18Tarpines programines irangos parama
- Komponentu modeliai yra pagrindas tarpinei
programinei irangai, kuri palaiko komponentu
vykdyma. - Komponento modelio realizavimas teikia
- Platformos paslaugas , kurios leidžia komunikuoti
komponentams, jei parašyti pagal komponentu
modeli. - Horizontalios paslaugos , kurios nepriklauso nuo
taikymu ir naudojamos skirtingu komponentu. - Kad naudoti modelio teikiamas paslaugas,
komponentai išdestomi talpykloje. Tai sasaju aibe
naudojama pasiekti paslaugu realizavima. To use
services provided by a model, components are
deployed in a container. This is a set of
interfaces used to access the service
implementations.
19Komponento modelio paslaugos
20Komponentu kurimas pakartotinam panaudojimui
- Komponentai sukurti specifiniams taikymams turi
buti apibendrinti, kad tiktu pakartotiniam
panaudojimui. - Komponentas tikriausiai yra pakartotinio
panaudojimo jei asocijuojasi su stabiliomis
srities abstrakcijomis. - Pavyzdžiui ligonineje srities abstrakcijos yra
slauges, pacientai, gydymo proceduros ir pan.
21Komponentu kurimas pakartotinam panaudojimui
- Komponentai pakartotinam panaudojimui gali buti
specialiai sukonstruoti apibendrinant
egzistuojancius komponentus. - pakartotinio panaudojimo komponentai turi tureti
tokias savybes - atspindeti stabilias srities abstrakcijas
- paslepti busenos atvaizdavima
- buti kaip tik imanoma nepriklausomam
- skelbti išimtis per komponentu sasaja
- Turi buti kompromisas tarp naudojamumo ir
pakartotinio panaudojamumo - kuo bendresne sasaja, tuo geresnis pakartotinas
panaudojamumas, bet tada sasaja sudetingesne,
vadinasi gali buti mažiau naudojama.
22Rekomendacijos pakartotiniam panaudojimui
- Išmesti taikymo specifinius metodus.
- Apibendrinti vardus.
- Prideti metodus, kad padidinti jais padengima.
- Suderinti išimciu apdorojima.
- Prideti konfiguravimo sasaja komponentu
adaptavimui. - Integruoti reikiamus komponentus, kad sumažinti
priklausomybe.
23Pakartotinio panaudojimo komponentai
- Pakartotinai panaudojamu komponentu kurimo kaštai
yra didesni nei specifiniu ekvivalentu kaštai.
Šie papildomi pakartotino panaudojamumo pakelimo
kaštai turi buti labiau organizacijos nei
projekto. - Bendri komponentai gali buti ne tokie
kompaktiški ir ne tokie greiti nei specifiniai
ekvivalentai.
24Liktiniu sistemu komponentai
- Egzistuojancios liktines sistemos gali buti
supakuotos, kaip pakartotinio panaudojimo
komponentai. - Tam reikia parašyti aplanko komponenta, kuris
turi reikiamas teikimo ir prašymu sasajas ir
prieiga prie liktines sistemos. - Nežiurint išlaidu, tai gali buti ne taip brangu
negu perrašyti liktine sistema.
25Temos
- Komponentai ir ju modeliai
- Komponentinio projektavimo procesas
- Surinkimas iš komponentu
26Komponentinio projektavimo procesas
- Kai pakartotinai naudojami komponentai svarbu
numatyti skirtuma tarp idealiu reikalavimu ir
paslaugu iš tikruju teikiamu komponento. - Tam reikia
- Sukurti reikalavimu eskiza
- Ieškoti komponentu ir modifikuoti reikalavimus
priklausomai nuo gaunamo funkcionalumo. - Ieškoti vel , kad rasti geresni komponenta, kuris
tenkina pertvarkytus reikalavimus.
27Komponentinio projektavimo procesas
28Komponeneto identifikavimo procesas
29Komponentu identifikavimas
- Pasitikejimas. Reikia pasitiketi komponentu
tiekeju. Geriausiu atveju, pasitikejimo
nekeliantis komponentas neveiks kaip buvo
skelbta, o blogiausiu atveju pažeis apsauga. - Reikalavimai. Skirtingos komponentu grupes
išpildys skirtingus reikalavimus. - Atestavimas.
- Komponento specifikacija gali buti nepakankamai
detali, kad sudaryti išsamu testa. - Komponentai gali tureti papildoma funkcionaluma.
Kaip ta ištestuoti netrukdant taikymams?
30Ariane paleidimo sutrikimas
- 1996 metais pirmas Ariane 5 raketos bandymas
baigesi katastrofa, nes po 37 sekundžiu ji tapo
nevaldoma. - Problema atsirado del pakartotinai panaudoto
ankstesnes versijos paleidimo komponento, kuris
buvo sukurtas anksciau. - Komponento neteisingos funkcijos nereikejo Ariane
5.
31Temos
- Komponentai ir ju modeliai
- Komponentinio projektavimo procesas
- Surinkimas iš komponentu
32Surinkimas iš komponentu
- Tai sistemos surinkimo procesas.
- Surinkimas numato komponentu integravima
tarpusavyje ir su komponentu infrastruktura. - Normaliai reikia rašyti jungianti komponentus
koda, kad juos integruoti.
33Surinkimo tipai
- Nuoseklus surinkimas kur surenkami komponentai
vykdomi nuosekliai. Tam reikia pateikti kiekvieno
komponento teikimo sasaja. here the composed
components are executed in sequence. This
involves composing the provides interfaces of
each component. - Hierarchinis surinkimas kur vienas komponentas
kreipiasi paslaugos i kita komponenta. Vieno
komponento teikimo sasaja yra suderinama su kito
komponento prašymo sasaja. - Papildymo surinkimas kur dvieju komponentu
sasajos sudedamos kartu, kad sukurti nauja
komponenta.
34Surinkimo tipai
35Sasaju nesuderinamumas
- Parametru nesuderinamumas kur operacijos turi
tuos pacius vardus bet yra skirtingo tipo. - Operaciju nesuderinamumas kur operaciju vardai
sudedamose sasajose yra skirtingi. - Operaciju nepilnumas kur komponento teikimo
sasaja yra kito komponento prašymu sasajos
poaibis.
36Nesuderinami komponentai
37Suderinimo komponentas
- Surenkamu komponentu sasajos turi buti
suderintos. - Reikia skirtingu suderinimo tipu priklausomai nuo
surinkimo tipo. - Adreso suradimo ir vaizdavimo komponentu gali
buti surinkti per suderinimo komponenta, kuris
nurežia pašto koda nuo adreso ir perduoda
vaizdavimo komponentui.
38Surinkimas per suderintoja
- Komponentas postCodeStripper yra suderintojas,
kuris igalina nuoseklu komponentu sujungima.
39Suderintojas duomenu surinkimui
40Sasajos semantika
- Reikia remtis komponento dokumentacija norint
nustatyti ar sintaksiškai suderinami komponentai
yra suderinami iš tikruju. - Panagrinekime PhotoLibrary komponento sasaja
41Foto bibliotekos surinkimas
42Foto bibliotekos aprašymas
This method adds a photograph to the library and
associates the photograph identifier and
catalogue descriptor with the photograph.
what happens if the photograph identifier is
already associated with a photograph in the
library? is the photograph descriptor
associated with the catalogue entry as well as
the photograph i.e. if I delete the photograph,
do I also delete the catalogue information?
43Surinkimo palyginimai
- Surenkant komponentus gali iškilti konfliktai
tarp funkciniu ir nefunkciniu reikalavimu arba
konfliktai tarp greito pateikimo ir sistemos
vystymo. - Reikai priimti tokius sprendimus
- Koks komponentu surinkimas efektyvesnis išpildant
funkcinius reikalavimus? - Koks komponentu surinkimas leis pakeitimus
ateityje? - Kokios bus surinktos sistemos pasireiškiancios
savybes?
44Duomenu surinkimas ir ataskaitu generavimas
45Esminiai aspektai
- Komponentinis projektavimas yra pakartotinio
panaudojimo budas realizuojantis silpnai susietus
komponentus i sistema. - Komponentas yra programinis vienetas, kurio
funkcionalumas ir priklausomybes pilnai
apibrežtos sasaja. - Komponento modelis apibrežia aibe standartu,
kuriu turi prisilaikyti komponento tiekejai ir
sistemu surinkejai. - Komponentinio projektavimo procese persidengia
reikalavimu inžinerijos ir sistemos projektavimo
procesai.
46Esminiai aspektai
- Surinkimas iš komponentu yra komponentu
surišimas, kad sukurti sistema. - Surenkant pakartotinio naudojimo komponentus
paprastai reikia rašyti suderintojus, kad
sutaikyti skirtingas komponentu sasajas. - Pasirenkant surinkima reikia vertinti
reikalaujama funkcionaluma, nefunkcinius
reikalavimus, ir sistemos vystyma.