daprogramebis obieqt-orientirebuli meTodi

42
1 saqarTvelos teqnikuri universiteti saqarTvelos teqnikuri universiteti saqarTvelos teqnikuri universiteti saqarTvelos teqnikuri universiteti saqarTvelos teqnikuri universiteti informatikisa da marTvis sistemebis informatikisa da marTvis sistemebis informatikisa da marTvis sistemebis informatikisa da marTvis sistemebis informatikisa da marTvis sistemebis instituti instituti instituti instituti instituti gia surgulaZe gia surgulaZe gia surgulaZe gia surgulaZe gia surgulaZe daprogramebis daprogramebis daprogramebis daprogramebis daprogramebis obieqt-orientirebuli obieqt-orientirebuli obieqt-orientirebuli obieqt-orientirebuli obieqt-orientirebuli meTodi meTodi meTodi meTodi meTodi Tbilisi 2005 Tbilisi 2005 Tbilisi 2005 Tbilisi 2005 Tbilisi 2005 sarCevi sarCevi sarCevi sarCevi sarCevi

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.