nesneye dayalı programlama ve uml
Post on 10-Apr-2018
230 Views
Preview:
TRANSCRIPT
-
8/8/2019 nesneye dayal programlama ve uml
1/39
Nesneye Dayal
Programlama nedir?UML Nedir?
Snf Diyagramlar
Nesneye Dayal Programlamann Temel Talar
Miras alma (Inheritance)
ok biimlilik (Polymorphism)Veri saklama (Encapsulation)
-
8/8/2019 nesneye dayal programlama ve uml
2/39
Yazlmsektrndeprogramgelitirmekonusundagnmzekadarbirokyaklamdenenmitir.Bunlarnilkiprogramnbatanaayasrasileyazlpaltrlmasdr.BuyaklamlaBASICdilikullanlarakbirokprogramyazldnbiliyoruz.Buradasorunprogramnaksrasndadeiikksmlaragoto deyimiileatlanmasdr.Programkodubirkabinsatrolunca,koduokumakveynetmekgerektenok
byksorunoluyordu.GWBAsic,QBasic,QuickBasicgibiderleyicilerbunaiyirnekti.
kinciyaklamiseilevedayal(procedrel)yaklamdr.Programlardabirokiin
tekrartekrarfarkldeerlerikullanlarakyapldfarkedildi.Meselaherhangibirprogramdaikitariharasndanekadargnolduunubulmakbirokkezgerekolabilir.Budurumdabalangvebiti tarihlerinialparadakignsaysnverenbirfonksiyonyazlabilirvebufonksiyonihtiyaduyulduuyerdeuygunparametrelerle
ar
l
pistenensonueldeedilebilir.Yap
salyakla
mPascalveCdillerindeuzunyllarbaariilekullanlmtr.
-
8/8/2019 nesneye dayal programlama ve uml
3/39
-
8/8/2019 nesneye dayal programlama ve uml
4/39
-
8/8/2019 nesneye dayal programlama ve uml
5/39
-
8/8/2019 nesneye dayal programlama ve uml
6/39
UMLHereyden nce UML bir programlama dili deildir. UML(Unified Modeling Language) dahaok Nesneye Dayal Programlama iin kullanabileceimiz bir modelleme dilidir. Grady Blooch,James Rumbaugh ve Ivar Jacobson tarafndan gelitirilmitir. UML'den nce yukarda ad geenkiilerin her birinin kendi gelitirdii metodolojiler vard. Grady Booch'un "Booch
Metodolojisi", James Rumbaugh'un "OMT(Object Modeling Technique)" ve Ivar Jacobson'un "OOSE (Object Oriented Software Engineering) " metodolojileri vard. Rational firmastarafndan bu grsel modelleme dilleri birletirilerek 1995'te UML gelitirilmi ve 1997 ylndaObject Management Group (OMG) tarafndan bir standart olarak kabul edilmitir.
www.omg.org
UML1.0(1997)
UML2.0(2004)
http://www.omg.org/http://www.omg.org/ -
8/8/2019 nesneye dayal programlama ve uml
7/39
Yazlm teknolojisi gelitike yazlan programlarn karmakl ve zorluu giderek
artmaktadr. Donanm ve yazlmn i ie girdii, byk a sistemlerinin giderekartt bir dnemde doaldr ki biz programclarn yazaca programlardabyyecektir.Yazacamz programlar ok karmak olaca iin kod organizasyonu
yapmamz zor olacaktr. Hele birok programcnn alaca projelerde bu nerdeyseimkansz hale gelmitir. Bu yzden standart bir modelleme ve analiz diline ihtiya
duyar
z. Program
m
z
n analiz ve dizayn aamas
nda modellemeyi gzel yaparsakileride doabilecek birok problemin kmasna engel olmu oluruz. UML daha oknesneye dayal programlama dilleri iin uygundur. Problemlerimizi paralaraayrabiliyorsak, ve paralar arasnda belirli ilikiler salayabiliyorsak UML bizim iinbiilmi kaftan gibidir. Mesela bir ATM siteminde mteriyi, banka memurunu ve
ATM makinasn ayr paralar halinde dnebiliriz. Mteri ATM makinasndan
para eker, banka memuru ATM makinasna para ykler.Ama banka memuru ilemteri arasnda dorudan bir iliki yoktur.Bu tr ilikiler UML 'de eitlidiyagramlarla gsterilir. Bu diyagramlar hakknda geni ve detayl bilgiyi daha sonraki
yazlarmzda ele alacaz.
Bu k
sa giriten sonra UML 'in tarihine bakal
m.UML 'in douu son y
llarda yaz
l
mendstrisindeki en byk gelimelerden biri olarak kabul edilebilir. UML 1997 ylndayazlmn, diyagram eklinde ifade edilmesi iin bir standartlar komitesi tarafndanoluturuldu. Daha nce hemen hemen her daldaki mhendislerin standart birdiyagram izme arac vard. Ve imdi de programclarn UML 'si var.
-
8/8/2019 nesneye dayal programlama ve uml
8/39
UMLilehazrlanm biryazlmhemdahaazmaliyetlihemdahaetkilivedahauzunmrlolur.UMLile
dokmantasyonuyap
lm
birprogram
nsonradandzenlenmesidahakolayolur.BtnbunlarUMLkullanmamziinyeterlisebeplerdirdiyednyorum.Ksaca,UML'ninfaydalarnmaddelerhalindesralarsak;1) ncelikleprogrammzkodlanmayabalamadanncegeni biranalizivetasarmyaplm olacndankodlamailemidahakolayolur.nkprogramdannebeklediimiziveprogramlamaileneleryapacamzprofesyonelbir ekildebelirlerizUMLile.
2) Programmzdabeklenmedikbirtakmmantksalhatalar(bug)minimumaindirgemi oluruz.3) Tasarmaamasdzgnyapldysatekrarkullanlabilenkodlarnsaysartacaktr.Budaprogramgelitirmemaliyetinibykldedrecektir.
4) UML diagramlarprogrammzntamamnkapsayacaiinbellekkullanmndahaetkilihalegetirebiliriz.
5) Programmznkararllartacaktr.UMLiledokmanlandrlm kodlardzenlemekdahaazzamanalacaktr.
6) Ortakallanprojelerdeprogramclarniletiimidahakolayhalegelir.nkUMLileprogrammzparalaraayrdkveparalararasndabirilikikurduk.
Birsistemingelitirilmesikabacaaadakiaamalardangemektedir. lkikiaamadaUMLbyklderoloynar.
-
8/8/2019 nesneye dayal programlama ve uml
9/39
imdiksavezbir ekildeUMLkomponentlerinden(diagramlar)bahsedelim:NesnelerarasndailikikurmakiinUMLbirtakmgrafikselelemanlarasahiptir.Buelemanlarkullanarakdiyagramlaroluturacaz.Bu
makaledesadecebudiagramlarnneieyaradngreceiz.UMLtemelolarak9diyagramtrndenoluur.
CLASSDIAGRAM
Gerekdnyadaeyalarnaslaraba,masa,bilgisayar eklindesnflandryorsakyazlmdadabirtakmbenzer
zelliklerevefiilleresahipgruplarolutururuz.Bunlara"Class"(s
n
f)denir.Gelitiricia
s
ndannemliolan"ClassDiagramlar"hakkndadahasonradetaylbirmakalemizolacak.
OBJECTDIAGRAM
Birnesne(object)snfn(class)birrneidir.Butrdiyagramlardasnfnyerinegereknesnelerkullanlr.
STATEDIAGRAM
Gereknesnelerinherhangibirzamaniindekidurumunugsterendiyagramlardr.Mesela,Alinesnesiinsansnfnngerekbirrneiolsun.Ali'nindomas,bymesi,genliivelmesiStateDiagram'larylagsterilir.
SEQUENCEDIAGRAMClassveObjectdiyagramlarstatikbilgiyimodeller.Halbukigerekzamanlsistemlerdezamaniindedeieninteraktivitelerbudiyagramlarlagsterilemez.Butrzamanladeiendurumlarbelirtmekiinsequencediyagramlarkullanlr.
-
8/8/2019 nesneye dayal programlama ve uml
10/39
ACTIVITYDIAGRAM
Birnesnesinindurumuzamanlakullanctarafndanyadanesneninkendiiselilevleritarafndandeiebilir.Budeiimsrasnactivitydiyagramlarylagsteririz.USECASEDIAGRAM
ProgrammzndavrannnbirkullancgzyleincelenmesiUseCasediyagramlarylayaplr.Gerekdnyadainsanlarnkullanacabirsistemdebudiyagramlarbyknemtarlar.
COLLABORATIONDIAGRAMBirsisteminamacnnyerinegelmesiiinsisteminbtnparalarileriniyerinegetirmesigerekir.Builergenelliklebirkaparannberaberalmasylammknolabilir.Butrilikilerigstermekiin
CollaborationDiyagramlargsterilir.
COMPONENTDIAGRAMzelliklebirdenokgelitiricininyrttprojelerdesistemicomponentdediimizparalaraayrmak,gelitirmeyikolaylatrr.Sistemiylemodellememizgerekirkihergelitiricitekinden
bamszolarakalabilsin.ButrmodellemelerComponentDiyagramlarylayaplr.
DEPLOYMENTDIAGRAMButrdiyagramlarlasisteminfizikselincelenmesiyaplr.Meselabilgisayarlararasndakibaglantlar,programnkurulacamakinalarvesistemimizdekibtnaletlerDeploymentDiyagramndagsterilir.
-
8/8/2019 nesneye dayal programlama ve uml
11/39
Nesne(object)Gerekdnyada,ayrayrtanmlanabilen
hereybirnesnedir.
Modelde,hernesneninbirkimlii,durumu,vedavranvardr.
Snf(class)Gerekdnyada,benzerkarakteristikve
davranlarasahipnesnelerbirsnf(class)ile
temsiledilir.Modelde,birsnf,nesnelertarafndan
paylalandurumvedavranlartemsileder.
-
8/8/2019 nesneye dayal programlama ve uml
12/39
NESNE
Kimlik(identity)
Nesneyibirtek(unique)olaraktanmlarveonudier
nesnelerdenayrr
Durum(state)
zellikler(fieldsveyaattributes)ilebelirtilirDavran (behavior)
Metotlar(methodsveyaoperations):nesnenindurumbilgilerineeriebilenvedeitirebilenilemler.Metot,metotad,aldparametretrleri,ve
dndrdtriletanmlanr.Herhangibirdeer
dndrmeyenmetotlarvoidilebelirtilir.
-
8/8/2019 nesneye dayal programlama ve uml
13/39
NESNErneiKimlik:
renci123
Durum:ad:AliYlmaz
renciNo:0401..yl:2007
Metotlar:
dersEkle()dersSil()
dansmanAta()
-
8/8/2019 nesneye dayal programlama ve uml
14/39
S
n
f(class
)aa
dakileritan
mlar:
Alanlar(fields): Nesnezelliklerinitanmlayan
deikenler,adlarvetrleriile.
Metotlar(methods): Metotadlar,dndrdtr,parametreleri,vemetotugerekletirenprogramkodu
-
8/8/2019 nesneye dayal programlama ve uml
15/39
UML Diyagram
-
8/8/2019 nesneye dayal programlama ve uml
16/39
UMLS
n
fTan
mlamalar
Alanlar :
Kod private long maas
UML private maas : long
Metotlar :
Kod public double maasHesapla()
UML public maasHesapla(): double
-
8/8/2019 nesneye dayal programlama ve uml
17/39
ERM
Public: diersnflareriebilir.UMLde+ sembolilegsterilir.
Protected: aynpaketteki(package)diersnflarvebtnaltsnflar(subclasses)tarafndaeriilebilir.UMLde # sembolilegsterilir.
Package: aynpaketteki(package)diersnflartarafndaeriilebilir.UMLde~ sembolilegsterilir.
Private:yalnzcaiindebulunduusnftarafndaneriilebilir(diersnflareriemezler).UMLde sembolilegsterilir.
-
8/8/2019 nesneye dayal programlama ve uml
18/39
UMLdeNesneGsterimi
-
8/8/2019 nesneye dayal programlama ve uml
19/39
UMLde Nesne Gsterimi
-
8/8/2019 nesneye dayal programlama ve uml
20/39
UMLdePaketGsterimi
Birbirleriyleilikilisnflarbirpaket(package)iine
yerletirilirler.
Paketisimlerkkharflerleyazlr
-
8/8/2019 nesneye dayal programlama ve uml
21/39
ASSOCATION(S
n
flararas
iliki)Snflararasndakiilikiyigstermekiinikisnfarasnadzbirizgiekilir.likiyigsterenizgininzerineilikinintryazlr.MeselaKitapvensansnflarolsun.Kitapileinsansnfarasnda"okuma"ilikisi
vardr.Bunusnfdiyagramndaaadakigibigsteririz.
Bir nsansnfgereknesnesiolan"Ali"ilekitapsnfgereknesnesiolan"UMLkitab"arasnda"okuma"ilkisivard.Ksaca ylederiz.Ali,UMLkitabokur.Tabigerekbirsistemdeilkilerbukadarbasitolmayabilir.Bazdurumlardaikidenfazlasnfarasndailikiolabilir,ozamandahersnfarasndakiilkiyitanmlamamzgerekir.Bazdurumlardaisebelirtilenilikininbirkuralauymasgerekebilir.Budurumdailikiizgisininyanna"constraints"(ilikikural)yazlr.
-
8/8/2019 nesneye dayal programlama ve uml
22/39
Baz durumlarda snflar arasndaki iliki, bir izgiyle belirtebileceimiz ekilde basit
olmayabilir.Bu durumda iliki snflar kullanlr.liki snflar bildigimiz snflarlaayndr.zellik ve ilev elemanlar olabilir.Snflar arasndaki iliki eer bir snftryle belirleniyorsa UML ile gsterimi aadaki ekildeki gibi yaplr.
GrldgibiMteriileKitapsnfarasnda"satnalma"ilikisivardr.Fakatmterisatnalrkencretdemekzorundadr.Builikiyigstermekiincretsnf
ilikiilekesikliizgiilebirletirilir.
-
8/8/2019 nesneye dayal programlama ve uml
23/39
u ana kadar grdmz ilikiler birebir ilikilerdi.likiler birebir olmak zorunda
deildir.Bir snf, n tane baka bir snf ile ilikiliyse buna bireok iliiki denir.MeselaYzba ile Er arasnda bireyz bir iliki vardr.Diyagramda bunu gsterirken Yzbasnfna 1 Er snfna ise 100 yazacaz.Gsterimi aadaki gibidir.
En temel ilikiler aadaki gibi listelenebilir:
-> Bire-bir
-> Bire-ok-> Bire-bir veya daha fazla
-> Bire-sfr veya bir
-> Bire-snrl aralk (mesela:bire-[0,20] aral)
-> Bire-n (UML de birden ok ifadesini kullanmak iin '*' simgesi kullanlr.)
-> Bire-Be yada Bire-sekiz
-
8/8/2019 nesneye dayal programlama ve uml
24/39
KALITIM(INHERITANCE)Eereyalararasndagenellemeleryapabiliyorsakgenellemeyiyaptmzeyalardaortakzelliklerinolduunubiliriz.Mesela,"Hayvan"diyebirsnfmzolsun.Memeliler,Srngenler,Kulardadiersnflarmzolsun.Memeliler,SrngenlerveKularsnfnnfarklzellikleriolduugibihepsininHayvanolmasndandolaybirtakmortakzelliklerivardr.BuyzdenMemeliler,SrngenlerveKularbirerhayvandrderiz.YaniksacasMemeliler,SrngenlerveKular,Hayvansnfndantremiveherbirininkendinezgzelliklerivardrderiz.Nesneynelimliprogramlamadabunakaltm(Inheritance)denir.UML'dekaltm
aadaki ekildeolduugibigsterilir.
-
8/8/2019 nesneye dayal programlama ve uml
25/39
Kal
t
ma rnek
-
8/8/2019 nesneye dayal programlama ve uml
26/39
ERME(AGGREGATIONS)Bazsnflarbirdenfazlaparadanoluur.Butrzelilikiye"Aggregation"denir.Mesela,birTV'yielealalm.Birtelevizyoneitliparalardan
olumutur.Ekran,UzaktanKumanda,Devrelervs..Btnbuparalar
birers
n
filetemsiledersekTVbirbtnolarakoluturulduundaparalarnistediimizgibiekleyebiliriz.Aggregationilikisini'btnpara'yukardaolacak ekildeve'btnpara'nnucunaiibo elmasyerletirecek ekildegsteririz.rnekbir ekilaadakigibidir.
-
8/8/2019 nesneye dayal programlama ve uml
27/39
stteki ekilden de grld zere bir TV sistemi 1 EKRAN,1 KUMANDA, birden
ok DEVRE 'den olumaktadr. TV' nin bir paras olan KUMANDA ise 2 PL, 1 TUTAKIMI ve 1 IIK LAMBASI 'ndan olumaktadr. i bo elma ile gsterilen ilkilerdeherbir para ayr bir snftr ve tek balarna anlam ifade ederler. Para btn arasndaok sk bir iliki yoktur. TV nesnesi yaratldnda bir ekran veya bir kumanda
nesnesi daha sonradan oluturularak TV ye taklr. Ama baz durumlarda btnnesneyi yarattmzda paralarnn da yaratlmasn isteriz. Mesela bir insanbedenini analizini yapalm.Bir insan vcudu ba, gvde, el ve ayaklardan oluur. Birinsan vcudunu dndmzde tmyle dnrz.
Sadece "Beden" nesnesini oluturup sonradan bedene el, ayak, ba takmakok mantksz olurdu. Bu tr ilikilerin gsterilmesine ise "COMPOSITEASSOCATION" denir. Bu iliki dierine gre daha skdr. Bu tr ilikilerde
btn nesne yaratldnda paralar da annda yaratlr. Baz durumlarda,taklacak paralar duruma gre deiebilir.Belirli koullarda Kumanda, bazdurumlarda da Ekran olmayacaksa bu tr durumlar koul ifadeleri ilebirlikte noktal izgilerle belirtilir.Bu konuyu daha sonraki makalelerimizde
detayl bir ekilde ele alacaz. Bu durumda taklacak paralar"constraint(koul)" ile belirtilir.
-
8/8/2019 nesneye dayal programlama ve uml
28/39
Gerek bir BEDEN nesnesi olutuunda mutlaka ve mutlaka 1KAFA, 1 GVDE ve 4 EL_AYAK nesnesiyaratlacaktr.Grdnz gibi sk bir parabtn ilikisimevcuttur.
-
8/8/2019 nesneye dayal programlama ve uml
29/39
ARAYZ(INTERFACE)Bazdurumlardabirsnfsadecebelirliilemleriyapmakiinkullanlr.Herhangibirsnflailikisiolmayanvestandartbazilemleriyerinegetirensnfabenzeryaplaraarayz(interface)denir.Arayzlerinzellikleriyoktur.Yalnzcabirtakmileriyerinegetirmekiinbakasnflartarafndankullanlrlar.Mesela,bir"TuaBasma"arayzyaparakisteronu"KUMANDA"snfndaistersekdeaadaki ekildegrldgibi"KLAVYE"snfndakullanabiliriz.Snfilearayzarasndakiilikiyikesikizgilerleveizgininucundabo genolacak ekildegsteririz.Snfilearayzarasndakibuilikiyegerekleme(realization)denir.Snfla,arayzarasndaUMLgsterimiasndanfazlabirfarkyoktur.Tekfarkarayzdezellik(attribute)yoktur.Dierbirfarkisearayzadlarnyazarkenadnstneyazsneklemektir.Aadabirarayzsnfilikisimevcuttur.
-
8/8/2019 nesneye dayal programlama ve uml
30/39
Polymorphism (ok biimlilik)
ok biimlilik bir nesnenin davran ekillerinin
duruma gre deitirilebilmesidir." Aynen, bulunduuortamn artlarna gre renklerini mkemmel bir biimdeayarlayan bukalemun gibi.
-
8/8/2019 nesneye dayal programlama ve uml
31/39
Encapsulation (Kapslleme)
alma detaylarn sunumdan gizleme. CepTelefonu snf iin tanmlananMarka, Model gibi public zellikler CepTelefonu snfnn grnen yzdr.Dardan bakan sadece bu public alanlar ve metodlar grebilir. Ama snfn
iine girdiimizde seriNo, frekans gibi baka private (zel) zelliklergryoruz. Bunlar tamamen implementation (CepTelefonu'nun almas)ile ilgili eyler. Dardan bilinmesi gerekmiyor. Hele hele dardandeitirilmemeliler yoksa telefon bozulabilir.
Snflarmzda dardan bilinmesi gerekmeyen zellikleri ve metodlargizlemek iin private deyimini kullanyoruz.
Private zellikler sadece snfn iinden grlebilen, deitirilebilenzelliklerdir.
Bilinmesindeve/veya/yahut/yadadeitirilmesindesakncaolmayanzellikvemetodlarisepublicyapyoruz.
-
8/8/2019 nesneye dayal programlama ve uml
32/39
rnek : Hayvanlar (Kal
t
m kullanmadan)
-
8/8/2019 nesneye dayal programlama ve uml
33/39
Hayvanlar (Kal
t
m kullanarak)
-
8/8/2019 nesneye dayal programlama ve uml
34/39
Karlatrma
Kaltmolmadan:9dosya,200satrkod
Kaltmlabirlikte:13dosya,167satrkod
yaklak%15tasarruf(basitbirrnekiin)
-
8/8/2019 nesneye dayal programlama ve uml
35/39
UseCases(Kullanm ekilleri)Diyagramlar
SistemgereksinimleriUMLUseCase(kullanm ekilleri)diyagramlarilebelirtilir
Yazlmgelitirmeiingereklideildir,fakatgereksinimlervenesneselmodellerarasndaennemlibalantdr
UseCase:Kullan
m ekli
Birsistemfonksiyonunundardangzlemlenendavran
Sistemle,sistemdaktrler(kullancveyadiersistemlergibi)arasndaetkileimler..Sistemneyapyorlailgili,naslyapyorlailgilideil..
-
8/8/2019 nesneye dayal programlama ve uml
36/39
-
8/8/2019 nesneye dayal programlama ve uml
37/39
-
8/8/2019 nesneye dayal programlama ve uml
38/39
-
8/8/2019 nesneye dayal programlama ve uml
39/39
Kaynaklar
1)HeadFirstObjectOrientedAnalysis&Design
2)www.csharpnedir.com3)Y.Do.Dr.FezaBUZLUCAdersnotlar
4)Do.Dr.ErdoanDODUdersnotlar
http://www.csharpnedir.com/http://www.csharpnedir.com/
top related