Analysis and comparison of microservice data exchange formats on Enduro/X pla...
LDP lecture 5
1. DITF LDI
Lietišķo datorsistēmu programmatūras
profesora grupa
Lietišķo datorsistēmu programmatūra
5.lekcija
Materiālu sagatavoja: V.Kotovs
Atbildīgais pasniedzējs: prof. L.Novickis
2. 22
……
PI tendences – sarežģītības un abstrakcijas līmeņa paaugstināšana; izstrādes procesa
uzlabošana, automatizēšanas un uzturamības atvieglošana; efektīvu un pierādītu
risinājumu atkārtota izmantošana; prasību mainīgums
Atkārtotā lietošana - process, kura ietvaros organizācija definē sistemātiski pielietojamo
procedūru kopu, lai specificētu, izveidotu, klasificētu, dabūtu un adaptētu programmatūras
artefaktus, ko var pielietot lietojumu izstrādes procesā
Projektēšanas šablons - nosauc, abstrahē un identificē galvenos projektēšanas
struktūras aspektus, vērtīgus atkārtoti lietojama objektorientēta projektējuma izstrādē
Aspektorientētā programmēšana - programmatūras izstrādes paradigma koncepciju un
šķērsojošās funkcionalitātes specificēšanai skaidri definētās programmatūras struktūrās
(aspektos)
LDP Piemēri - github.com/rk13/rtu-ldp-course
3. 33
Ieskats uz komponentiem balstītās programmatūras
izstrādes metodēs
Ieskats modeļvadāmā programmatūras izstrādē
Lekciju kursa pamata koncepcijas
4. 1.Uz komponentiem balstītā
programmatūras izstrāde
44
●
1968 - idejas par programmatūras komponentu apakš-
industrijas nepieciešamību (McIlroy, “Mass Produced
Software Components”)
●
Programmatūras krīze (strauja datoru jaudas attīstība,
risināto problēmu sarežģītība)
●
Secinājumi par programmatūras industrijas vājiem
pamatiem
●
Analoģija ar aparatūras inženierzinātņu disciplīnām
●
1990 – Microsoft OLE/COM, IBM SOM
●
Enterprise JavaBeans, COM+, OSGI
5. 1.Uz komponentiem balstītā
programmatūras izstrāde
55
Uz komponentiem balstītā programmatūras izstrāde
(CBSE) – programmatūras inženierijas disciplīna, orientēta
uz programmatūras sistēmu dekompozīciju funkcionālajos
vai loģiskajos komponentos ar stingri definētām saskarnēm,
ar kuru palīdzību tiek nodrošināta sadarbība starp
komponentiem
6. 2.Programmatūras komponents,
komponentu modelis
66
Programmatūras komponents
●
kompilēta programmatūras daļa (Microsoft COM)
●
kompozīcijas vienība ar stingri specificētām saskarnēm
un skaidrām kontekstuālām atkarībām (Szyperski)
●
neatkarīgi izstrādāta atkārtoti lietojama programmatūras
daļa, kura ir kombinējama ar citiem komponentiem
(D.Souza)
7. 2.Programmatūras komponents,
komponentu modelis
77
Programmatūras komponents
ir programmatūras elements
●
atkārtoti lietojama izvēršanas un kompozīcijas vienība
●
neatkarīgi izvēršams un izmantojams kompozīcijā ar
citiem bez papildus izmaiņām atbilstoši standartam
●
atbilst komponentu modelim
●
skaidri definēta standartizēta saskarne, atdalīta no
realizācijas
●
izpildes laika kompozīcija
8. 2.Programmatūras komponents,
komponentu modelis
●
Komponentu modelis definē komponentu sadarbības,
savietojamības un kompozīcijas standartu
●
Komponentu modeļa realizācija ir izpildāmo
programmatūras elementu kopa, kas nodrošina komponentu
izpildīšanu
●
definē noteikumus individuālā komponenta konstruēšanai
●
nosaka pamata mehānismus komponentu mijiedarbībai
●
nodrošina komponentu paplašināšanas mehānismus
88
9. 2.Programmatūras komponents,
komponentu modelis
●
CBSE un OOP
●
OOP - Programmatūras izstrāde notiek saskaņā ar
faktisko vai iedomājamo objektu mentālo modeli
●
CBSE – Orientējās uz programmatūras izstrādi no
gataviem komponentiem (līdzīgi aparatūras inženierijas
nozarēs)
●
Komponentiem piemīt lielāka granularitāte
●
Komponentiem ir plašākā mijiedarbības mehānismu kopa
99
10. 3.Programmatūras komponentu saskarnes
●
Komponenta piekļuves punktu specifikācija
●
Komponenta uzvedības abstrakcija, kas apraksta tā
mijiedarbības un ierobežojumus.
●
Nodrošināta saskarne – komponents nodrošina visu
saskarnes operāciju realizāciju.
– Paslēpj komponenta implementēšanas detaļas.
– Nosaka komponenta funkcionālas īpašības
●
Nepieciešama saskarne – komponents izmanto saskarnē
aprakstīto funkcionalitāti un sagaida kāda cita
programmatūras elementa pastāvēšanu, kurš nodrošinātu
saskarnes realizāciju
1010
11. 3.Programmatūras komponentu saskarnes
●
Komponentu mijiedarbības standarts
●
nosaka komponenta saskarnes elementus
●
aptver tiešās un netiešās mijiedarbības starp
komponentiem
●
nosaka saskarnes reģistrēšanas/uzturēšanas aspektus
1111
14. 5.Tīmekļa pakalpes (Web services)
1414
● Nodrošina augstu
atkārtotās lietošanas
iespējamību - sistēmas
projektētāji izveido
programmatūru kā servisu
kopu, kuri var būt izmantoti
no jebkuras platformas un
izpildes vides
● Tīmekļa pakalpes
saskarne ir definēta
datoram saprotamā
formātā (WSDL).
15. 6.Modeļvadāma programmatūras
izstrāde (MDE)
●
Sistemātiskā modeļu pielietošana programmatūras izstrādes
dzīves ciklā
●
Programmatūras modeļu izmantošana primāro izstrādes
artefaktu un izteiksmes formu veidā
●
Zināšanu atspoguļošana strukturētā veidā ar modelēšanas
valodas palīdzību
1515
16. 7.Modeļvadāma arhitektūra (MDA)
●
OMG (Object Management Group) iniciatīva
●
No platformas neatkarīga pieeja programmatūras
projektēšanai un izstrādei
●
Nodrošina karkasu un vadlīnijas programmatūras izstrādes
procesam
●
Mērķis
●
izstrādes procesa uzlabošana, ātri realizējamas procesā
iekļautas aktivitātes, kvalitāte
●
sistēmas funkcionalitātes atdalīšana no detaļām, kā
sistēma izmanto izvēlētas platformas iespējas
●
pārnesamība, sadarbspēja un atkārtotā lietošana
1616
17. 7.Modeļvadāma arhitektūra (MDA)
●
MDA izstrādes dzīves cikls
●
pēc būtības neatšķiras no tradicionāla
●
atšķirība izpaužas izstrādes procesa artefaktu būtībā
1717
18. 8.MDA karkass
● CIM (Computation Independent Model)
PIM (Platform Independent Model, Platformnearkarīgs
modelis) – sistēmas funkcionēšanas modelis neatkarīgi no
izvēlētās realizācijas vides. Ļauj izvairīties no pārāk agras
izpildāmas platformas tehniskās detalizēšanas
● PSM (Platform Specific Model, platformas specifisks
modelis) – sistēmas funkcionēšanas modelis
implementēšanas platformas jēdzienos
1818
19. 9.Modelēšana un meta-modelēšana
●
Modelis - sistēmas vai tās daļas apraksts valodā ar skaidri
definētu formu (sintaksi) un nozīmi (semantiku), kura varētu
būt automātiski interpretēta ar datora palīdzību (piem. UML)
●
reālas pasaules parādību abstrakcija
●
Meta-modelis – modelēšanas valodas modelis; atspoguļo
pati modeļa īpašības; definē struktūru, semantiku un
ierobežojumus vairāku modeļu kopai
●
Meta-modelēšana - tehnika modeļu sintakses un to
elementu kopsakarību definēšanai
1919
20. 10.MDA tehnoloģiskais pamats
OMG četru slāņu arhitektūra
Meta-meta-modelis (M3)
Meta-modelis (M2)
Modelis (M1)
Informācija (M0)
2020
22. 11.MDA tehnoloģiskais pamats
●
MOF (Meta Object Facility) - OMG meta-modeļu specificēšanas
standarts, kurš ietver noteiktu konstrukciju kopu objektorientētas
informācijas modelēšanai
●
ļauj definēt (modelēšanas) valodas struktūras un uzvedības
aspektus
●
nespecificē modeļu apspoguļošanas vai saglabāšanas standartu
●
XMI (XML Metadata Interchange) – OMG Meta-datņu Apmaiņas
standarts, ļauj standartizēt MOF sakritīgo modeļu apmaiņu un piekļuvi
<XMI xmi.version="1.1"
xmlns:UML="omg.org/UML/1.4">
<XMI.header> ...
<UML:Model xmi.id="1">
<UML:Namespace.ownedElement>
<UML:Stereotype xmi.id="2" isRoot="false"
isLeaf="false“ ...
2222
23. 12.Modeļu transformācija
●
Viena modeļa pārveidošanas process citā sistēmas modelī
●
Automātiskā mērķa modeļa ģenerēšana no avota modeļa
atbilstoši transformāciju definīcijai (transformācijas noteikumu
kopai)
●
Transformācijas noteikums - apraksta kādā veidā viena vai
vairākas konstrukcijas (elementi) avota modeļa valodā varbūt
transformētas mērķa valodā
Avota meta-modelisAvota meta-modelis
Avota modelisAvota modelis
Mērķa meta-modelisMērķa meta-modelis
Mērķa modelis
Transformācijas
noteikumi
Transformācijas
noteikumi
Atbilst Atbilst
Izmanto Veido
Izmanto Izmanto
Transformācijas
rīks
2323
24. 12.Modeļu transformācija
Transformācijas process un MDA
● zemākā līmeņa modeļu un koda ģenerēšana no augstākā
līmeņa modeļiem
● modeļu atspoguļošana un sinhronizēšana vienā vai vairākos
abstrakcijas līmeņos
● modeļu evolūcijas un uzlabošanas procesi
● augstākā līmeņa modeļu ģenerēšana no zemāka līmeņa
modeļiem
● M2T (no modeļa uz tekstu), M2M (no modeļa uz modeli)
25. Novērtējums
●
Nodrošina augstāko izstrādātāju produktivitāti, piedāvājot
līdzekļus PIM transformācijas automatizēšanai
●
Konkrētas transformācijas loģika tiek definēta vienreiz, un tā
varbūt izmantojama vairāku sistēmu izstrādē
●
PIM ļauj izstrādātājiem izvairīties no pārāk agras izpildāmas
platformas tehniskās detalizēšanas – tehnoloģijas specifiskas
detaļas tiek aprakstītas transformācijas līmenī
●
PSM un koda līmenī izstrādātajam paliek mazāk darba, jo
noteikts koda apjoms tiek automātiski ģenerēts
2525