Statistica e archeologia. Metodi, esempi e ...qualche ortaggio
daprogramebis obieqt-orientirebuli meTodi
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of daprogramebis obieqt-orientirebuli meTodi
1
saqarTvelos teqnikuri universitetisaqarTvelos teqnikuri universitetisaqarTvelos teqnikuri universitetisaqarTvelos teqnikuri universitetisaqarTvelos teqnikuri universiteti
informatikisa da marTvis sistemebisinformatikisa da marTvis sistemebisinformatikisa da marTvis sistemebisinformatikisa da marTvis sistemebisinformatikisa da marTvis sistemebis
institutiinstitutiinstitutiinstitutiinstituti
gia surgulaZegia surgulaZegia surgulaZegia surgulaZegia surgulaZe
daprogramebisdaprogramebisdaprogramebisdaprogramebisdaprogramebis
obieqt-orientirebuliobieqt-orientirebuliobieqt-orientirebuliobieqt-orientirebuliobieqt-orientirebuli
meTodimeTodimeTodimeTodimeTodi
Tbilisi 2005Tbilisi 2005Tbilisi 2005Tbilisi 2005Tbilisi 2005
sarCevisarCevisarCevisarCevisarCevi
2
sarCevisarCevisarCevisarCevisarCevi
I Tavi. ZiriTadi cnebebiI Tavi. ZiriTadi cnebebiI Tavi. ZiriTadi cnebebiI Tavi. ZiriTadi cnebebiI Tavi. ZiriTadi cnebebi
1.1. daprogramebis meTodi, stili, modeli1.1. daprogramebis meTodi, stili, modeli1.1. daprogramebis meTodi, stili, modeli1.1. daprogramebis meTodi, stili, modeli1.1. daprogramebis meTodi, stili, modeli (algoriTmi) da ena (algoriTmi) da ena (algoriTmi) da ena (algoriTmi) da ena (algoriTmi) da ena1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi
II Tavi. obieqt-orientirebuliII Tavi. obieqt-orientirebuliII Tavi. obieqt-orientirebuliII Tavi. obieqt-orientirebuliII Tavi. obieqt-orientirebuli
daprogramebis meTodi daprogramebis meTodi daprogramebis meTodi daprogramebis meTodi daprogramebis meTodi
2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis arsi arsi arsi arsi arsi
2.2. obieqtebi 2.2. obieqtebi 2.2. obieqtebi 2.2. obieqtebi 2.2. obieqtebi da klasebi. monacemTada klasebi. monacemTada klasebi. monacemTada klasebi. monacemTada klasebi. monacemTa abstraqtul abstraqtul abstraqtul abstraqtul abstraqtuli tii tii tii tii tipebipebipebipebipebi
2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba
2.4. polimorfizmi2.4. polimorfizmi2.4. polimorfizmi2.4. polimorfizmi2.4. polimorfizmi
2.5. obieqt-orientirebuli diagramebis2.5. obieqt-orientirebuli diagramebis2.5. obieqt-orientirebuli diagramebis2.5. obieqt-orientirebuli diagramebis2.5. obieqt-orientirebuli diagramebis ageba sistemebis daproeqtebis etapze ageba sistemebis daproeqtebis etapze ageba sistemebis daproeqtebis etapze ageba sistemebis daproeqtebis etapze ageba sistemebis daproeqtebis etapze
I I I Tavi . modelirebis unificirebuliII I Tavi . modelirebis unificirebuliII I Tavi . modelirebis unificirebuliII I Tavi . modelirebis unificirebuliII I Tavi . modelirebis unificirebuli
ena ena ena ena ena (UML)
3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba UML-teqnologiiT-teqnologiiT-teqnologiiT-teqnologiiT-teqnologiiT
3.2. 3.2. 3.2. 3.2. 3.2. UML - teqnologiis etapebi da teqnologiis etapebi da teqnologiis etapebi da teqnologiis etapebi da teqnologiis etapebi da diagramebi diagramebi diagramebi diagramebi diagramebi
4. 4. 4. 4. 4. kiTxvebi da savarjiSoebikiTxvebi da savarjiSoebikiTxvebi da savarjiSoebikiTxvebi da savarjiSoebikiTxvebi da savarjiSoebi
literaturaliteraturaliteraturaliteraturaliteratura
3
I TaviI TaviI TaviI TaviI Tavi
ZiriTadi cnebebiZiriTadi cnebebiZiriTadi cnebebiZiriTadi cnebebiZiriTadi cnebebi
1.1. daprogramebis meTodi, stili,1.1. daprogramebis meTodi, stili,1.1. daprogramebis meTodi, stili,1.1. daprogramebis meTodi, stili,1.1. daprogramebis meTodi, stili,
modeli da enamodeli da enamodeli da enamodeli da enamodeli da ena
`meTodi~ berZnuli sityvaa (methodos) da niSnavs gzas,
kvlevis gzas, Teorias. esaa miznis miRwevis xerxi konkretuli
amocanis gadawyvetisas, garkveuli wesebis simravlis
sistematuri gamoyenebis safuZvelze.
`programa~, aseve berZnulia (program, routine) da gamoxatavsoperaciebis Sesrulebis mimdevrobis aRweras winaswar cnobili
algoriTmis safuZvelze.
daprogrameba aris programis Seqmnis procesi. is moicavs
programis daproeqtebis, kodirebisa da testirebis etapebs.
amgvarad, daprogramebis meTodi marTvis procesia, romlis
drosac iqmneba programuli produqti (programuli paketi).
programis xarisxi da muSaobis efeqturoba damokidebulia
rogorc daprogramebis meTodze (obieqturi faqtori), aseve
damprogrameblis codnaze, gamocdilebasa da temperamentze
(subieqturi faqtori). programa SeiZleba asrulebdes Tavis
movaleobas, xsnides ama Tu im amocanas, magram igi iyos cudad
an kargad Sedgenili. `cudad~ an `kargad~ niSnavs imas, Tu
ramdenad gasagebadaa programa dawerili (Sinaarsobrivad),
rogoria misi gamosaxvis struqtura anu forma.
daprogramebis procesis ganxilvisas gamoyofen oTx ZiriTad
cnebas: daprogramebis meTods, daprogramebis stils, damuSavebis
algoriTms (models) da daprogramebis enas.
daprogramebis meTodidaprogramebis meTodidaprogramebis meTodidaprogramebis meTodidaprogramebis meTodi asaxavs programis Sesrulebis
xerxs, teqnologias. magaliTad, struqturuli daprogrameba
niSnavs programuli paketebis Seqmnas daRmavali daproeqtebisa
da programebis moduluri principebis gamoyenebiT.
arsebobs saxlis aSenebis tradiciuli meTodi, dawyebuli
4
saZirkvlidan, pirveli, meore da a.S. sarTulebi da bolos,
saxuravi. arsebobs meore meTodic, saZirkveli, Semdeg saxuravi,
zeda sarTuli, qveda sarTuli da bolos pirveli sarTuli.
ra Tqma unda, Senobis agebis am or Sesrulebas gansxvavebuli
teqnologiebi sWirdeba. saboloo produqti Senobaa, romelsac
ar emCneva ra meTodiT aSenda, e.i. meTodi ar emCneva produqts.
asevea programaSi. misi wakiTxviT Zneli dasadgeni iqneba, Tu
romeli meTodia gamoyenebuli (magaliTad, daRmavali Tu aRmavali
daproeqtebis).
is, rac SeiZleba SevamCnioT programas an Senobas, aris
forma, anu gamosaxvis, aRweris stili. ̀ stili~ berZnuli sityvaa
(stylus) da Cxirs niSnavs, romelTac Zvelad sanTlis dafebze
werdnen (Cxapnidnen).
mSeneblobis stili: magaliTad, sveticxoveli (me-10 saukune)
marTlmadidebluri eklesiebis stiliTaa agebuli, parizis
RvTismSoblis taZari (me-12 saukune) _ goTuri stilia
(bazilika), riTac kaTolikuri eklesiebi gamoirCeva.
protestantuli eklesia (me-16 saukune) stiliT ar hgavs
Tavis winamorbedebs, ara aqvs gumbaTebi, wminda xatebi da
qandakebebi da a.S.
stilis saSualebiT xSirad gansazRvraven mxatvruli
nawarmoebis an sportuli klubis xelweras. magaliTad, pikasos
stili (kubizmi, neoklasikuri mimdevroba, me-20 saukune),
fexburTSi _ braziliuri stili da a.S. amgvarad, stilia is,
risi SemCnevacaa SesaZlebeli, sxva obieqtebTan Sedarebis gziT
SesaZlebelia misi gamorCeva.
daprogramebis stilidaprogramebis stilidaprogramebis stilidaprogramebis stilidaprogramebis stili. amboben, rom damprogramebels aqvs
cudi stili, Tu is xSirad� gamoiyenebs GOTO operators, an
monacemTa aRwerisTvis iyenebs iseT simboloebs da saxelebs,
romelTac ara aqvT kavSiri SinaarsTan, daniSnulebasTan.
programa SeiZleba agebuli iqnes operatorebis gamoyenebiT,
maSin igi proceduruli stilisaa (magaliTad, C,Pascal dasxva). Tu programaSi iyeneben mxolod funqciebs, maSin saqme
5
gvaqvs funqciur stilTan (magaliTad, Lisp). Sedegebis misaRebadprograma SeiZleba agebuli iqnes logikuri programebis (wesebis)
simravliT da am wesebis damuSavebisaTvis logikuri gamoyvanis
algoriTmebiT. maSin vlaparakobT daprogramebis logikur
stilze (magaliTad, Prolog). Tu daprogramebis dros gamoiyenebaobieqtebis asaxvis abstraqtuli xerxi, romlis safuZvelzec
isini SeiZleba gaerTianebul iqnen erT klasSi da aqvT
SesaZlebloba gadascen TavianTi Tvisebebi axlad Seqmnil
obieqtebs, maSin saqme gvaqvs obieqtebze orientirebul anu
daprogramebis obieqt-orientirebul stilTan (magaliTad, C++,Delphi da sxva).
erT programaSi SesaZlebelia gamoyenebuli iqnes ramdenime
stili, maSin aseT enebs hibriduls uwodeben. ena miT ufro
mZlavria, rac meti stilia masSi realizebuli. aRniSnul
sakiTxebs momdevno paragrafebSi ufro detalurad SevexebiT.
davsvaT kiTxva: romeli stilia ukeTesi, romeli stili
SevarCioT amocanis gadasawyvetad? swor pasuxs TviT
konkretuli amocanis analizi mogvcems. saWiroa dadgindes
amocanis mizani, Sinaarsi, ZiriTadi elementebis nairsaxeoba
dabolos, rac mTavaria, _ am amocanis gadamuSavebis modeli
(algoriTmi).
amgvarad, Tu daprogramebis stili programis formas gvaZlevs,
gadamuSavebis modeli am formas SinaarsiT avsebs. stilis
msgavsad, gadamuSavebis sxvadasxva modeli arsebobs. ganvixiloT
zogierTi maTgani.
_ gadamuSavebis tradiciuli modeligadamuSavebis tradiciuli modeligadamuSavebis tradiciuli modeligadamuSavebis tradiciuli modeligadamuSavebis tradiciuli modeli fon-neimanis
(amerikeli maTematikosi, 1903-1957) manqanis saxeliTaa cnobili.
am manqanis principiT muSaobs TiTqmis dRemde arsebuli yvela
kompiuteri. esaa mimdevrobiTi, bijuri Sesruleba yoveli
operatorisa, romelic cvlis manqanis mdgomareobas. igi flobs
mexsierebas da monacemTa damuSavebis iseT operaciebs, rogoricaa
Sedareba, gadacema, SeerTeba, gamoyvana (warmoeba), waSla da
a.S.
6
_ gadamuSavebis funqciuri modeligadamuSavebis funqciuri modeligadamuSavebis funqciuri modeligadamuSavebis funqciuri modeligadamuSavebis funqciuri modeli igulisxmeba
maTematikuri funqciis cneba, romelic gvaZlevs gansazRvris
aris calsaxa asaxvas mniSvnelobaTa areze. gansazRvrisa da
mniSvnelobaTa areebi arsebobs abstraqtulad (simravlis saxiT),
imisgan damoukideblad, Tu ra mimdevrobiT airCeva wyvilebi,
romlebic funqciur damokidebulebebs asrulebs. manqanas
miewodeba funqciis saxeli da argumentebi, romlis safuZvelze
is i povis, gadaamuSavebs da gamoscems monacemTa Sesabamis
mniSvnelobebs.
_ gadamuSavebis relaciuri modeligadamuSavebis relaciuri modeligadamuSavebis relaciuri modeligadamuSavebis relaciuri modeligadamuSavebis relaciuri modeli. igulisxmeba
maTematikuri damokidebulebebis, mimarTebis cneba. relaciebi
ganisazRvreba rogorc qvesimravleebi monacemTa sxvadasxva
domenebis dekartuli namravlidan. esaa cxrili striqonebiT
(korteJebiT), romelTa svetebi moTavsebulia atributTa
(velebis) saxelebiT, xolo cxrilis striqonisa da svetis
gadakveTaze moTavsebulia monacemis konkretuli mniSvneloba
Sesabamisi domenidan (erTgvarovan monacemTa simravle). manqanas
miewodeba relaciis saxeli da argumentebi, magaliTad, mosaZebn
atributTa saxelebi, romlebic winaswar gansazRvrul predikats,
logikur pirobas unda akmayofilebdes. igi amuSavebs am predikats
da eZebs relaciaSi Sesabamis monacemTa striqonebs.
_ mtkicebaTa modelimtkicebaTa modelimtkicebaTa modelimtkicebaTa modelimtkicebaTa modeli. igi efuZneba deduqcias da iyenebs
logikur formulebs, romlebic qmnis simravles aqsiomaTa
saxiT. amaTgan mtkicdeba, gamoiyvaneba axali formulebi
Teoremebis saxiT. mtkicebaTa Teoriis fuZemdebelia germaneli
maTematikosi daviT gilberti (1862-1943), romelmac pirvelma
Semoitana es cneba da gamoiyena maTematikuri Teoriis, kerZod,
aqsiomaTa sistemis arawinaaRmdegobriobis dasamtkiceblad.
mtkicebaTa modelis gamosayeneblad manqanas unda SeeZlos
pirveli rigis logikuri predikatebis damuSavebis meqanizmis
realizeba.
_ problemaTa gadamwyvetiproblemaTa gadamwyvetiproblemaTa gadamwyvetiproblemaTa gadamwyvetiproblemaTa gadamwyveti. igi amuSavebs problemebis
7
specifikaciebs. problema aRiwereba gansazRvruli formiT, xolo
problemaTa gadamwyveti gamoiyvans misi amoxsnis gzas.
xelovnuri inteleqtis sistemebSi dRemde gamoyenebul aseTi
meqanizmebi orientirebulia im martivi problemebis aRsawerad,
romlebic mocemulia sawyisi situaciebis miznobrivi
predikatebisa da dasaSveb operatorTa erTobliobis bazaze.
rogorc zemoaRweril, aseve sxva saxis damuSavebis modelebis
analizi gviCvenebs, rom umravlesi maTgani maTematikuri
modelebia, maT Soris garkveuli wili logikur modelebze
modis. am sakiTxebis Seswavla da Semdgomi ganviTareba dResac
aqtualur mecnierul mimarTulebad iTvleba, gansakuTrebiT
ki maTematikuri modelebis semantikuri problemebis gadawyveta.
Cven gavecaniT daprogramebis meTodis, stilisa da modelis
cnebebs. davsviT amocana (zogadad), ganvsazRvreT misi
gadawyvetis gza. SevarCieT daprogramebis meTodi da stili,
movaxdineT amocanis modelisa da misi Sesrulebis algoriTmis
formalizeba. dagvrCa am algoriTmis kompiuterSi gadatana
da Sedegebis miReba. es sakiTxebi wydeba daprogramebis enebis
safuZvelze.
daprogramebis enebidaprogramebis enebidaprogramebis enebidaprogramebis enebidaprogramebis enebi formaluri sistemebia, romelTa
saSualebiT aRiwereba amocanis gadawyvetis algoriTmebi ise,
rom SesaZlebeli xdeba maTi Semdgomi manqanuri gadamuSaveba.
amgvarad, daprogramebis ena is instrumentuli saSualebaa,
romliTac algoriTmi Caiwereba manqanur kodebSi.
yovel enas da, maT Soris, manqanursac, aqvs simboloebis
alfabeti, romlis bazaze aiwyoba enis konstruqciuli
elementebi: operatorebi (dajavSnul sityvaTa erToblioba),
funqciebi (standartuli da arastandartuli), gamosaxulebebi
da operaciebi (ariTmetikuli da logikuri), relaciebi, wesebi
da a.S. yovel enaSi realizebulia am konstruqciuli elementebis
mani pulirebis gramatikuli wesebi, monacemTa abstraqtuli
struqturebis aRweris saSualebani, operaciebis, funqciebisa
8
da qveprogramebis Sesrulebis mimdevrobis marTvis saSualebani
(ganStoebebi, ciklebi, gadamrTvelebi, rakursiebi) da a.S.
yovel daprogramebis enas aqvs Tavisi stili. SeiZleba erT
enaSi daprogramebis ramdenime stili iyos realizebuli, amiT
izrdeba enis simZlavre da moqniloba. ena xSirad orientirebulia
garkveuli klasis amocanebis gadawyvetaze, maT abstraqciaze.
magaliTad, PROLOG ena logikuri daprogramebis amocanebs
wyvets, LISP _ funqciur, C da PASCAL struqturuli
daprogramebis karg instrumentebad iTvleba, C++ da DELPHIproceduruli da deskrifciuli tipis monacemTa manipulirebis
iseTi enebi, rogoricaa algebruli ena ISBL (Information Sys-tem Base Language), SekiTxvebis ena ekranuli redaqtoriT QBE(Query By Example), SQL an SEQUEL enebi, romlebic algebrul
da aRricxvis enebs Soris mdgomi enebia da a.S.
bolo aTwleulSi gansakuTrebiT ganviTareba da farTo
gamoyeneba hpova obieqt-orientirebuli daprogramebis enebma
(C++, Delphi), funqciuri (Clos) da logikuri daprogramebis
(Prolog++) koncefciebiT. obieqt-orientirebuli enebi obieqt-orientirebuli enebi obieqt-orientirebuli enebi obieqt-orientirebuli enebi obieqt-orientirebuli enebi or jgufad iyofa:
1. daprogramebis enebis gafarToebiT miRebuli hibriduli
obieqt-orientirebuli enebi, maT miekuTvneba Simula-67, C++,Clos, Prolog++ da sxv.
2. axlad Seqmnili, e.w. sufTa obieqt-orientirebuli enebi.
magaliTad, Smaltalk-80, Eiffel da a.Sorive jgufs Tavisi dadebiTi da uaryofiTi momentebi
gaaCnia gamoyenebis TvalsazrisiT. magaliTad, sufTa obieqt-
orientirebuli enebi kompaqturi da advilad asaTvisebelia,
magram aklia daprogramebis universaluri enebis bevri Tviseba
(saSualebebi), gamoyenebis are aseve SezRudullia. Tavis mxriv,
hibriduli enebi moculobiT didia, magram maTSi Serwymulia
rogorc ZiriTadi enis (magaliTad C) dadebiTi mxareebi, aseveaxali obieqt-orientirebuli enebis Tvisebebi. es ki ganapirobebs
9
imas, rom C++ SeuZlia farTo klasis amocanebis gadaWra. igi
yovelgvari gadaprogramebis gareSe TiTqmis mTlianad amuSavebs
im arsebul sistemebsac, romlebic C-zea dawerili mis Seqmnamde.
kompiuteruli teqnologiis Semdgomma ganviTarebam, axali
Taobis manqanebis (Pentium, 686 procesorebis bazaze) da Su-per-VGA monitorebis Seqmnam dasabami misca mZlavri grafikuli
saSualebebis ganviTarebas. daiZra axali talRa daprogramebis
istoriaSi: Visual-Basic, Borland-C++Builder(Delphi), Oracle da a.S.viTardeba daprogramebis inJineria da axal-axal siurprizebs
umzadebs kompiuterTa Tayvanismcemlebs.
1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi1.2. kompilatorebi da interpretatorebi
arsebobs daprogramebis enebis farTo speqtri. isini
gansxvavdeba erTmaneTisagan sintaqsuri, semantikuri da
pragmatuli aspeqtebiT. pirvelSi igulisxmeba enis sintaqsi
da konstruqciebi (wesebi), meoreSi informaciis Sinaarsis
asaxvis done, mesameSi ki _ misi gamoyenebis daniSnulebis
sfero.
kompiuteruli enebi pirobiTad SeiZleba mowesrigebul iqnes
`qvemodan-zemoT~: manqanuri (asembleruli) enebi, daprogramebis
universaluri enebi, monacemTa bazebis marTvis sistemebis enebi,
maRali donis (salaparako, bunebriv enasTan axlos mdgomi)
enebi.
gramatikuli da struqturuli konstruqciebiT enebi
Tavsdeba sistemur programul paketebSi, romelTac samuSao
instrumentuli saSualeba ewodeba. maT safuZvelze iqmneba
samuSao garemo anu momxmareblis interfeisi. sistemuri
programuli paketi kompilatori an interpretatoria. dabali
donisa da universaluri enebi metwilad pirvels miekuTvneba,
monacemTa bazebisa da maRali donis enebi ki _ meores. arsebobs
gamonaklisebic.
10
ganvixiloT kompilatorsa da interpretators Soris
ZiriTadi gansxvaveba. zogadad, programis momzadeba da misi
manqanaze Sesruleba sam ZiriTad etaps gaivlis (ix. nax.1.1):
sawyisi teqstis, obieqturi (manqanuri) kodis da Sesrulebadi
failis.
programis sawyis teqsts, romelic am enis operatorebisa
da dasaSvebi konstruqciebisagan Sedgeba, wers adamiani da
miawvdis kompiuterSi am enis kompilators (magaliTad, tc.exe;bc.exe) an interpretators (magaliTad, qbasic.exe,foxpro.exe).sawyisi teqsti umeteswilad inglisuri enis
terminebiT da amocanaSi gamoyenebuli formaluri
konstruciebiTaa dakompleqtebuli. aseTi teqsti manqanisaTvis
gaugebaria. amitomac mas sWirdeba `Tarjimani~. esaa swored
kompilaciis faza: programis sawyisi teqstis sintaqsuri
Semowmeba (Secdomebis analiziT) da Sesabamisi manqanuri kodis
formireba (*.obj-gafarToebiT). kodebSi gamoxatuli teqsti
manqanisaTvis misaRebia da igi aanalizebs, Tu ra unda programas
misgan, anu ra saxis resursebs Txoulobs igi manqanuri
P_NAME.EXEprogramis Sesrulebadi
faili
programis manqanurikodi
faza 2
P_NAME.C
P_NAME.OBJ
faza 1
programis sawyisi teqsti
kavSirebisredaqtireba
/linker/
kompilacia/compiler/
nax. 1.1 . programis kompilaciis etapebi (`nax. 1.1 . programis kompilaciis etapebi (`nax. 1.1 . programis kompilaciis etapebi (`nax. 1.1 . programis kompilaciis etapebi (`nax. 1.1 . programis kompilaciis etapebi (`C~-enis magaliTze)~-enis magaliTze)~-enis magaliTze)~-enis magaliTze)~-enis magaliTze)
11
mexsierebisa da programuli standartuli biblioTekidan. me-
2 fazaze, kavSirebis redaqtori Cveni programis manqanur
kods miuerTebs misTvis saWiro sxva qveprogramebs da funqciebs.
amis Semdeg iqmneba Sesrulebadi faili (*.exe-gafarToebiT).Tu kompilatorTan gvaqvs saqme, maSin es exe-faili Tavsdeba
mocemul direqtoriaSi da misi gamoyeneba SeiZleba
mravaljeradad (wina etapebis gauvlelad). programis
Sesrulebis procesi swrafia.
interpretatoris SemTxvevaSi orive faza sruldeba, magram
ar iqmneba exe-faili. programa erTxel Sesruldeba. Tu
xelmeored gvinda avamuSaoT programa, isev unda gamoviZaxoT
misi sawyisi teqsti da CavataroT kompilacia da linkireba.
es ki, ra Tqma unda, anelebs programis Sesrulebisa da Sedegebis
miRebis process.
kompilirebuli exe-faili mobiluria, misi Sesruleba SeiZleba
sxva Tavsebad manqanebzec kompilatoris gareSec.
interpretatorze Sesrulebuli programa ki moiTxovs Tavisi
sistemuri interpretatoris arsebobasac, rac araa efeqturi.
daprogramebis universaluri ena `C~ (`C++~) miekuTvnebaswored kompilatorTa ojaxs. misi gamoyenebis efeqturobis
damadasturebelia is faqti, rom TviT qseluri operaciuli
sistema UNIX, operaciuli sistema Windows, Microsoft-is paketebida sxva dawerilia am enaze. daprogramebis enebi Java da
Prolog ki miekuTvneba interpretatorebs. maTi `deda~-enebia
Sesabamisad C++ da Pascal.
12
II Tavi.II Tavi.II Tavi.II Tavi.II Tavi. obieqt-orientirebuli obieqt-orientirebuli obieqt-orientirebuli obieqt-orientirebuli obieqt-orientirebuli
daprogramebis meTodidaprogramebis meTodidaprogramebis meTodidaprogramebis meTodidaprogramebis meTodi
2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis2.1. obieqt-orientirebuli daprogramebis
arsiarsiarsiarsiarsi
obieqt-orientirebuli (anu obieqtze orientirebuli)
daprogrameba Tanamedrove informaciuli teqnologiis erT-
erTi aqtualuri da mZlavri meTodologiuri saSualebaa.
misi mizania didi, rTuli programuli sistemebis konstruireba
(Software Engineering). igi Tvisebrivad axali koncefciebis
matarebeli daprogramebis teqnologiaa. sistemebis obieqt-
orientirebuli analizisa da obieqt-orientirebuli daproeqtebis
meTodebiTa da realizaciis moqnili instrumentuli saSualebebiT,
mTlianad moicavs struqturuli daprogramebis ideologiasac.
obieqt-orientirebuli daprogramebis aqtualur
mniSvnelobaze metyvelebs is faqtic, rom axali kompiuteruli
sistemebis Sefasebis erT-erT pirvel kriteriumad obieqt-
orientirebuli midgomis realizebadobas miiCneven.
obieqti (Object) ganixileba, rogorc garkveuli arsi (En-tity), romelic xasiaTdeba mdgomareobiT (monacemTa erToblioba)
da qceviT (funqciuri programebi). obieqtis qceva anu reaqcia,
romlis drosac misi axali mdgomareoba ganisazRvreba,
damokidebulia garedan mosul informaciaze, Setyobinebebze.
vinaidan obieqti umTavresi cnebaa, igi sawyisia obieqt-
orientirebuli daprogramebisa, amitom didi mniSvneloba aqvs
mis sworad gagebas. 2.1 da 2.2 naxazebze ganxilulia
biologiuri da informaciuli ujredis modelebi.
biologiuri ujredi kafsulirebulia membranis (garsis)
saSualebiT, romliTac is gamoiyofa sxva ujredebisa da
garemosagan. mas unari aqvs garemosgan miiRos qimiuri saxis
informacia da gadasces ujreds SigniT. SuagulSi moTavsebulia
birTvi, romelic ujredis ZiriTadi informaciis matarebelia.
igi Sedgeba qromosomebisgan, romlebic garkveuli genetikis
mqonea. ujredis dayofis (gamravlebis) dros xdeba memkvidruli
13
Tvisebebis gadacema. birTvis garSemo dajgufebulia sxvadasxva
funqciis elementebi. magaliTad, endoplazmuri bade - cilebis
warmoqmnis funqcia, mitoqondrebi - energiis gardaqmnis funqcia,
citoplazma (Txevadi moZravi garemo) - transportirebis
funqcia da a.S.
rogoria `informaciuli ujredis~ agebuleba da ra
analogiaa biologiurTan ?
2.2 naxazze ganixileba obieqti-studenti, romelic realuri
samyaros nawilia. igi kafsulirebulia, romlis SigniTac
moTavsebulia birTvi obieqtis Tvisebebis aRmwer monacemTa
elementebi S =(studentis nomeri), NAME (gvari, saxeli),
AGE (asaki) da a.S.
nax.2.2. `informaciuli ujredis" agebulebanax.2.2. `informaciuli ujredis" agebulebanax.2.2. `informaciuli ujredis" agebulebanax.2.2. `informaciuli ujredis" agebulebanax.2.2. `informaciuli ujredis" agebuleba
meTodebi
procesebi
funqciebi
S_#: 863501
NAME: Gulua
AGE: 19. .. .
moswreba
datvirTva
axali
daswreba
kafsula
nax.2.1. biologiuri ujredis agebulebanax.2.1. biologiuri ujredis agebulebanax.2.1. biologiuri ujredis agebulebanax.2.1. biologiuri ujredis agebulebanax.2.1. biologiuri ujredis agebuleba
14
kafsulaSi SeRweva da monacemebis damuSaveba garedan yvela
funqcias ar SeuZlia, arsebobs winaswar gansazRvruli meTodebi,
procesebi an funqciebi, romelTac zogadad servisuli programebi
SeiZleba vuwodoT. maT aqvs unari SeaRwios kafsulaSi da
gadaamuSaos monacemebi. amgvarad, informaciuli obieqti
kafsulirebuli monacemebisa da maTi dasamuSavebeli
meTodebisagan Sedgeba.
monacemebi gansazRvravs obieqtis statuss, anumonacemebi gansazRvravs obieqtis statuss, anumonacemebi gansazRvravs obieqtis statuss, anumonacemebi gansazRvravs obieqtis statuss, anumonacemebi gansazRvravs obieqtis statuss, anu
mdgomareobas, xolo meTodebi _ obieqtis qcevas, mismdgomareobas, xolo meTodebi _ obieqtis qcevas, mismdgomareobas, xolo meTodebi _ obieqtis qcevas, mismdgomareobas, xolo meTodebi _ obieqtis qcevas, mismdgomareobas, xolo meTodebi _ obieqtis qcevas, mis
reaqcias garedan mosul Setyobinebaze.reaqcias garedan mosul Setyobinebaze.reaqcias garedan mosul Setyobinebaze.reaqcias garedan mosul Setyobinebaze.reaqcias garedan mosul Setyobinebaze.
studentis monacemebis damuSaveba SeuZlia mxolod sam
funqcias, rogorebicaa moswreba, daswreba, datvirTva. Tu movida
Setyobineba swored am informaciis misaRebad, maSin obieqti
(kafsula) cnobs maT. sxva SetyobinebebisaTvis monacemebi
damalulia. Tu saWiroa axali funqciis damateba, is winaswar
unda moTavsdes `kafsulaSi~.
klasis cneba amerikelma mecnierma gradi buCma (1990 w.)
daukavSira obieqtTa simravlis iseT struqturas, romlis
ierarqia garkveuli memkvidreobiT da qceviT ganisazRvreba.
amrigad, obieqti klasis konkretul gamovlinebad, egzemplarad
SeiZleba ganvixiloT.
memkvidreobiTi kavSirebi obieqt-orientirebuli midgomis
aucilebeli komponentia da igi niSnavs obieqtebs (an funqciebs)
Soris memkvidruli Tvisebebis gadacemas, Tu isini erT klass
miekuTvneba.
klasisa da obieqtis modelirebis da daprogramebis sakiTxebi
C++ enis Seswavlisas ganxileba.
15
22222.....2. obieqtebi da klasebi.2. obieqtebi da klasebi.2. obieqtebi da klasebi.2. obieqtebi da klasebi.2. obieqtebi da klasebi.
monacemTa abstraqtuli timonacemTa abstraqtuli timonacemTa abstraqtuli timonacemTa abstraqtuli timonacemTa abstraqtuli tipebipebipebipebipebi
obieqtebi da klasebi obieqt-orientirebuli daprogramebis
ZiriTadi komponentebia. obieqtis cnebas, rogorc informaciuli
ujredisa, wina paragrafSi gavecaniT. axla davakonkretoT
misi gansazRvreba da avxsnaT am cnebis mimarTeba klasis
cnebasTan.
obieqti, rogorc aRvniSneT, realuri an warmosaxviTi samyaros
nawili, individualuri egzemplaria. is arsia (Entity) da gaaCniaunikaluri identifikatori, romliTac sxva arsebisagan
gansxvavdeba. obiqts aqvs individualuri Tvisebebi, romlebic
gamoixateba monacemebiT (atributebi, cvladebi) da qceviT
(meTodebi, funqciebi) garemoSi. Oobieqtebs Soris komunikaciebi
xorcieldeba Setyobinebebis gadacemiT. miRebuli Setyobinebis
safuZvelze obieqtSi aqtiurdeba Sesabamisi meTodi, romelic
mis qcevas gansazRvravs da SeuZlia gadaiyvanos igi sxva
mdgomareobaSi (icvleba atributebis da cvladebis
mniSvnelobebi). obieqtis mdgomareoba xasiaTdeba statikuri
komponentiT (atributebi) da dinamikuri komponentiT
(atributTa mniSvnelobebi). obieqtis qceva miuTiTebs imaze,
Tu rogor icvleba misi mdgomareobebi da sxva obieqtebTan
urTierTmimarTebani.
Oobieqtis cneba daprogramebis enaSi pirvelad gamoyenebul
iqna Simula-Si, xolo misi zemoaRniSnuli klasikuri ganmarteba
mogvca gradi buCma (G. Booch). man aseve Camoayaliba klasis
ganmarteba. klasi aris erTi tipis obieqtebis simravle,
romelTac aqvT msgavsi struqtura da qceva. 2.3Nnaxazze
naCvenebia erTi klasis magaliTi.
16
vinc icnobs monacemTa relaciuri bazebis Teorias da
arsTa - damokidebulebaTa (Entity - Relationship) modelis agebis
sakiTxebs, advilad SeamCnevs garkveul analogias saproblemo
sferos konceptualuri modelis, logikuri struqturisa da
misi fizikuri organizaciis realizaciasTan. msgavseba Semdegi
TvalsazrisiT SeiZleba iqnes ganxiluli: klasi studenti
eTanadeba 2.4 naxazze warmodgenili konceptualuri sqemis
fragments.
am konceptualuri sqemis gadataniT monacemTa bazebis
logikur struqturaSi miviRebT sqemas, romelic axloa klasis
modelTan. Llogikuri struqtura atributebisgan Semdgari
sqemaa, romelic obieqtebis statikur komponentebad movixsenieT
zemoT. klasis obieqtebi ki eTanadeba am logikuri struqturis
qveS mdgar fizikur Canawerebs (Canaweris unikaluri nomriTa
da velebis mniSvnelobebiT).
monacemTa relaciuri bazebis TeoriaSi gamoiyeneba
monacemebisa da programebis erTmaneTisagan izolirebis principi,
raTa ganxorcieldes maT Soris sruli damoukidebloba.
klasi (arsTa simravle): studentiklasi (arsTa simravle): studentiklasi (arsTa simravle): studentiklasi (arsTa simravle): studentiklasi (arsTa simravle): studenti
object (arsiarsiarsiarsiarsi ) studentistudentistudentistudentistudenti
S: 8505NAME ninoAGE 19
S: 8502NAME marikaAGE 16
S: 8501NAME giorgiAGE 18
S:
NAME:
AGE:..klasiscvladebi
raodenoba: 5
daswreba
datvirTva
moswreba
axali
. . .
nax.2.3. klasinax.2.3. klasinax.2.3. klasinax.2.3. klasinax.2.3. klasi
17
monacemTa abstraqtuli struqturebis gamoyenebiT es sakiTxi
dadebiTad iqna gadaWrili.
obieqt-orientirebuli daprogramebis ena flobs klasebis,
obieqtebis, maTi mniSvnelobebis damuSavebis meTodebis
realizaciis saSualebebs. rogorc aRvniSneT, ZiriTadi principi
monacemebis kafsulirebaSia. klasi ki Tavisi bunebiT monacemTa
axali tipia, romelic iqmneba TviT momxmareblis mier. rogor
unda gvesmodes es sakiTxi?
daprogramebis enebSi aris monacemTa standartuli tipebi
(magaliTad, int a), romelic acxadebs a cvlads mTeli tipiT.
es a programisaTvis obieqtia. Tu enas aqvs monacemTa axali
tipis Seqmnis SesaZlebloba, es mis simZlavreze miuTiTebs,
magaliTad, C++ enis fragmentis moSveliebiT gamovacxadoT
d1 d2
daswreba moswreba
o2 o3
o4
d3
datvirTvissaxe
d.#
saaTi
. . .
misamarTiasaki . . .gvarist #
studenti o1
l#... . .
leqcia gamocda
g-#..
. . .
datvirTva
nax.2.4. saproblemo garemos konceptualuri (nax.2.4. saproblemo garemos konceptualuri (nax.2.4. saproblemo garemos konceptualuri (nax.2.4. saproblemo garemos konceptualuri (nax.2.4. saproblemo garemos konceptualuri (ER) modeli) modeli) modeli) modeli) modelio-obieqti da d - damokidebulebao-obieqti da d - damokidebulebao-obieqti da d - damokidebulebao-obieqti da d - damokidebulebao-obieqti da d - damokidebuleba
18
Magistrant rogorc axali klasi:
class Magistrant { private:
char Name [20];int Age;char Specification [30];
public:Input-Name (NAME);Input-Age (AGE);Input-Spec (SPEC); };
void main(void) { Magistrant M1,M2,M3.....; // da misi obieqtebic:da misi obieqtebic:da misi obieqtebic:da misi obieqtebic:da misi obieqtebic:
. . . }
amgvarad, Magistrant iseTive tipia, rogorc int, char da a.S.yoveli obieqti M1,M2,M3..... aris konkretuli magistranti,
romelic struqturas iRebs class Magistrant (....)-idan privateda public operatorebi gansazRvraven monacemebsa (Name, Age,Specification) da funqciebze (Input-Name, Input-Age, Input-Spec) mimarTvis SesaZleblobas. pirveli lokaluria da malavsam monacemebs sxva obieqtebisaTvis. maTTan mimarTva SeuZlia
mxolod mocemuli obieqtis funqciebs da zogjer maT`megobrebsac~-friend). Public iZleva nebarTvas, raTa mis Semdeg
mdgomi funqciebi gamoyenebul iqnas obieqtis garedan. ganxilulimagaliTis ganzogadebiT SeiZleba davaskvnaT, rom klasebis
safuZvels monacemTa abstraqtuli tipebi warmoadgens.asxvaveben procedurul da monacemTa abstraqciebs. pirveli
cal-calke ganixilavs proceduris mizans, mis Sinaganrealizacias da monacemTa abstraqcias. es ukanaskneli niSnavs,
rom saWiroa mxolod imis codna, Tu ra operaciebs asrulebsmocemuli programuli moduli. Aaraa aucilebeli vicodeT,
Tu romel monacemebs amuSavebs (isini damalulia) da rogorsruldeba es operaciebi.
19
2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba2.3. klasebis ierarqia, memkvidreobiToba
obieqt-orientirebuli daprogramebis stilis sabazo
principebia inkafsulacia, memkvidreobiToba da polimorfizmi.pirveli maTgani wina paragrafSi ganvixileT da klasis cnebamde
mivediT. klasebs Sorisac arsebobs garkveuli damokidebulebani.ras niSnavs es ?
Tu arsebobs garkveuli klasebis biblioTekebi, romlebicSeqmnilia am momentamde, maSin sasurvelia moxdes maTi gamoyeneba
axali amocanebis gadasawyvetad. Aaxali klasebi undaganisazRvros arsebulis bazaze, moxdes maTi gafarToeba da
modifikacia. yovelive es mniSvnelovnad amcirebs axalisistemebis daproeqtebisa da realizaciis vadebs. swored amaSia
obieqt-orientirebuli daprogramebis meTodis efeqturobissaidumloeba.
ori klasidan erTi bazisuri, xolo meore warmoebulia.
2.5 naxazze naCvenebia martiv-memkvidreobiTi (single inherit-ance) da mraval-memkvidreobiTi (multiple inheritance)ierarqiuli kavSirebi.
sabazo klasi SeiZleba iyos abstraqtuli, romelsac TviTon
ar gaaCnia konkretuli egzemplari, magram gamoiyeneba sxva
warmoebuli klasebis misaRebad.
ierarqiuli kavSirebis aRwera SeiZleba grafis saSualebiT
orientirebuli xis saxiT, ciklebis gareSe. grafis wveroebs
klasebi Seesabameba. fesvuri wvero is klasia, romelic aRwers
yvelaze zogad Tvisebebs, isini ki gadaecema qveda ierarqiis
C A
B
A
B
sabazo klasi
warmoebuli klasi
ba
nax.2.5. memkvidreobiTobanax.2.5. memkvidreobiTobanax.2.5. memkvidreobiTobanax.2.5. memkvidreobiTobanax.2.5. memkvidreobiToba
20
warmoebul klasebs. amgvarad SeiZleba davaskvnaT, rom funqciuri
SesaZleblobebis TvalsazrisiT warmoebuli klasebi, ufro
mZlavria, vidre sabazo klasebi. es imitom, rom warmoebul
klass SeuZlia Tavisi funqciebis Sesrulebac da sabazo
klasisac, sabazos ki _ mxolod Tavisi. warmoebul klass
SeuZlia gamoiyenos sabazo monacemebic (Tu isini araa damaluli
specialuri atributebiT, magaliTad, private) da a.S.
2.4. polimorfizmi2.4. polimorfizmi2.4. polimorfizmi2.4. polimorfizmi2.4. polimorfizmi
obieqt-orientirebul daprogramebaSi inkafsulaciisa da
memkvidreobiTobis gverdiT mniSvnelovani adgili ukavia
polimorfizmis cnebas. is berZnuli sityvaa polymorphism da
`mravalformianobas~ niSnavs.
polimorfizmi obieqtis Tvisebaa. igi uzrunvelyofs erTsa
da imave funqciebis gamoyenebas sxvadasxva amocanaTa
gadasawyvetad. es amocanebi SeiZleba moiTxovdes funqciebisa
da maTi argumentebis sxvadasxva tipebs, rasac polimorfizmi
advilad wyvets e.w. virtualuri funqciebis realizaciiT (virtualfunction) an funqciaTa gadatvirTviT (overloaded function).
monomorful sistemebSi yoveli funqcia da misi argumentebi
mxolod erTi tipiTaa SezRuduli. MmagaliTad, Cveulebisamebr
C enaSi saWiroa daiweros ori sxvadasxva funqcia int - - - - - func(((((int, int))))) da float - - - - - func (((((float, float))))), Tuki gvinda or mTelricxvze an or namdvil ricxvze ariTmetikuli operaciebis
Catareba (nax. 2.6). polimorfizmis idea C++ enaSi saSualebas
gvaZlevs davweroT mxolod erTi func (a,b) funqcia, Semdeg kiargumentebis tipebis analizis safuZvelze enis kompilatori
TviTon airCevs, Tu romeli operaciebi Seasrulos.
21
2.5. obieqt-orientirebuli diagramebis ageba2.5. obieqt-orientirebuli diagramebis ageba2.5. obieqt-orientirebuli diagramebis ageba2.5. obieqt-orientirebuli diagramebis ageba2.5. obieqt-orientirebuli diagramebis ageba
sistemebis daproeqtebis etapzesistemebis daproeqtebis etapzesistemebis daproeqtebis etapzesistemebis daproeqtebis etapzesistemebis daproeqtebis etapze
didi sistemebis procesebis marTvisaTvis programuli
paketebis Seqmna da maTi Tanxleba funqcionirebis etapze,
sakmaod rTuli sakiTxia. igi bevradaa damokidebuli imaze,
Tu rogor, ra meTodebiTa da saSualebebiT iqna es sistema
Seqmnili. gansakuTrebuli yuradReba aris gasamaxvilebeli
sistemis daproeqtebis etapze. Ees sakiTxi unda ganvixiloT
obieqt-orientirebuli midgomis TvalsazrisiT; kerZod, obieqt-
orientirebuli daproeqtebis iseTi mniSvnelovani sakiTxi,
rogoricaa asagebi sistemis obieqt-orientirebuli diagramis
(oo-diagramis) grafikuli gamosaxva. 2.7 naxazze warmodgenilia
obieqt-orientirebuli analizisa da daproeqtebis cnobili
klasikosebis buCis, koad-iordonis, jakobsonis, martinisa da
Sleer-meloris grafikuli aRweris saSualebani.
ra Tqma unda, arsebobs sxva sistemebic, magram am sferoSi
ZiriTadad zemoaRniSnuli instrumentuli saSualebebi dominirebs.
am sakiTxebis detaluri da ufro Rrma gadmocema aq SeuZlebelia,
misi moculobis gamo.
-+
-+
func char
int?
func float
float?func ()
angariSi-2
angariSi-1
angariSi-3
func int
nax.2.6. polimorfizminax.2.6. polimorfizminax.2.6. polimorfizminax.2.6. polimorfizminax.2.6. polimorfizmi
22
moviyvanT zogierT komentars naxazTan dakavSirebiT.
_ <name> _ klasis an obieqtis saxelia. Ggradi buCs
klasi wyvetili, xolo obieqti konturuli Rrublismagvari
figuriT aqvs mocemuli. koad-iordoni maT ormagi
mrgvalkuTxedebiT warmoadgens da a.S. SeiZleba iTqvas, rom
2.8 naxazze gadmocemulia klasis warmodgena oo - diagramisTvis
buCisa da koad-iordonis aRniSvnaTa sistemebis magaliTze.
rogorc vxedavT, klasi aris monacemebisa da meTodebis
erToblioba, abstraqcia, xolo obieqti - realoba, konkretuli
egzemplarebi.
_ kavSiris asociaciebi klasebs an obieqtebs Soris mravali
saxisaa. amitomac 2.9 naxazze mocemuli gvaqvs maTi ZiriTadi
ti pebi. esaa ti puri maTematikuri asaxvis funqciebi,
damokidebulebani klasebsa da mis elementebs Soris.
elemen- elemen- elemen- elemen- elemen- ti ti ti ti ti
a vtoria vtoria vtoria vtoria vtori
klas iklas iklas iklas iklas iobie qtiobieqtiobieqtiobieqtiobieqti
k a v S irik a v S irik a v S irik a v S irik a v S iriasociaciaasociaciaasociaciaasociaciaasociacia
qvesistemaqvesistemaqvesistemaqvesistemaqvesistema memkvidreo-memkvidreo-memkvidreo-memkvidreo-memkvidreo-biTobabiTobabiTobabiTobabiToba
SetyobinebaSetyobinebaSetyobinebaSetyobinebaSetyobineba
g. buCig. buCig. buCig. buCig. buCi
f. koadif. koadif. koadif. koadif. koadie . iordonie . iordonie . iordonie . iordonie . iordoni
d. martinid. martinid. martinid. martinid. martini
s. Sleeris. Sleeris. Sleeris. Sleeris. Sleeris. meloris. meloris. meloris. meloris. melori
i. jakobsonii. jakobsonii. jakobsonii. jakobsonii. jakobsoni
NM
N,MN,M<NAME>
<NAME>
<NAME> [N,M]
<NAME>
<NAME>
N N
N N
<NAME>
<NAME>
nax. 2.7. oo-diagramebis agebis aRniSvnaTa sistemebinax. 2.7. oo-diagramebis agebis aRniSvnaTa sistemebinax. 2.7. oo-diagramebis agebis aRniSvnaTa sistemebinax. 2.7. oo-diagramebis agebis aRniSvnaTa sistemebinax. 2.7. oo-diagramebis agebis aRniSvnaTa sistemebi
23
aaaaa)
bbbbb)
klasi klasi klasi klasi klasi Acvladi 1cvladi 1cvladi 1cvladi 1cvladi 1cvladi 2cvladi 2cvladi 2cvladi 2cvladi 2
. . .. . .. . .. . .. . .m eTodi- 10meTodi- 10meTodi- 10meTodi- 10meTodi- 10m eTodi -20meTodi -20meTodi -20meTodi -20meTodi -20
klasi klasi klasi klasi klasi Aobieqtis cvladebiobieqtis cvladebiobieqtis cvladebiobieqtis cvladebiobieqtis cvladebi
cvladi- 1cvladi- 1cvladi- 1cvladi- 1cvladi- 1cvladi-2cvladi-2cvladi-2cvladi-2cvladi-2
. . .. . .. . .. . .. . .klasis cvladebiklasis cvladebiklasis cvladebiklasis cvladebiklasis cvladebi
kc - 1kc - 1kc - 1kc - 1kc - 1k c - 2kc - 2kc - 2kc - 2kc - 2. . .. . .. . .. . .. . .
m eTodebimeTodebimeTodebimeTodebimeTodebim eTodi- 10meTodi- 10meTodi- 10meTodi- 10meTodi- 10m eTodi -20meTodi -20meTodi -20meTodi -20meTodi -20
nax. 2.8. klasis warmodgena oo-diagramiT buCisa (a) danax. 2.8. klasis warmodgena oo-diagramiT buCisa (a) danax. 2.8. klasis warmodgena oo-diagramiT buCisa (a) danax. 2.8. klasis warmodgena oo-diagramiT buCisa (a) danax. 2.8. klasis warmodgena oo-diagramiT buCisa (a) dakoad-iordonis (b) mixedviTkoad-iordonis (b) mixedviTkoad-iordonis (b) mixedviTkoad-iordonis (b) mixedviTkoad-iordonis (b) mixedviT
ZiriTadi kavSirebis asociaciebiZiriTadi kavSirebis asociaciebiZiriTadi kavSirebis asociaciebiZiriTadi kavSirebis asociaciebiZiriTadi kavSirebis asociaciebi
A klasis yovel obieqts SeesabamebaB klasis mxolod 1 obieqti
A→→→→→B1
A B
Aklasi
Bklasi
Aklasi
Bklasi
0.1 A klasis yovel obieqts SeesabamebaB klasis arc erTi an erTi obieqti
Aklasi
Bklasi
M A→→→→→→→→→→B
A klasis yovel obieqts SeesabamebaB klasis 0, 1 an ramdenime obieqti
A B
A klasis yovel obieqts SeesabamebaB klasis erTi an ramdenime obieqti
Aklasi
Bklasi
0.M
nax. 2.9. ZiriTad kavSirTa asociaciebinax. 2.9. ZiriTad kavSirTa asociaciebinax. 2.9. ZiriTad kavSirTa asociaciebinax. 2.9. ZiriTad kavSirTa asociaciebinax. 2.9. ZiriTad kavSirTa asociaciebi
24
SeiZleba ganvixiloT agreTve iseTi damokidebulebebi,
romlebic struqturul mowesrigebas emsaxureba, magaliTad,
klasifikacia da agregacia. pirveli maTgani aerTianebs obieqtebs
garkveuli kriteriumebiT, romlebic msgavs, magram araidentur
Tvisebebs eyrdnoba. Mmeore ki mTelisa da Semadgeneli nawilis
mimarTebis tipuri asaxvaa. 2.10 naxazze naCvenebia sqematurad
klasebs Soris memkvidreobiTi, agregirebuli da relaciuri
kavSirebis gamosaxva.
nax. 2.10. klasTaSoris asociaciebi: memkvidreobiTi (a),nax. 2.10. klasTaSoris asociaciebi: memkvidreobiTi (a),nax. 2.10. klasTaSoris asociaciebi: memkvidreobiTi (a),nax. 2.10. klasTaSoris asociaciebi: memkvidreobiTi (a),nax. 2.10. klasTaSoris asociaciebi: memkvidreobiTi (a),
agregirebuli (b) da relaciuri (g)agregirebuli (b) da relaciuri (g)agregirebuli (b) da relaciuri (g)agregirebuli (b) da relaciuri (g)agregirebuli (b) da relaciuri (g)
_ qvesistema klasebis garkveuli saxelminiWebuli jgufia,
romelic amocanis pragmatuli (miznobrivi) gadawyvetis
TvalsazrisiT ganixileba. koad-iordonis Sesabamis
marTkuTxedSi aso N swored am klasTa subieqturi jgufis
identifikatoris rols asrulebs. igi naturaluri ricxvia
1,2,....da a.S. magaliTad, 1-eli subieqturi jgufi SeiZleba
iyos saswavlo auditoriebi, laboratoriebi, kompiuteruli
klasebi da sxv. me-2 subieqturi klasi SeiZleba iyos profesor-
maswavleblebi, laborantebi, administraciuli da sainJinro-
teqnikuri personali. me-3 subieqturi klasi studentebi,
msmenelebi, moswavleebi da a.S. arsebobs, ra Tqma unda, iseTi
klasebic, romlebic erTdroulad ramdenime subieqturi jgufis
wevri SeiZleba iyos. MmagaliTad, laboratoriuli mecadineoba
a g
b
25
konkretul saganSi, konkretul leqtorTan, konkretul
saswavlo oTaxSi, dawyebis dro da xangrZlivoba.
memkvidreobiToba obieqt-orientirebuli midgomis erT-erTi
ZiriTadi da aucilebeli komponentia. 2.11 naxazze mocemulia
oo-midgomis erT-erTi ZiriTadi principis modeli, romlis
`mwvervalzec~ swored memkvidreobiTobis koncefciis
realizebiT (enaSi) vaRwevT asvlas.
nax. 2.11. midgomis Zirnax. 2.11. midgomis Zirnax. 2.11. midgomis Zirnax. 2.11. midgomis Zirnax. 2.11. midgomis ZiriTadi priTadi priTadi priTadi priTadi princiinciinciinciinci pis sqemapis sqemapis sqemapis sqemapis sqema
ganvixiloT saproblemo garemo instituti (nax.2.12).
memkvidreobiTi struqturebi gamoikveTeba specializaciiTa da
ganzogadebiT, romlebic urTierTsapirispiro procedurebia.
magaliTad, institutSi arsebuli (myofi) adamianebi mocemul
drois momentSi SeiZleba daxarisxdes statusis mixedviT:
pirovneba, TanamSromeli, magistranti, leqtori da a.S. SeiZleba
adgili hqondes maT gadakveTasac.
obieqtzeorientirebuli
memkvidreobaToba
klasebi(polimorfizmissaSualebiT)
abstraqcia (monacemTabazebisa da funqciebis
inkafsulacia
klasebzebazirebuli
obieqtebzebazirebuli
26
nax. 2.12. memkvidreobiTobis struqutra: specializacia danax. 2.12. memkvidreobiTobis struqutra: specializacia danax. 2.12. memkvidreobiTobis struqutra: specializacia danax. 2.12. memkvidreobiTobis struqutra: specializacia danax. 2.12. memkvidreobiTobis struqutra: specializacia da
ganzogadeba (a), maTi warmodgena oo-diagramiT (b)ganzogadeba (a), maTi warmodgena oo-diagramiT (b)ganzogadeba (a), maTi warmodgena oo-diagramiT (b)ganzogadeba (a), maTi warmodgena oo-diagramiT (b)ganzogadeba (a), maTi warmodgena oo-diagramiT (b)
xSirad saWiroa gamoisaxos mravaljeradi memkvidreobiTobis
kavSiri. am dros `Svili~ (subklasi) iRebs memkvidreobis
`genebs~ (cvladebs da meTodebs) Tavisi `mSoblebidan~
(superklasebidan). amave dros maT TviTonac eqnebaT
specializacia
ganzogadeba
1. pirovneba2. TanamSromeli3. magistranti4. leqtori&TanamSromeli5. TanamSromeli&magistranti6 . Tan a mSromeli&leqtori &magistranti
1
4
5
6
3
2
subklasi-1subklasi-1subklasi-1subklasi-1subklasi-1
subklasi-3subklasi-3subklasi-3subklasi-3subklasi-3
pirovnebapirovnebapirovnebapirovnebapirovnebapasportis #pasportis #pasportis #pasportis #pasportis #gvarigv arigv arigv arigv ari
subklasi-2subklasi-2subklasi-2subklasi-2subklasi-2
m agistrantimagistrantimagistrantimagistrantimagistrantipasportis #pasportis #pasportis #pasportis #pasportis #gvarigv arigv arigv arigv arispecialobaspecialobaspecialobaspecialobaspecialobakaTedris #kaTedris #kaTedris #kaTedris #kaTedris #. . .. . .. . .. . .. . .
superklasi-1superklasi-1superklasi-1superklasi-1superklasi-1
saproblemo garemo:saproblemo garemo:saproblemo garemo:saproblemo garemo:saproblemo garemo:institutiinstitutiinstitutiinstitutiinstituti
b
a
TanamSromeliTanamSromeliTanamSromeliTanamSromeliTanamSromelipasportis #pasportis #pasportis #pasportis #pasportis #gvarigv arigv arigv arigv aridepart #depart #depart #depart #depart #TanamdebobaTanamdebobaTanamdebobaTanamdebobaTanamdeboba
leqtorileqtorileqtorileqtorileqtoripasportis #pasportis #pasportis #pasportis #pasportis #gvarigv arigv arigv arigv ariTanamdebobaTanamdebobaTanamdebobaTanamdebobaTanamdebobax ar i sx ix ar i sx ix ar i sx ix ar i sx ix ar i sx iwodebawodebawodebawodebawodeba
27
gansxvavebuli axali Tvisebebic (sxva cvladebi da meTodebi),
magaliTad, nax. 2.13.
nax.2.13. mravaljeradi memkvidreobiTobisnax.2.13. mravaljeradi memkvidreobiTobisnax.2.13. mravaljeradi memkvidreobiTobisnax.2.13. mravaljeradi memkvidreobiTobisnax.2.13. mravaljeradi memkvidreobiTobis
magaliTi ori superklasiTmagaliTi ori superklasiTmagaliTi ori superklasiTmagaliTi ori superklasiTmagaliTi ori superklasiT
_ Setyobineba klasebsa da obieqtebs Soris aseve
ganmsazRvrelia maTi sxvadasxva procesebis inicializaciisaTvis.SetyobinebaSi Cadebulia konkretuli moTxovnis arsi, romelmac
unda gamoiwvios klasSi Sesabamisi meTodis provocireba,monacemTa gadamuSaveba da Semdgomi gadaadgileba sxva klasebis
an obieqtebisaken. procesi mTavrdeba Sesabamisi SedegebismomzadebiTa da ukan dabrunebiT (Setyobinebis mosvlis
misamarTiT). konkretul SetyobinebaTa gadamuSavebisaTvisgamoiyeneba Sesabamisi scenarebi.
2.14 nax-ze warmodgenilia oo-diagramis fragmentisaproblemo sferosaTvis ̀ marketingis marTva sawarmoo firmaSi~.
superklasi-2superklasi-2superklasi-2superklasi-2superklasi-2cvladi 5cvladi 5cvladi 5cvladi 5cvladi 5cvladi 6cvladi 6cvladi 6cvladi 6cvladi 6meTodi 7()meTodi 7()meTodi 7()meTodi 7()meTodi 7()meTodi 15()meTodi 15()meTodi 15()meTodi 15()meTodi 15()meTodi 27()meTodi 27()meTodi 27()meTodi 27()meTodi 27()
superklasi-1superklasi-1superklasi-1superklasi-1superklasi-1cvladi 1cvladi 1cvladi 1cvladi 1cvladi 1cvladi 2cvladi 2cvladi 2cvladi 2cvladi 2meTodi 1()meTodi 1()meTodi 1()meTodi 1()meTodi 1()meTodi 2()meTodi 2()meTodi 2()meTodi 2()meTodi 2()meTodi 3()meTodi 3()meTodi 3()meTodi 3()meTodi 3()
subklasisubklasisubklasisubklasisubklasicvladi 1cvladi 1cvladi 1cvladi 1cvladi 1cvladi 2cvladi 2cvladi 2cvladi 2cvladi 2cvladi 5cvladi 5cvladi 5cvladi 5cvladi 5cvladi 6cvladi 6cvladi 6cvladi 6cvladi 6cvladi 7cvladi 7cvladi 7cvladi 7cvladi 7cvladi 10cvladi 10cvladi 10cvladi 10cvladi 10cvladi 12cvladi 12cvladi 12cvladi 12cvladi 12meTodi 1()meTodi 1()meTodi 1()meTodi 1()meTodi 1()meTodi 2()meTodi 2()meTodi 2()meTodi 2()meTodi 2()meTodi 3()meTodi 3()meTodi 3()meTodi 3()meTodi 3()meTodi 7()meTodi 7()meTodi 7()meTodi 7()meTodi 7()meTodi 15()meTodi 15()meTodi 15()meTodi 15()meTodi 15()meTodi 27()meTodi 27()meTodi 27()meTodi 27()meTodi 27()meTodi 33()meTodi 33()meTodi 33()meTodi 33()meTodi 33()
28
diagrama agebulia g. buCis aRweris sistemaSi. Nnaxazze
naCvenebia sistemis ZiriTadi klasebi da maTi urTierTkavSirebi,
klasebis cvladebi (monacemebi) da maTi meTodebi.
nax. 2.14. oo-diagrama saproblemo sferosaTvis `marketingi~nax. 2.14. oo-diagrama saproblemo sferosaTvis `marketingi~nax. 2.14. oo-diagrama saproblemo sferosaTvis `marketingi~nax. 2.14. oo-diagrama saproblemo sferosaTvis `marketingi~nax. 2.14. oo-diagrama saproblemo sferosaTvis `marketingi~
klientiklientiklientiklientiklientiklientis #klientis #klientis #klientis #klientis #d a s a x e l e b ad a s a x e l e b ad a s a x e l e b ad a s a x e l e b ad a s a x e l e b a(vinaoba)(vinaoba)(vinaoba)(vinaoba)(vinaoba)misam arTimisamarTimisamarTimisamarTimisamarTimoTxovna ()moTxovna ()moTxovna ()moTxovna ()moTxovna ()angariSsworeba()angariSsworeba()angariSsworeba()angariSsworeba()angariSsworeba()p r o d u q c i i sp r o d u q c i i sp r o d u q c i i sp r o d u q c i i sp r o d u q c i i smiReba ()miReba ()miReba ()miReba ()miReba ()reklamacia()reklamacia()reklamacia()reklamacia()reklamacia()
mza produqciismza produqciismza produqciismza produqciismza produqciis
sawyobisawyobisawyobisawyobisawyobi
prodprodprodprodprod..... SifriSifriSifriSifriSifriprod.dasaxelebaprod.dasaxelebaprod.dasaxelebaprod.dasaxelebaprod.dasaxelebaprod.moculobaprod.moculobaprod.moculobaprod.moculobaprod.moculobaprod.Semotana ()prod.Semotana ()prod.Semotana ()prod.Semotana ()prod.Semotana ()prod.gatana ()prod.gatana ()prod.gatana ()prod.gatana ()prod.gatana ()
produqciaproduqciaproduqciaproduqciaproduqcia
prodprodprodprodprod..... SifriSifriSifriSifriSifriprod.dasaxelebaprod.dasaxelebaprod.dasaxelebaprod.dasaxelebaprod.dasaxelebas ort isort isort isort isort is a c a l os a c a l os a c a l os a c a l os a c a l ofa s if a s if a s if a s if a s is a b i T u m os a b i T u m os a b i T u m os a b i T u m os a b i T u m of a s if a s if a s if a s if a s i
masalamasalamasalamasalamasala
S i fr iS i fr iS i fr iS i fr iS i fr idasaxelebadasaxelebadasaxelebadasaxelebadasaxelebaf a s if a s if a s if a s if a s i
firmafirmafirmafirmafirma
misam arTimisamarTimisamarTimisamarTimisamarTidasaxelebadasaxelebadasaxelebadasaxelebadasaxelebatelefonitelefonitelefonitelefonitelefonifaqsifaqsifaqsifaqsifaqsi
mimwodebelimimwodebelimimwodebelimimwodebelimimwodebeli
m i mwode blis m i mwode blis m i mwode blis m i mwode blis m i mwode blisS i fr iS i fr iS i fr iS i fr iS i fr idasaxelebadasaxelebadasaxelebadasaxelebadasaxelebamisam arTimisamarTimisamarTimisamarTimisamarTimasalis Sifrimasalis Sifrimasalis Sifrimasalis Sifrimasalis Sifrimasalis damzadeba()masalis damzadeba()masalis damzadeba()masalis damzadeba()masalis damzadeba()masalis miwodeba()masalis miwodeba()masalis miwodeba()masalis miwodeba()masalis miwodeba()
marketingismarketingismarketingismarketingismarketingis
menejerimenejerimenejerimenejerimenejeri
gvarigvarigvarigvarigvariinformaciis gacema()informaciis gacema()informaciis gacema()informaciis gacema()informaciis gacema()produqtis gacemisproduqtis gacemisproduqtis gacemisproduqtis gacemisproduqtis gacemisnebarTva()nebarTva()nebarTva()nebarTva()nebarTva()Sesrulebis kontroli()Sesrulebis kontroli()Sesrulebis kontroli()Sesrulebis kontroli()Sesrulebis kontroli()reklamaciis miReba()reklamaciis miReba()reklamaciis miReba()reklamaciis miReba()reklamaciis miReba()
baraTibaraTibaraTibaraTibaraTi
specifikaciaspecifikaciaspecifikaciaspecifikaciaspecifikacia
specifikaciis #specifikaciis #specifikaciis #specifikaciis #specifikaciis #klientis #klientis #klientis #klientis #klientis #produqciis Sifriproduqciis Sifriproduqciis Sifriproduqciis Sifriproduqciis Sifriproduqc. moculobaproduqc. moculobaproduqc. moculobaproduqc. moculobaproduqc. moculobamiwodebis vadamiwodebis vadamiwodebis vadamiwodebis vadamiwodebis vadaSekveTis gatareba()SekveTis gatareba()SekveTis gatareba()SekveTis gatareba()SekveTis gatareba()gadaTvaliereba()gadaTvaliereba()gadaTvaliereba()gadaTvaliereba()gadaTvaliereba()
0,1
0,M
M
MM
1
M
1M
M
1,M 1 1
1,M
29
am sabazo oo-diagramis safuZvelze SesaZlebelia moTxovnebis
Sesruleba. 2.15 naxazze mocemulia ori Setyobinebis magaliTi.
pirveli _ klients ainteresebs informacia, aris Tu ara
firmaSi misTvis saWiro produqcia (a). meore _ klientma
unda gaitanos firmidan misi kuTvnili produqcia (b).
Tu SevajamebT ganxilul sakiTxebs, advilad davrwmundebiT,
rom gamokveTilia ori saxis problema: pirveli _ obieqtTa
mdgomareobis modelireba (procesebi Setyobinebis damuSavebamde)
da meore, obieqtTa qcevis modelireba (procesebi Setyobinebis
damuSavebiT da SedegebiT).
nax.2.15. Setyobinebis damuSavebis scenari oo-diagramiTnax.2.15. Setyobinebis damuSavebis scenari oo-diagramiTnax.2.15. Setyobinebis damuSavebis scenari oo-diagramiTnax.2.15. Setyobinebis damuSavebis scenari oo-diagramiTnax.2.15. Setyobinebis damuSavebis scenari oo-diagramiT
klienti:mixo
marketingismenejeri: moSe
baraTispecifikacia
2. gadaTvaliereba(Sabiamani 1t.)
1. moTxovna(Sabiamani 1 tona)
2. gadaTvaliereba1. moTxovna TanxisgadaricxviT
klienti:mixo
marketingismenejeri: moSe
baraTispecifikacia
produqciissawyobi
a3. aris4. dakmayofileba
SesaZlebelia
3. mowodebis gatareba (Sabiamani 1 t.)
4. produqtis arsebobis dadgena
5. produqti adgilzea (Sabiamani 1 t.)
b
7. produqtis mowodeba
6. produqtisgatana
30
III TaviIII TaviIII TaviIII TaviIII Tavi
UML - modelirebis unificirebuli enamodelirebis unificirebuli enamodelirebis unificirebuli enamodelirebis unificirebuli enamodelirebis unificirebuli ena
3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba3.1. programuli paketebis daproeqteba
UML-teqnologiiTteqnologiiTteqnologiiTteqnologiiTteqnologiiT
axali saukunis dasawyisi kompiuteruli industriisa da
informaciuli teqnologiebis ganviTarebis maRali doniT
xasiaTdeba. msoflio bazarze gamoCnda ara erTi axali
aparaturuli (Hardware) da programuli (Software, Groupware)sistemebi. maT Soris sayuradReboa amerikuli korporaciis
Rational Software mecnier-konstruqtorebis gradi buCis, jeimsrambos da ivar jakobsonis axali, UML-teqnologia
kompiuteruli sistemebis programuli uzrunvelyofis asagebad.
unificirebuli modelirebis ena (Unified Modeling Lan-guage), rogorc uaxlesi standarti, safuZvlad daedo
Tanamedrove informaciuli teqnologiebis sistemebs da mas
aqtiurad iyenebs IBM, Hewlet Packard , Oracle da sxva firmebi.UML-teqnologia obieqt-orientirebuli modelirebisa da
struqturuli daprogramebis ideologiis matarebelia, romelic
Teoriuli da praqtikuli informatikis sami ZiriTadi
mimarTulebis (daproeqtebis avtomatizacia, daprogramebis
avtomatizacia, monacemTa bazebis damuSavebis avtomatizacia)
`genetikuri~ memkvidrea.
m arTvis kompiuteruli sistemebis programuli
uzrunvelyofis agebis procesebis aseTi srulfasovani
avtomatizacia vizualuri modelirebis saxelwodebiT
damkvidrda da igi modelebis grafikul warmodgenas eyrdnoba.
aseTi instrumentebi flobs rogorc pirdapir (grafikidan
programuli kodisaken), aseve reversiul (kodidan grafikisaken)
teqnologias
obieqt-orientirebuli analizis, daproeqtebisa da
programirebis swrafma ganviTarebam xeli Seuwyo mZlavri
31
integrirebuli, vizualuri meTodebis ganxorcielebas da
instrumentebis Seqmnas. axali kompiuteruli teqnologiebis
aseT magaliTs miekuTvneba programuli paketebi: Ms Visio,Rational Rose, Paradigm Plus da sxv., romlebic cnobilia UseCase (`gamoiyene SemTxveva~ an `airCie meTodi~) tipis adamian-manqanuri sistemebis Sesaqmnelad. Case -Computer aided softwareengineering jgufuri daprogramebis sistemebs safuZvlad uZevs
Unified Modeling Language (UML) teqnologia.
UML aris programuli modulebis specifikaciis,
konstruirebis, vizualizebisa da dokumentirebis ena da
aRniSvnaTa sistema. 1997 wlidan Object Management Groupe-s(OMG) mier igi gamocxadda rogorc programuli sistemebis
agebis standarti.
UML araa konkretuli meTodi. igi aris baza sxvadasxva
meTodebisaTvis, vinaidan masSi SemuSavebulia modelirebis
konstruqciebis gansazRvruli simravle aRweris erTiani
sistemiTa da semantikiT. modelirebis elementebi iyofa
sxvadasxva tipis diagramebad:
- Use-Case diagrama uCvenebs Semsruleblebs, gamoyenebiT
SemTxvevebs (meTodebs) da maT kavSirebs;
- klasebis diagrama gamoiyeneba klasebisa da maT Soris
kavSirebis aRsawerad;
- yofaqcevis diagrama aRwers moqmedebebs, obieqtTa
mdgomareobebs, mdgomareobaTa gadasvlebs da movlenebs;- instrumentuli realizaciis diagrama uCvenebs
komponentebsa da kvanZebs, maT kavSirebs.
programuli sistemebis Seqmna mis calkeul etapebzeaRniSnuli meTodologiiT mocemulia 3.1 naxazze.
UML-instrumentuli paketis (mag., Ms Visio) miznobrividaniSnulebaa programuli sistemis vizualuri agebis
32
SesaZleblobis SeTavseba momxmareblisadmi, mis mier arCeulimeTodisa (magaliTad, buCis, rambos, koad-iordonis da a.S.) da
daproeqtebuli diagramebis safuZvelze. paralelurad iqmnebaSesabamis diagramaTa programuli kodebi, romelTa wakiTxva-
koreqtireba SeuZlia ganswavlul programistebs. teqstebiagebulia C#, C++, Visual Basic, Java da sxv. enebze.
amgvarad SeiZleba davaskvnaT, rom UML-ena integrirebuli,obieqt-orientirebuli koncefciis matarebeli instrumentia,
romelSic Tavi moiyara sistemo-teqnikosebis, infologikosebisada programistebis problemaTa gadawyvetis meqanizmebma da
moxda maTi harmoniuli Serwyma (nax.3.2).programuli sistemebis agebis inJineria axali saukunis
obieqtisobieqtisobieqtisobieqtisobieqtisyofaqcevayofaqcevayofaqcevayofaqcevayofaqceva
obieqtisobieqtisobieqtisobieqtisobieqtisstruqturastruqturastruqturastruqturastruqtura
Use case
moTxov -moTxov -moTxov -moTxov -moTxov -nilebebinilebebinilebebinilebebinilebebi
an alizianalizianalizianalizianalizi
daproeqtebadaproeqtebadaproeqtebadaproeqtebadaproeqteba
realizaciarealizaciarealizaciarealizaciarealizacia
statikuri modelistatikuri modelistatikuri modelistatikuri modelistatikuri modeli
gamoyenebiTi SemTxvevisgamoyenebiTi SemTxvevisgamoyenebiTi SemTxvevisgamoyenebiTi SemTxvevisgamoyenebiTi SemTxvevisdiagram adiagram adiagram adiagram adiagram a
klasebis diagramaklasebis diagramaklasebis diagramaklasebis diagramaklasebis diagrama(modularizeba)(modularizeba)(modularizeba)(modularizeba)(modularizeba)
klasebis diagramaklasebis diagramaklasebis diagramaklasebis diagramaklasebis diagrama(dazusteba(dazusteba(dazusteba(dazusteba(dazusteba
memkvidreobiTobiT damemkvidreobiTobiT damemkvidreobiTobiT damemkvidreobiTobiT damemkvidreobiTobiT daasociaciebiT)asociaciebiT)asociaciebiT)asociaciebiT)asociaciebiT)
komponentebiskomponentebiskomponentebiskomponentebiskomponentebisdiagrama diagrama diagrama diagrama diagrama (klasTa(klasTa(klasTa(klasTa(klasTa
gansazRvris gansazRvris gansazRvris gansazRvris gansazRvris kodebi)kodebi)kodebi)kodebi)kodebi)
programuliprogramuliprogramuliprogramuliprogramulisistemasistemasistemasistemasistema
dinamikuri modelidinamikuri modelidinamikuri modelidinamikuri modelidinamikuri modeli
aqtiurobebis diagramaaqtiurobebis diagramaaqtiurobebis diagramaaqtiurobebis diagramaaqtiurobebis diagrama(((((Work-Flow programebi)programebi)programebi)programebi)programebi)
scenarebi, mimdevrobebisscenarebi, mimdevrobebisscenarebi, mimdevrobebisscenarebi, mimdevrobebisscenarebi, mimdevrobebisdiagram adiagram adiagram adiagram adiagram a
gaerTianebaTa diagramagaerTianebaTa diagramagaerTianebaTa diagramagaerTianebaTa diagramagaerTianebaTa diagrama(mdgomareobaTa(mdgomareobaTa(mdgomareobaTa(mdgomareobaTa(mdgomareobaTaavtomatebi)avtomatebi)avtomatebi)avtomatebi)avtomatebi)
ganawilebis diag-ganawilebis diag-ganawilebis diag-ganawilebis diag-ganawilebis diag-rama (meTodebisrama (meTodebisrama (meTodebisrama (meTodebisrama (meTodebis
kode b i )kode b i )kode b i )kode b i )kode b i )
nax.3.1. programuli sistemis aRweris gansxvavebulinax.3.1. programuli sistemis aRweris gansxvavebulinax.3.1. programuli sistemis aRweris gansxvavebulinax.3.1. programuli sistemis aRweris gansxvavebulinax.3.1. programuli sistemis aRweris gansxvavebuliaspeqtebiaspeqtebiaspeqtebiaspeqtebiaspeqtebi UML -diagramebiT-diagramebiT-diagramebiT-diagramebiT-diagramebiT
33
damdegs Sevida ganviTarebis umaRles fazaSi, sadac realizebuliamaRali efeqturoba, saimedooba da gamoyenebis simartive (garegani
mxare), magram sagrZnoblad garTulda kompleqsuri instrumentisSinagani struqtura.
daprogramebis (da modelirebis) universaluri enebisganviTarebis TvalsazrisiT, rogorc instrumentuli saSualebebisa,
istoriulad SeiZleba gamovyoT xuTi ZiriTadi etapi:
1. struqturuli daprogramebis universaluri enebi (SPL);2. informaciuli bazebis marTvis sistemebis monacemTa
aRewerisa da manipulirebis enebi (DB_DDL);3. obieqt-orientirebuli daprogramebis enebi (OOPL);4. vizualuri daprogramebis enebi (VPL);5. unificirebuli modelirebis enebi (UML).
sistemo-teqnikosi
analizi
daproeqteba
infologikosi
monacemTabazebi
codnis bazebi
programisti
programulienebi
grafikulisaSualebani
obieqt
-orient
ireb
uli
konc
efcia
Software Engineering withUML
oo analizi &daproeqteba
oomonacemTa bazebi
oodaprogrameba
oo vizualuriinstrumenti
nax.3.2nax.3.2nax.3.2nax.3.2nax.3.2
34
3 .3 naxazze mocemulia aRniSnul enebs Soris
urTierTkavSiris semantika. yoveli momdevno etapis
daprogramebis ena metnaklebad moicavs misi winamorbedis
SesaZleblobebs. amgvarad, UML-ena (Unified Modeling Language)SeiZleba ganvixiloT, rogorc mZlavri integrirebuli
programuli paketi tradiciuli da aratradiciuli (obieqt-
orientirebuli da vizualuri) komponentebiT.
UML-enaSi mTavari yuradReba gadatanilia obieqtTa
klasebisa da maT Soris kavSirebis vizualuri daproeqtebis
xerxebze arsTa-damokidebulebis modelis (ER - Entity-Relationmodel) gamoyenebiT. rogorc cnobilia, es ukanaskneli
saproblemo sferos konceptualuri modelirebisTvis
gamoiyeneboda monacemTa bazebis sistemebSi.
axla mokled ganvixiloT UML-enis konkretuli etapebi
da ZiriTadi diagramebi, romlebic vizualuri, obieqt-
orientirebuli daprogramebis dros gamoiyeneba.
VPL
DB_DDL
OOPL
SPL
UMLnax.3 .3nax.3 .3nax.3 .3nax.3 .3nax.3 .3
35
3.2. UML - teqnologiis etapebi dateqnologiis etapebi dateqnologiis etapebi dateqnologiis etapebi dateqnologiis etapebi da
diagramebidiagramebidiagramebidiagramebidiagramebi
marTvis kompiuteruli sistemebis informaciuli da
programuli uzrunvelyofis dasaproeqteblad, rogorc
aRvniSneT, dRes farTod gamoiyeneba modelirebis unificirebuli
enis (UML - Unified Modeling Language) teqnologia [1].
UML-teqnologiis oTx etapze (nax.3.4) xorcieldeba obieqt-
orientirebuli (oo) modelireba statikuri da dinamikuri
diagramebiT.
UseCase-D diagrama uCvenebs Semsruleblebs (Actor),gamoyenebul SemTxvevebs (Action-funqciebs) da maT kavSirebs(nax.3.5).
yovel UseCase-funqcias (ovals) Seesabameba erTi dinamikuri
modeli, romelic Activity-D diagramis saxiT formirdeba
(nax.3.6). rogorc naxazidan Cans, aqtiurobaTa diagramas erTi
dasawyisi da ramdenime dasasruli SeiZleba hqondes. masSi
nax.3.4. nax.3.4. nax.3.4. nax.3.4. nax.3.4. UML-etapebietapebietapebietapebietapebi
36
probl.analizi
konsultant-menejeri
(k-m)
eqspertebi (e)
probl.Camoyal. meTodikis gacn.
problemebis dasma
probl. gadawyv. savaraudo gzebi
eqsp.Sefasebebis analizi
faqtorebis dadgena
Tanxebis dazusteba
probl.gadawy. gzebis analizi
miznebis gansazRvra
e k-mRonisZiebaTa
dadgena
nax.3.5. nax.3.5. nax.3.5. nax.3.5. nax.3.5. UseCase ordoniani diagrama:ordoniani diagrama:ordoniani diagrama:ordoniani diagrama:ordoniani diagrama:
SemsruleblebiTa (SemsruleblebiTa (SemsruleblebiTa (SemsruleblebiTa (SemsruleblebiTa (Actors) da procedurebiT () da procedurebiT () da procedurebiT () da procedurebiT () da procedurebiT (Actions)))))
monawileobs ramdenime "rolis" Semsrulebeli (mag., menejeri,
eqsperti-1, eqsperti-2 da a.S.). mrgvalkuTxedebSi moTavsebulia
maT mier Sesasrulebeli proceduraTa dasaxelebebi.
procedurebi SeiZleba Sesruldes mimdevrobiT an paralelurad.
klasebisa (Class-D) da intaraqtiurobaTa (Sequence-D,Collaboration-D) diagramebis asagebad saWiroa oo-modelirebis
safuZvelze ganisazRvros klasTa dasaxelebebi (nax.3.7, 3.8-1,
3.8-2), maTi atributebi (monacemebi) da funqciebi (meTodebi).
mimdevrobiTobis diagramaze Setyobinebebi da operaciebi
dalagebulia maTi Sesrulebis mimdevrobiT, aq mTavari droa.
Tanamoqmedebis diagramaze kargad Cans klasebs Soris
informaciis gacvla Setyobinebebisa da meTodebis gamoyenebis
safuZvelze. am etapze sasargebloa "arsTa damokidebulebebis
meTodis" (Entity-Relationship-Model) gamoyeneba (ix. I Tavi).
37
nax.3.6. aqtiurobaTa diagramanax.3.6. aqtiurobaTa diagramanax.3.6. aqtiurobaTa diagramanax.3.6. aqtiurobaTa diagramanax.3.6. aqtiurobaTa diagrama
nax.3.7. klasebis diagramanax.3.7. klasebis diagramanax.3.7. klasebis diagramanax.3.7. klasebis diagramanax.3.7. klasebis diagrama
38
nax.3.8.1. mimdevrobiTobis diagramanax.3.8.1. mimdevrobiTobis diagramanax.3.8.1. mimdevrobiTobis diagramanax.3.8.1. mimdevrobiTobis diagramanax.3.8.1. mimdevrobiTobis diagrama
nax.3.8.2. Tanamoqmedebis diagramanax.3.8.2. Tanamoqmedebis diagramanax.3.8.2. Tanamoqmedebis diagramanax.3.8.2. Tanamoqmedebis diagramanax.3.8.2. Tanamoqmedebis diagrama
39
Class-D klasebis diagrama gamoiyeneba klasebisa da maT
Soris kavSirebis (Class-Assotiation-D) aRsawerad. kavSirebi
klasebs Soris oTxi tipisaa: asociaciuri an relaciuri (a),agregatuli (ag) da memkvidreobiTi (c). maTi grafikuli
aRniSvnebi mocemulia 3.9 naxazze.
yofaqcevis diagramebidan Cven ukve ganvixileT Activity-Dda Interaction-D. arsebobs agreTve klasebis mdgomareobaTa
diagrama anu State-D (ix. nax.3.10). igi aRwers moqmedebebs,
obieqtTa mdgomareobebs, mdgomareobaTa gadasvlebs da movlenebs.
misi gamoyeneba yvela klasisTvis araa saWiro. aucilebeliamaSin, rodesac klasi SeiZleba imyofebodes ramdenime
mdgomareobaSi da TiToeul maTganSi igi iqceva sxvadasxvanairad.realizaciis etapze aigeba komponentebis diagrama
(Component-D), romelSic igulisxmeba programuli kodebis
(CPP, H, DLL da a.S.) damuSaveba (nax.3.11). proeqtis bolos
aigeba ganTavsebis diagrama (Deployment-D), romelic aRwers
komponentebis ganawilebas "klient-server" qselSi (nax.3.12).
nax.3.9. klasTa kavSirebis diagramanax.3.9. klasTa kavSirebis diagramanax.3.9. klasTa kavSirebis diagramanax.3.9. klasTa kavSirebis diagramanax.3.9. klasTa kavSirebis diagrama
40
nax.3.11. komponentebis diagramanax.3.11. komponentebis diagramanax.3.11. komponentebis diagramanax.3.11. komponentebis diagramanax.3.11. komponentebis diagrama
nax.3.12. ganTavsebis diagramanax.3.12. ganTavsebis diagramanax.3.12. ganTavsebis diagramanax.3.12. ganTavsebis diagramanax.3.12. ganTavsebis diagrama
nax.3.10. mdgomareobaTa diagramanax.3.10. mdgomareobaTa diagramanax.3.10. mdgomareobaTa diagramanax.3.10. mdgomareobaTa diagramanax.3.10. mdgomareobaTa diagrama
problema wydebaproblema wydebaproblema wydebaproblema wydebaproblema wydeba
problema wydebaproblema wydebaproblema wydebaproblema wydebaproblema wydebaS edegiTSedegiTSedegiTSedegiTSedegiT
41
4. sakontrolo kiTxvebi da4. sakontrolo kiTxvebi da4. sakontrolo kiTxvebi da4. sakontrolo kiTxvebi da4. sakontrolo kiTxvebi da
savarjiSoebisavarjiSoebisavarjiSoebisavarjiSoebisavarjiSoebi
1. ras warmoadgens obieqti da klasi ?
2. ras niSnavs inkafsulacia ?
3. ras niSnavs klasTa memkvidreobiToba ?
4. ras niSnavs polimorfizmi ?
5. ras niSnavs monacemTa abstraqtuli klasi ?
6. ras niSnavs termini obieqt-orientirebuli ?
7. riTi gansxvavdeba tradiciuli daprogramebis
meTodi obieqt-orientirebulisagan ?
8. daprogramebis romeli enebia obieqt-orientire-
buli da rogoria maTi ganviTarebis gza ?
9. ra gansxvavebaa C da C++ enebs Soris da rogoriamaTi gamoyenebis efeqturoba ?
10. rogor xdeba obieqtis mdgomareobis statikuri
modelis warmodgena ?
11. rogor xdeba obieqtis mdgomareobis dinamikuri
modelis warmodgena ?
12. ra aris klasis atributebi da meTodebi ?
13. ra roli aqvs Setyobinebas klasTa Soris
damokidebulebaSi ?
14. ra saxis erTierTobebi arsebobs klasebs Soris,
obieqtebs Soris ?
15. ra aris generalizacia da specializacia ?
16. aageT klasebis diagrama sferosaTvis `leqcia~.
17. aageT memkvidereobiTi kavSirebis gamoyenebiT
klasTa diagrama `cxovelebi~.
18. aageT obieqtTa diagrama sferosaTvis `marketi~.
19. daaproeqteT amocana `biblioTeka: wignebis gatana
da dabruneba~.
30
literaturaliteraturaliteraturaliteraturaliteratura
1. CogovaZe g., gogiCaiSvili g., surgulaZe g., Serozia T.,
Sonia o. marTvis avtomatizebuli sistemebis daproeqteba da
ageba (Teoriul-praqtikuli informatika). Tb., stu, 2001.
2. gogiCaiSvili g., surgulaZe g., Sonia o. daprogramebis
meTodebi: struqturul da obieqt-orientirebul midgomaTa
safuZvlebi C da C++ enebis bazaze. Tb., stu, 1997.3. Booch G., Jacobson I., Rumbaugh J. Unified Modeling Language
for Object-Oriented Development. Rational Software Corporation, SantaClara, 1996.
4. CogovaZe g., surgulaZe g., Sonia o. monacemTa da codnis
bazebis agebis safuZvlebi. Tb., ganaTleba, 2001.
5. reisigi v., surgulaZe g., gulua d. vizualuri obieqt-
orientirebuli daprogramebis meTodebi. stu, Tb., 2002.
6. bothe k., surgulaZe g., doliZe T., Sonia o. Tanamedrove
programuli platformebi da enebi. stu, Tb., 2003.
7. g. surgulaZe. obieqt-orientirebuli daprogramebis meTodi.
stu, Tbilisi, 2004.