UML ile Nesneye Yönelik Modelleme Herşeyden önce UML(Unified Modeling Language) bir progralama dili değildir. UML daha çok Nesneye Dayalı Programlama için kullanabileceğimiz bir modelleme dilidir. Grady Blooch, James Rumbaugh ve Ivar Jacobson tarafından geliştirilmiştir. Yazılım teknolojisi geliştikçe yazılan programların karmaşıklığı ve zorluğu giderek artmaktadır. Yazılan programların karmaşıklığı arttığı için kod organizasyonu önem kazanmıştır. Bu sebeple üretilen modelleme ve analiz dili olan UML. Programlama aşamasında olabilecek sorunların en aza indirilmesini sağlamaktadır. UML yazılımların hem maliyetini hem etkisini hemde ömürünü artırır. UML ile dokümantasyonu yapılan bir programın sonradan düzenlenmesi daha kolay olur. UML in faydalarından bahsedersek : Kodlama işlemini kolaylaştırır. Çünkü programdan ne beklediğimizi ve programlama ile neler yapacağımızı belirleriz. Programda beklenmedik mantıksal hataları (bug) minimuma indirgemiş oluruz. Tasarım aşaması düzgün yapıldıysa, programın daha kolay geliştirilebilmesi sağlanacaktır. Bellek kullanımının daha iyi belirlenmesini sağlar. Programın kararlılığını artırır. Ortak çalışılan projelerde programcıların iletişimini daha kolay hale getirir. UML 9 Diyagram Türünden Oluşur : Class Diagram: Sınıfları baz alarak yapılan diyagramdır. Object Diagram: Sınıfın yerine gerçek nesneler kullanılır. State Diagram: Nesnelerin zamanlara ayrılmış durumlarını
gösteren diyagramdır. Sequence Diagram: Gerçek zamanlı sistemlerde zaman içinde değişen interaktiviteleri gösterir. Activity Diagram: Bir nesnenin durumunun değişim sırasını gösterir. Use Case Diagram: Programın davranışlarının kullanıcı gözüyle incelenmesidir. Collaboration Diagram: Bir sistemin bütün parçalarının birbirleriyle olan ilişkilerini gösterir. Component Diagram: Birden çok geliştiricinin birlikte çalıştığı projelerde program componentlere ayrılır. Bu tür projelerde bu diagram kullanılır. Deployment Diagram: Sistemin, bilgisayarlar arasındaki bağlantılar, programın kurulacağı makinalar ve sistemdeki aletler gibi fiziksel incelenmeleri yapılır. Nesne kavramında önemli olan özellikler vardır. Bunlar: Kimlik(identity): Nesneyi unique olarak tanımlar ve onu diğer nesnelerden ayırır. Durum(state): Özellikler(fields veya attributes) ile belirtilir. Davranış(behavior): Metot, metot adı, aldıüı parametre türleri ve döndürdüğü tür ile tanımlanır. [crayon-59d5ee049c7ad231592138/] Sınıf kavramının önemli özellikleri : Alanlar(fields): Nesne özelliklerini tanımlayan değişkenler, adları ve türleri ile. Metotlar(methods): Metot adları, döndürdüğü tür, parametreleri, ve metotu gerçekleştiren program kodu. [crayon-59d5ee049c7c5000614251/] Erişim Belirleyicilerin Gösterimi Public: UML de + sembolü ile gösterilir. Protected: UML de # sembolü ile gösterilir. Package: UML de ~ sembolü ile gösterilir.
Private: UML de sembolü ile gösterilir. UML de Nesne Gösterimi UML de Paket Gösterimi Assocation (Sınıflar arası ilişki) Sınıflar arasındaki ilişkiyi göstermek için iki sınıf arasına düz bir çizgi çekilir. İlişkiyi gösteren çizginin üzerine
ilişkinin türü yazılır. Bir İnsan sınıfı gerçek nesnesi olan Ali ile kitap sınıfı gerçek nesnesi olan UML kitabı arasında okuma ilişkisi vardı.kısaca şöyle deriz. Ali, UML kitabı okur. Bazı durumlarda sınıflar arasındaki ilişki, bir çizgiyle belirtebileceğimiz şekilde basit olmayabilir.bu durumda ilişki sınıfları kullanılır.ilişki sınıfları bildigimiz sınıflarla aynıdır. Özellik ve işlev elemanları olabilir. Sınıflar arasındaki ilişki eğer bir sınıf türüyle belirleniyorsa UML ile gösterimi aşağıdaki şekildeki gibi yapılır. Şu ana kadar gördüğümüz ilişkiler bire bir ilişkilerdi.ilişkiler bire bir olmak zorunda değildir.bir sınıf, n tane başka bir sınıf ile ilişkiliyse buna bire çok ilişiki denir.mesela Yüzbaşı ile Er arasında bire yüz bir ilişki vardır. Diyagramda bunu gösterirken Yüzbaşı sınıfına 1 Er sınıfına ise 100 yazacağız. Gösterimi aşağıdaki gibidir:
Kalıtım(Inheritance) Kalıtım UML de şu şekilde gösterilir: İçerme (Aggregations) Bazı sınıflar birden fazla parçadan oluşur.bu tür özel ilişkiye Aggregation denir.mesela,bir TV yi ele alalım.bir televizyon çeşitli parçalardan oluşmuştur.ekran,uzaktan Kumanda,Devreler vs.. Bütün bu parçaları birer sınıf ile temsil edersek TV bir bütün olarak oluşturulduğunda parçalarını istediğimiz gibi ekleyebiliriz. Aggregation ilişkisini bütün parça yukarıda olacak şekilde ve bütün parça nın ucuna içi boş elmas yerleştirecek şekilde gösteririz. Örnek bir şekil aşağıdaki gibidir. Arayüz(Interface) Sınıf ile arayüz arasındaki ilişkiyi kesik çizgilerle ve
çizginin ucunda boş üçgen olacak şekilde gösteririz. Sınıf ile arayüz arasındaki bu ilişkiye gerçekleme(realization) denir. Sınıfla, arayüz arasında UML gösterimi açısından fazla bir fark yoktur.tek fark arayüzde özellik(attribute) yoktur.diğer bir fark ise arayüz adlarını yazarken adın üstüne <interface> yazısını eklemektir.aşağıda bir arayüz sınıf ilişkisi mevcuttur. Kapsülleme (Encapsulation) Şimdi ise kalıtım kullanarak hayvanları oluşturalım:
Böylece kalıtım olmadan: 9 dosya, 200 satır tutan kodun, Kalıtım Kullanarak: 13 dosya, 167 satır koda, %15 tasarruflu bir şekilde nasıl dönüştüğünü UML kullanarak daha iyi kavramış oluyoruz. Use Cases Diyagramları Sistem gereksinimleri UML Use Case (kullanım şekilleri) diagramları ile belirtilir. Yazılım geliştirme için gerekli değildir, fakat gereksinimler ve nesnel modeller arasında önemli bir bağlantıdır.
Ücretsiz bir UML programı için : ArgoUML Yazar: Hasan Alp ZENGİN Kaynaklar: sibelsomyurek.com/veritabani/11_uml.pptx univera-ng.blogspot.cz/2009/12/uml-ve-modelleme-bolum-4- class-snf.html slideshare.net/aselmanb/uml-ile-modelleme
Java ile Soket Programlamaya Giriş Soketler iki bağlantı arasında duran soyut birimlerdir. Soket bağlantısının bir ucu istemciye diğer ucu sunucuya bağlıdır. Bu yazıda önce istemci sonra da sunucu bağlantılarını ayarlayacağız. İstemci [crayon-59d5ee049dd98235732105/] Sunucu [crayon-59d5ee049ddaa931471092/] Bu şekilde oluşturduğumuz sunucu nesnesi ile streams leri bağlayabileceğimiz bir nesne oluşturmamız gerekir. Soket Bağlama [crayon-59d5ee049ddb7398256692/] Bundan sonra bağlantımızı oluşturmuş olduk. Artık yapmamız gereken tek işlem bağlantı nesnesine erişip sunucudaki iletişimi kontrol etmek. Soketlerden Veri Alıp Vermek Soketlerden veri alıp vermek için Streamsleri kullanabiliriz : Giriş InputStreams Çıkış OutputStreams Önce istemci için girişi ayarlayalım. [crayon-59d5ee049ddc2041965876/] Şimdi sunucu için girişimizi oluşturalım. [crayon-59d5ee049ddcd278842995/] Artık girişlerimizi ayarlamış olduk. Şimdi yapmamız gereken şey girişlere benzer şekilde çıkışları oluşturmak. [crayon-59d5ee049ddd8964176704/] PrintStream aynı zamanda bir OutputStream dir. Yollamak
istediğimiz veriyi println fonksiyonuyla karşıya iletir. Bir diğer OutputStream tipi ise DataOutputStream dir. OutputStream PrintStream den farklı olarak karşıya byte da gönderebilir. Yazar: Hasan Alp ZENGİN Kaynakça http://bilgisayarkavramlari.sadievrenseker.com/2009/11/2 0/java-ile-sohbet-istemcisunucusu/ http://e-bergi.com/y/soket-programlama http://ibrahimbilge.com/java-socket-programlama/ Java ile OpenGL (JOGL) e Giriş 1. OpenGL nedir? OpenGL (Open Graphics Library) gelişmiş donanım desteğini kullanarak hem iki hemde üç boyutlu grafikleri ekrana çizdirmek için kullanılan ücretsiz bir grafik uygulama geliştirme arabirimidir. Windows, Linux, MacOS ve Solaris gibi birçok işletim sisteminde desteklenir. Donanım tarafında ise SGI, ATI, Nvidia ve Intel gibi büyük donanım üreticileri ekran kartlarında OpenGL desteği sunarlar. 1992 yılında ilk taslağı yaratılmış olan bu standart, günümüzde 4.5 sürümüne ulaşmıştır ve 700 üzerinde fonksiyona sahiptir. Çoklu platform desteği içeren uygulamalar ve
özellikle de deneysel ve bilimsel araçlarda açık arayla önde ve standart olarak kullanılmaktadır. 2. OpenGL eklentilerinin Netbeans a kurulumu OpenGL arabirimini netbeans e eklemek için JOGL eklentisini indirmeliyiz. JOGL u şu adresden indirebilirsiniz : http://plugins.netbeans.org/plugin/3260/netbeans-opengl-pack İndirdiğiniz dosyayı zip ten çıkarın. Netbeans te Tools menüsü altında Plugins i seçin. Açılan pencerede, Downloaded sekmesine gelip Add Plugins e tıklayın. Zip ten çıkardığımız NBM dosyalarının hepsini seçip Open a basın. JOGL pluginlerinin netbeans a eklenmesi
GLSL Editor dışındaki tüm eklentileri seçili hale getirip install a basın. Sözleşme yi kabul ettikden sonra Netbeans tekrardan başlatılacak. Netbeans başladıkdan sonra artık kullanıma hazırız. 3. Netbeans JOGL eklentisinin kullanımı Proje oluşturma ekranını açtığımızda JOGL Application u seçiyoruz ve Next e tıklıyoruz. Projenin JOGL uygulaması olarak oluşturulması Ardından projemizin ismini ve hangi platform da çalışacağını seçiyoruz. Projenin isminin ve platformunun seçilmesi.
Default programın çıktısı Finish e tıkladığımızda gerekli dosyaların import edilmiş olduğunu ve kod yapılarının oluştuğunu göreceğiz. Projemizi derlediğimizde default olan üçgen ve kare yi göreceğiz. Artık kendi kodlarımızı oluşturmaya hazırız. 4. Default Kodun İncelenmesi [crayon-59d5ee049ef9f643075039/] Yazar: Hasan Alp ZENGİN Kaynaklar: www.ahmetsayar.com/wp-content/uploads/java-ile-opengle-g iriş.pdf www.en.wikipedia.org/wiki/java_opengl