Bitirme Projesi

Okulunu benim gibi uzatmış olanlar halimden anlayacaktır. Şu son bir ayım resmen stres içerisinde geçti. Doğru düzgün uyuyamadım, doğru düzgün hiç birşey yapamadım. Fakat en sonunda bitti. Derslerim açıklandı zaten iki tane dersim vardı topu topu, fakat yinede açıklanıp geçmiş olmama sevindim. Bitirme projemide sundum, teslim ettim ve AA alıp geçtim. Şimdi tek beklediğim resmi olarak mezuniyetimin ilan edilmesi.

Bu yazıda ise bitirme pojemden bahsetmek istiyorum. Öncelikle bitirme projemi her zaman çalışmak istediğim hocamdan aldığım için mutluyum. Hatta okulu uzattığımdan, istediğim hocayla çalışabilmek için bitirme projemi bir dönem erteledim. Tabi kide başka bir hocaylada yapabilirdim, fakat istediğiniz biriyle beğendiğiniz bir proje yapmak işinizi gerçekten kolaylaştırıyor. Neredeyse her hafta hocamla görüşmeye gitmiş olmama rağmen hiç bir hafta bundan şikayet etmedim ve büyük bir hevesle çalıştım. Bunu istediğim bir projeyi istediğim hocayla yapmamın büyük katkısı olduğunu düşünüyorum.

Sifreleme Protokolleri Üzerine Dil Gelistirilmesi

Bitirme projemde temel olarak alana özgü dil geliştirdim. Benim geliştirdiğim alan ise şifreleme protokolleriydi. Yani iki kişi arasında ki haberleşmeyi şifreleme üzerineydi. Proje esas olarak iki adımdan oluşmakta, ilk adım şifreleme algoritmalarının ve haberleşme işleminin gerçeklenebileceği Java sınıflarının yazılmasıydı. Burada haberleşme kısmında Observer Pattern kullanmam işimi büyük ölçüde kolaylaştırdı. Geliştirilecek protokol, içerisindeki katılımcıları dinliyor ve bir değişiklik olduğunda tanımlanmış işlemleri gerçekliyor. Yani temel olarak bir sonlu durum makinesi gibi çalışıyor. Her mesaj gönderildiğinde sistemin durumuda değişiyor.

Şifreleme olarak, asimetrik ve simetrik şifreleme algoritmalarını gerçekledim. Sıfırdan kendim bir şifreleme algoritması bulmuş değilim. Sadece Java içerisinde tanımlı olan kütüphaneleri kullanarak, dilimde kullanımına izin vereceğim şifreleme algoritmalarının sınıflarını yarattım.

Burdan sonra dilin gerçeklenmesi kısmı var. Bunun için önceki yazılarımda da bahsettiğim Xtext frameworkünü kullandım. Xtext bana grameri tanımlamamda, kontrol etmemde ve kod üretiminde büyük yardımlarda bulundu. Xtext ile çalışmaya başladığımda, öğrendiğim şeyleri de blogumda yazmaya çalıştım. Genel olarak benim en çok takıldığım yerleri yazdım fakat yaptığım ve değinmediğim yerlerde var.

Eğer ayrıntılı bilgi isterseniz Bitirme Raporunu okuyabilir ya da Bitirme Sunumuna göz atabilirsiniz.

Bitirme Raporu

Bitirme raporumu özenle yazdığımı söylersem büyük bir yalan söylemiş olurum. Herkes bitirme raporuna ne kadar özen gösterdiyse bende okadar özen gösterdim. Bunun yanlış anlaşılmasını istemem, normalde yaptığım projelerin raporlanmasına özen gösteririm. Elimden geldiğince, ne kadar sıkışık bir deadline’ım olsada Javadoc’larımı yazarım. Yeri geldiğinde tek satır bile olsa yazarım. Fakat bitirme raporu gibi büyük ve ayrıntılı bir şeyi bir haftada yazmak, inanın canımdan bezdirdi. Danışman hocamın tavsiyesine uyup üç hafta önceden başlamalıydım, fakat bir yandan da çalıştığımdan buna fırsat bulamadım. Sonuçta yine AA almış olmama rağmen, raporumdan dolayı, hocamın anlayış gösterdiğini düşünmeden edemedim. Lütfen okurken okuldan sıkılmış, bitiripte kurtulmak isteyen birinin yazdığı bir rapor olduğunu göz önünde bulundurunuz.

Bitirme Sunumu

Bitirme sunumum aslında bu kadar çirkin değildi. Fakat gerek PDF’e dönüştürme sırasında, gerekse Scribd sitesine yükleme sırasında bozulmalara yol açtı. Neden Slideshare kullanmadığımı soracak olursanız, belgem üzerinde bana yeterli yetkiyi vermediğinden cevabını alacaksınız.

Kaynak Kodları

Bitirme hocamın isteği üzerine kaynak kodlarını Git alanıma yerleştirmiştim. Bu sayede git ile de tanışmış oldum. Aynı şekilde, kaynak kodumu ilk kez bu proje içerisinde lisansladım.

https://github.com/bhdrkn/Protocol-Definition-Language

Eğer Xtext protokolüne meraklı kişiler varsa umarım kaynak kodları işlerine yarar.

Son

Son olarak, bugun mezunlar fakülteler tarafından resmi olarak açıklanıyor. Nihayet özgürüm. Son bir ayda okadar çok şeyi mezun olunca yaparım diye erteledim ki. Bunların arasında arkadaşlarımı aramaktan, blogumu yenilemeye, oyun oynamaya ve spor yapmaya kadar bir çok şey var. Ama hepsinden güzeli akşam eve geldiğimde, artık ne istersem onu yapabiliyorum. Kendi istediğim konularda araştırma yapıp yeni şeyler öğrenebiliyor, istediğim zaman bloguma yazabiliyor ya da tembel tembel oturup dizilerimin keyfini çıkarabiliyorum. Hatta istediğim zaman fazla mesai yapabilmek bile bana çok güzel geliyor.

Yakında site içerisindeki kendimle ilgili alanları güncellesem iyi olacak.

End Of Line