Professional Documents
Culture Documents
UML DYAGRAMLARI
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.
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.
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.
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.
Yukardaki resimde (Bkz. Resim 1) ok iaretleri snflar arasndaki genelletirmeyi gstermektedir. Genelletirme, kaltm ifade eder, ok iaretleri snflarn kendisinden tredii snflar gstermektedir.
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.
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
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.
Resim 6:UML Bileen Diyagramna Bir rnek Bileen diyagramlarnda lolipop notasyonu kullanlmaktadr. Lolipop notasyonu sayesinde bileenlerin bal olduu eleri grebiliriz.
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.