You are on page 1of 25

T.C.

SAKARYA NVERSTES ADAPAZARI MESLEK YKSEKOKULU

UML DYAGRAMLARI

YNLENDRLM ALIMA Ziyahan ALBENZ 0927.32196 BLGSAYAR PROGRAMCILII

DANIMAN : Sinan TUNCEL MART-2011

nsz Kiisel bilgisayarlarn geliimi ile birlikte, bilgisayarlar evlere kadar girmeye balad. Donanm teknolojisinin gelimesi ve eskiye nazaran ucuzlamasyla ykselen grafik, yalnzca bilginin ve ilemlerin saysallamas ve i yaantsndaki olaan d deiiklii deil; bilgisayarlar bir donanm ynndan, son kullanc iin ilevli hale getiren yazlm ve yazlmclar dnyasnda da pek ok farklln olumasn tetikledi. UML diyagramlar alabildiine geni bir konu, her ne kadar yazlm mhendisliinin bir arac olarak dnlse de, savunma sanayisinden, telekomnikasyona; salk sektrnden bankaclk ve finans sektrne kadar geni bir alan skalasnda kullanlabilme yetenek ve esnekliine sahiptir. Bu almada, yazlm sektrndeki gelitirme tekniklerinin dn ve bugnne ksa bir gz atlacak, bir bilgi temsili olarak UML'nin nemi aklanacak ve ardndan UML diyagramlar rnekleriyle birlikte incelenecektir.

NDEKLER

1. Yazlm Gelitirme Yaklamlarnn Ksa Bir Deerlendirmesi 2. Bilgi Temsilinin nemi 3. Bir leyi ve Bilgi Temsili Olarak UML Diyagramlar 4. Diyagram Trleri ve rnekler

Yazlm Gelitirme Yaklamlarnn Ksa Bir Deerlendirmesi Yazlm teknolojilerinin geliime paralel olarak, yazlm gelitirme yaklam ve yntemlerinde de srekli bir deiim olmutur. Bu iki olgu birbirini srekli etkileyerek gnmzde dahi yeniliklerin motor gcn zinde tutmaktadr. Yazlm gelitirmenin arkaik dnemlerine baktmzda, kod dizgelerinin derleyiciler tarafndan yukardan aaya doru okunup, hedef koda evrildii grmekteyiz. Sral Yaklam olarak da adlandrlan bu yntemde program ileyii GOTO deyimi ile satr numaralarna ynlendirilmekte, yazlm gelitiriciler asndan kodun yeniden kullanlabilirlii satr says arttka, giderek zorlamaktayd. QBasic, GWBasic dillerini sral yaklamn kullanld dillere rnek olarak gsterebiliriz. Yazlm gelitirme yaklamlarnda, yine tarihsel sra ile ele alacak olursak, Sral Yaklamdan sonra ileri bir hamle olarak ileve dayal (prosedrel-yordamsal) yaklamlar grmekteyiz. Programn yaam dngs ierisinde, birden ok nokta tarafndan arlan ve kendisini iaret eden noktaya deer dndren ya da belirli bir ilem silsilesini icra ederek, derleyici ya da yorumlaycnn ilevine kendisinin arld yerden devam etmesini salayan bu yaplar, programn zmek istedii sorunu ileve dayal modelleyerek zmlemektedir. Bu programlama yaklamnda, zlecek problem, ileve gre ayrmlanmakta ve paralara blnmektedir.

ekil 1 : Bir Yordamsal Programn leyi emas

Yordamsal yaklam, sral yaklama gre program karmakln azaltp, zlmesi gerekli problemi daha kk paralara blerek zme ulatrma imkan verdii iin nemlidir. Elbette yordamsal yaklann da eksikliklerini zikretmeliyiz. Eksikliklerini zikretmek, bugnn ileri teknolojilerinden hareketle yordamsal yaklam ve bulunduu tarihsel moment iindeki ileri roln yadrgayarak olmamal. Yarglamay problemlerin memba, hayat ve olaylardan hareketle yapmalyz. yle ki Yordamsal yaklam gerek dnyann btn bir resmini yanstmamaktadr. Gerek dnya yordamsal yaklamlarla kurguland ekliyle sadece olaylardan ibaret deildir. Yordamsal yaklam programcya, kendi veri tiplerini yaratma ve veri gizleme imknlar sunmamaktadr.

Birimler arasndaki iliki yordamsal yaklamla tam anlamyla zlemeyecektir. Program yaps deitiinde, eski fonksiyonlarn yeni yap ile adaptasyonu zor olmaktadr.

Srada, bugn adndan oka sz ettiren ve yazlm teknolojilerinin, desteini alamet-i farikalar olarak n plana kartt Nesneye Dayal (Object Oriented) Yaklam bulunmakta. Gerek dnya nesnelerden olumaktadr. Bu nesneler sahip olduklar nitelik ve kabiliyetleri ile var olmakta, yazlmclarn jargonu ile sylemek gerekirse hayat ierisinde gereklenmektedir. Varlklar bu yn ile kavrayaran OOP teknolojileri, geree yakn bir modelleme oluturulmasna imkn salamaktadr. OOP yaklam ile, kabiliyet ve keyfiyetleri ile nesneler yaratabilir; bu nesneler arasnda belirli ynlerden iliki kurabilir, nesnelerden kaltmla yeni tretimler yapabiliriz. OOPun genel zellikleri Miras Alma (Inheritance) Veri gizleme (Encapsulation) okbiimlilik (Polymorphism)

OOP un avantajlarn sralayacak olursak: Yaygn kabul gren bir programlama teknolojisidir. Potansiyel olarak verimlilii arttrr. Birbirleri ile etkileebilen nesneler yaratlabilir. Her bir nesne bamsz bir varlktr.

Bilgi Temsilinin nemi


Toplumsal bir varlk olan insann gerek dnyay deneyimlemesi, bilgi edinmesi yetmez. nsanolunun binlerce yllk ura ve kalntlarndan grmekteyiz ki, edinimler kadar, bu bilgilerin temsili, temsili yoluyla da toplumsal bir nitelik kazanmas, paylalmas, nemlidir. Hatta diyebiliriz ki, pek ok noktada, rnn bu toplumsal kt mahiyeti pek ok abada gdleyici olmutur. Dilin ve sair iaret sistemlerinin ortaya k, insann mezkur ihtiyacndan kaynaklanmaktadr. Gerek dnyann ihtiyalarna mukabil gelitirilen yazlmlar ve bu yazlmlarn mteekkil olduu btn aamalarda bilgi kadar, bilginin temsili de nemlidir. Yazlmcnn zm retecei, hizmet sunaca taraflarn ihtiyalarn zmleyebilmesi, zmlenen ihtiyalarnn btn detaylar dnlerek bir bilgisayar sistemi olarak kurgulanabilmesi, hem hizmet salayan ve hizmet satn alan asndan; hem de ortak bir mesai ile bir rn meydana getirme gayretindeki yazlmclar asndan nemlidir. Sorunun ve zm yntemlerinin emalatrlmas, stelik bunun herkese anlalabilir iaret dizgeleriyle yaplmas, henz analiz aamasnda, olas pek ok sorunlu noktann kefedilip bertaraf edilerek, ileriki aamalarda rnn kalitesine daha fazla younlalabilmesini salayabilir.

Bir leyi ve Bilgi Temsili Olarak UML Diyagramlar UML, yani Unified Modeling Language Birletirilmi Modelleme Dili, almndan da
anlalaca zere, birbirine nispeten farkl stnlkleri bulunan, yazlm modelleme dilinin UML ats altnda birlemesi ile vcuda gelmi bir konsenssn addr. UML, bir yazlm dili deildir. OOP teknolojisi kullanan yazlm dillerinde gelitirilecek ya da gelitirilmi olan projeler iin bir bilgi temsili ve ileyi aklamas olarak kullanlabilecek bir modelleme dilidir. Meselenin ayrntlarndan nce, aadaki resimde ifadesini bulan, bir yazlmn servenine dikkat edilmelidir.

Grlecei zere, salkl bir uygulamann doum serveni resimde yer almaktadr. Bu aamalardan biri atlandnda maalesef prematre doan programmz, kvezde bymek zorunda kalacaktr. Salkl bir biimde yaamna devam edebilecei fonksiyonlarnn yetersizlii sebebiyle, srekli takviyeler gerekecek ve normal bir doumun geliim hzna yetiebilmesi iin, astar yznden pahal misali, salkl bir uygulamann mr kadar gayret ve zaman heba edilecektir. Oysa henz ilk aamada, ayrntlar dnlm ve modelleme yaplm olsa, ikinci, nc ve drdnc aamalar kolaylklar birbirini takip edecektir. UML diyagram sayesinde, analiz aamasnda ihtiya duyduumuz tm detaylar hesaplayp, modelleyerek olas sorunlar tabir-i caizse kat zerinde tespit edebiliriz. Meseleye yalnzca sorunlar perpektifinden baklmamal. Programdan beklentiler, programn ileyecei sreler ve ktlar da bu modellemenin kapsamndadr. Yine UML diyagramlar sayesinde yazlm hatalarndan biri olan mantksal hatalar, model zerinde tespit edebiliriz. Bylece daha bandan beklenmedik felakat senaryolar devred braklm olur. UML diyagramlar sayesinde yazlmn esas maksadn hem hizmet alan kiiye, hem de mesai arkadalarmza kolaylkla anlatabiliriz. stelik bu sembol ve iaretlerden oluan dil, yaz ve konuma dillerinin aksine, zerinde ortaklalan temel sembolleri sayesinde iletiim zorluklarn da ortadan kaldracaktr. Yazlm modeline bakan herkes, yazlmn ilevine dair ayn eyi anlayacaktr. Yaz ve konuma dilleri ile olduka zor yakalanabilecek bu zorluk, UMLnin en nemli avantajlarndan biri olarak dnlebilir.

UML Nedir?
UML, Rational tarafndan gelitirilen, imdilerde Object Management Group tarafndan devam ettirilen bir modelleme dilidir. UML, IBM gibi byk firmalar tarafndan desteklenmektedir. Nitekim, IBM Rational firmasn satn alarak, destee ve pek ok ara salamaya devam etmektedir.

Peki ama Neden UML?


Birok insan resimlerle dnr, grntler, gstergeler pekoklar iin szcklerden daha fazla ey ifade eder. Bu yzden resimler pek ok kii iin, fikirleri ifade etmenin en hzl yoludur. Her sektrn hatta bilim dalnn alan iinde ve dankl olduklar dier alanla irtibatlarn salayacak gsterge dizilerine sahip olduunu syleyebiliriz. UML de giderek bir mhendislik haline gelen Yazlm Bilimi iin, olmazsa olmaz ihtiyalardan biridir. UML yazlmlarn eitli ilevleri ve grnmlerini grafiksel bir biimde anlatmann olanaklarn sunar. Yazlmn, mstakbel kullancs asndan sistem grnm ve ilevini, yazlmn yap ve mimarisini UML kullanarak resmedebiliriz. UML, grafiksel sembolleri kmesinden te sembollerin arkasnda gl bir semantik barndrr. UML yalnzca yazlm endstrisinde deil, bankaclk, savunma sanayii ve hatta salk sembolnde kullanlabilecek geni bir anlamsal kme ve ileve sahiptir.

UML Ne zaman Kullanlabilir?


UML'yi ihtiya duyulan her aamada kullanlabilir. Amerikan Kongresi tarafndan finanse edilen Amerika'nn Sesi Radyosu'nun Trkiye masas direktr Hakk CAL, greve yeni atanan UML merakls bir IT mdrnn departmanlar aras salkl ilikiyi ve bilgi akn salamann bir baka yolu olarak UML tavsiyelerinde bulunduunu, personele UML dersleri aldrdn ifade etmektedir. Yukarda rnek yalnzca yazlm gelitiriclerin deil, ilikileri yazlm paydasnda kesien btn bireylerin salkl bir iletiim arac olarak UML'yi kullanabileceini ispat kabilinden anlmtr. UML ile sistemler, lisanlar st bir hale brnp, mstakbel sistemin her iki tarafndakiler iin anlaml bir iletiim dizgesini ifade etmektedir. UML'yi yalnzca sistem analiz ve tasarm aamasnda deil; bitmi bir projenin dkmantasyon aamasnda da rahatlkla kullanabiliriz. UML sembollerinin basit ve herkese anlalabilir olmas, ikame edildikleri olgular ifade etmekteki kuvvetleri, ona bir toplant esnasnda kat ve kalemle not tutma basitlii ile sistem btnln resmetme gc vermektedir.

UML DYAGRAM ETLER


UML Diyagramlar ikiye ayrlr. Yapsal ve davransal diyagramlar. Yapsal diyagramlarda sistemin organizasyonu vurgulanrken, davransal diyagramlarda sistemin dinamiine vurgu yaplmaktadr.

Snf Diyagramlar
Snf diyagramlar, nesneye dayal programlamann temel ta olan ve gereklenmi nesnelerin birer szlemesi mahiyetindeki snflarn, temel niteliklerini resmeder. Mevzu bahis snfn bamllk ilikilerini, arayzlerini ve genelletirme ilikilerini gsterebilir. Genellikle 3 amala kullanlabilir: 1) Sistemin zellikler daarcn modelleyebiliriz. Sistemin soyut grnmlerinde alnan kararlar saptanabilir. 2) Snf ve dier eler arasndaki basit ibirlikleri modellenebilir. 3) Veritabannn mantksal emasn modelleyebiliriz. Snf diyagramlar, paraya blnm dik pozisyondaki bir dikdrtgen ereve iinde gsterilir. Bu erevenin e ayrlm ksmlarnn en stnde Snfn ad, ikinci ksmda snfn haiz olduu zellikler ve tipleri, nc ksmda ise snflarn kaabiliyetleri demek olan ilevlerin adlar yer almaktadr. levler, parametre olarak aldklar deer ve dn tipleriyle de yer alabilirler. zelliklerin belirtilmesinde grnrl imleyen 4 adet sembol kullanlr. Public (+) zelliin ve eylemin snf dndan da kullanlabilececeini belirtir. Protected (#) lev ve zellik eriimin yalnzca snfn kendisinden treyen ocuk snflarda eriime ak olduuunn belirtir. Private(-) zellik ve ileve yalnzca snf ierisinden eriilebileceini gsterir. Package(~) Ayn paketteki snflarn ilev ve zellii kullanabilecei belirtilmektedir. UML snf diyagramnda, ilev ve zellik iin herhangi bir im kullanlmadysa, public yani genel eriime ak olduu varsaylr.

Resim 1: Snf Diyagram iin bir rnek

Yukardaki resimde (Bkz. Resim 1) ok iaretleri snflar arasndaki genelletirmeyi gstermektedir. Genelletirme, kaltm ifade eder, ok iaretleri snflarn kendisinden tredii snflar gstermektedir.

Nesne Modelleri (Object Diagram)


Bu tr diyagramlarda snflar yerine snflarn gereklenmi hali olan nesneler kullanlmaktadr. Nesne diyagramlarnda esas ama, snf diyagramlarnda yer alan kavramlarn modellenmesidir. Nesne diyagram, nesneler arasndaki ilikileri gsterir. Nesne diyagramlar iin anlk fotoraflardr diyebiliriz. Bir T annda sistemin alnan bir grntsnn nesnesel grn gibidir. Karmak veri yaplarn modellemede ska kullanlmaktadr.

Resim 2:UML Nesne Diyagram'na Bir rnek

State (Durum) Diyagramlar


Gerek nesnelerin zaman iindeki pozisyonlar gsterebileceimiz diyagram trleridir. Nesne iin nemli noktalar, dnm noktalar birer diyagramla gsterilir. rnein, sunucu zerinde hizmet veren bir programn Durum diyagramnda programn balamas, almas durumu ve sonlanmas srasndaki ilemler durum diyagramlar ile gsterilebilir.

Resim 3:UML Durum Diyagramna Bir rnek Yukardaki resimden de grlecei zere, her bir durum keleri yuvarlatlmlm drtgenler iinde gsterilmektedir. Durum balang ve bitileri siyah noktalar tarafndan imlenmitir. renci, hareket servenine bir insan olarak balar, lisans ve yksek lisans rencisi olarak devam eder.

Sequence (Ak) Diyagramlar


Snf ve nesne diyagramlar sistemlerin duraan grnmlerini modeller. Halbuki sistem ierisinde, sistemin deien durumlar ve etkinlikleri vardr. Bu tr, durumlar resmetmek iin SEQUENCE (Ak) diyagramlar kullanlabilir.

Resim 4:UML Ak diyagramlarna Bir rnek Kayt olma ilemi iin kullancnn kayt ol sayfasna ynlendirildiini varsayyoruz. Kayt olma sayfasnda yeni bir User objesi oluturuluyor. Bu sayfada: kullanc ad, ifre gibi bilgiler bu User objesi iine dolduruluyor ve kullanc, Kayt ol butonuna basyor. Bu ilemi de UserPage boundary objesi karlayp,UserController objesine, kullancy kaydetmesi iin mesaj gnderiyor. Tm bu ilemlerin sonucunda kullanc ilgili sayfaya ynlendiriliyor

Collaboration (birlii) Diyagramlar


Sistem tek bir paradan mteekkil deildir. Sistem pek ok parann ibirlii iinde bir yapya sahiptir. Sistemin paralar arasndaki bu ibirlii yapsn gsteren modellere ibirlii modelleri denir. birlii modelleri iin Collabration (birlii) ad yerine Communication (letiim) diyagramlar ismi kullanlmaktadr.

Resim 5:UML birlii Diyagram Resim 5'te grld zere, ibirlii emasnda ders ynetimi bilgi sisteminin iletiim modeli gzkmektedir. Bu diyagramda eler, birbirleri ile iletiimde kullandklar ilevleri ak srasna gre mesaj numaras ile armaktadr. Kullanc, ders ynetim sistemini kullanmak iin ncelikle managaCourse mesajn CoursaAdministrator nesnesini gnderir. Daha sonra gerekleen mesajlar (olaylar) silsilesi ve arlan dier nesne olaylar sayesinde ilem gerekleir.

Compoment (Bileen) Diyagramlar


Sistem son kullanc asndan grnt itibariyle btnlk arzetse de, ilevler compoment (bileen) ad verilen paralardan olumaktadr. Bu paralarn varl, gelitirme aamasnda ibirlii ve gelitirmeyi kolaylatrr. Problemin zm asndan da sistemin atomize edilebilir bir yapda olmas, yeniden retilebilirlii ve sorun zm asndan avantajlar sunmaktadr Sistemin bu paral yapsn resmeden diyagramlara Compoment(Bileen) diyagramlar denir.

Resim 6:UML Bileen Diyagramna Bir rnek Bileen diyagramlarnda lolipop notasyonu kullanlmaktadr. Lolipop notasyonu sayesinde bileenlerin bal olduu eleri grebiliriz.

Deployment (Datm) Diyagramlar


Sistem ve sistemle amalanan ilevlerin planlanp modellenmesi tek bana yeterli deildir. Nasl ki donanm, ona ruh katan yazlmsz bir ey ifade etmiyorsa, yazlmda zerinde koaca donanm ve sitem altyaps olmadan ilevsizdir. te, UML 'ye konu olan uygulamann zerinde alaca sistem mimarisinin resmedildii diyagramlar Deployment (Datm) diyagramlardr. Bu diyagramlarda bilgisayarlar arasndaki balantlar, sistemin balantda bulunduu dier aygtlar resmedilmektedir.

Resim 7:UML Datm Diyagram rnei

Activity (Etkinlik) Diyagramlar


levleri anlamak ve planlamak iin kullanlmaktadr. Etkin diyagramlar algoritma tasarlarken kullanlan ak diyagramlarna benzemektedir. Aktivite diyagramlar, analiz aamasnn ilk sahfasnda i aknn genel bir grntsn resmetmek iin kullanlrlar.

Resim 8:UML Etkin Diyagram rnei

Resim 9:Etkinlik Diyagramlarnda Kullanlan Semboller

USE CASE (KULLANIM DURUMU) Diyagramlar ve Senaryolar


Sistemi kullanacak olan bileenlerin sistem karsndaki durumlarn resmeden diyagram trleridir. Kullanc diyagramlarnda, zellik ve ilevleri kullanacak zne, aktr olarak anlmaktadr. Bu bir insan olabilecei gibi, bir aygt, bir yazlm paras da olabilir. Aktr konumunda zne olarak, bizim gelitirdiimiz sistemin bir paras konumlanamaz. Kullanm durumu diyagramlar,sistemimiz zerinde aktrn belirli somut hedeflere hangi yollarla ulaabileceini aklar. Kullanm durumlarnda en nemli nokta aktrn amacna uygun gerekletirecei admlarn ve sistemin buna mukabil verecei yantlarn aklayc bir halde diyagramda bulunmasdr. UML, sistemin aktr tarafndan grnm iin bir dizi hazr ema salar. Aktr olarak anlan zne p adam olarak resmedilir. Aktrn sistem ierisinde yapmaya muktedir olduu ilemler baloncuklar ierisinde eylem adlaryla gsterilir.. Aktr ile ilev arasndaki ba aktrden baloncua doru uzanan bir doru ile resmedilmektedir. Kullanm durumlar hakknda en nemli kural, aktrlerin gelitirdiimiz bir yazlma mndemi bir bileen olmamasdr. Aktr olarak anlan suje, sistemin dnda bir insan, makine ya da baka bir program olabilir. Aktr, gelitirilen sistem dnda ve sistemimizi kullanacak bir zne olmaldr. Kullanm diyagramlarnda nemli bir kural daha, aktrn yapmaya muktedir olduu fiillerin, baloncuklar ierisinde kesin fiillerle aklanmasdr. Kullanm durumlar iin kullanlabilecek doru rnekler, "ATM'den Para ek","Siparii Kargola","demeyi Yap" olabilir. Sayca ok basit kullanm durumlarnn yerine, eylemi btn olarak aklayan baka basit yazmlar kullanabiliriz. rnek vermek gerekirse, "Sipari Ekle","Sipari Gncelle","Sipari Sil","Sipari kts Al" admlar yerine "Siparii Gr ve Deitir" admn kullanabiliriz. Detayl aklamalar iin Senaryolar(Scenarios) faydal olacaktr.

Senaryolar (Scenarios)
Her kullanm durumu, kendisini ayrntlar ile, adm adm aklayacak bir senaryoya ihtiya duymaktadr. Senaryo, kullancnn bilgisayardan neler isteyebileceini ve bilgisayarn kendisine verecei yantlar aklamaldr. Buna ramen senaryolar her eyi detaylca alayamazlar, tm modellemelerin tabiatnda olduu gibi kullanm durumu modellerinin bir paras olan senaryolar da,

adm adm aklad aamalarda ancak sistemin en vazgeilmez elerine deimek zorundadr. rnein: Ahmet isimli renci SA Port zerinden bir derse katlacaktr. 1. Ahmet, benzersiz kullanc ad ve ifresi ile sisteme giri yapar. 2. Sistem, Ahmet isimli rencinin, renci pozisyonunun sistem zerindeki yetkilerinden mteekkil bir men sunar. 3. Ahmet, retim Ynetim sisteminden, kaytl bulunduu derslerin listesini grebilir. 4. SA Port sistemi, Ahmet'in kaytl olduu derslerin listesini, kullanc admne karlk yant olarak dndrr. 5. Ahmet, ierii grmek istedii derse tklar. 6. SA POrt sistemi, Ahmet'in ders giriini kayt altna alarak, ilgili dersin ieriini Ahmet'in ekranna geri dndrr.

Resim 10:UML Kullanm Durumu emasna Bir rnek

Domain (Alan) Modelleri


Alan modelleri sayesinde projenin kullanlaca saha ile ilgili modellerin tespit edilmesini ve tespit edilen modellerin birbirleriyle olan ilikileri belirlenir. Her proje ahsna mnhasr modellere sahiptir. Bu modelleri kavramlar olarak da anabiliriz. rnein, bir prakendeuygulamasnda Stok kartlar bilgisini ihtiva eden Stoklar nesne ya da snf, siparileri ieren sipari snf ya da nesneleri bulunur. te bu gibi unsurlarn tespit edilip, birbirleriyle olan mnasebetlerinin gsterildii, hasl, modellenecek projenin kavramsal bir haritasnn kartld modellerdir.

Resim 11:UML Alan Modeline Bir rnek

Package (Paket) Modelleri


Bir sistemin hangi mantklar gruplara blndn, bu gruplar arasndaki bamllklar aa grnmnde betimleyen diyagram trleridir.

Resim 12:UML Paket Diyagram Grnm

You might also like