KOD BANKASI
DİLEK BAŞARAN
Özgeçmis
Proje Teklifi
Yazılım Geliştirme Projesi
Bilgi Teknolojileri Sertifika Programı IDEA: ODTÜ Sanal Kampüsü
24.04.2008
Amaç
Yazılım sektöründe çalışan kişiler, rekabet gücünün temel anahtarı olan hız faktörünü sağlamak için yazılım geliştirirken dünyayı baştan keşfetmek yerine ilgili alanda daha önce yazılmış hazır kodlardan faydalanırlar. Bu amaçla, ihtiyaç duyduklarında internet üzerinden taramalar yaparak uygun kod parçalarını inceler ve yapacakları işe uygun yazılımları geliştirmeye çalışırlar. Fakat buldukları kodlar genellikle parça parça olup çalıştırmaya elverişli değildir; çalıştırılmadıkları ve test edilmedikleri için güvenilirlik sorunları vardır; gerekli açıklamalara sahip olmadıkları için anlaşılmaları zordur veya başka işlevler içeren büyük bir kodun parçalarıdır. Bu ve benzeri bir çok engelden dolayı, yazılımcıların kod geliştirme çalışmaları zaman almaktadır. Bu nedenle, bu sektörde çalışan, eğitim gören veya ilgili kişilerin hem kendilerini geliştirme amacı ile kullanabilecekleri hem de yazılım uygulama ihtiyaçlarını karşılayacak modüler, güvenilir, anlaşılır ve çalıştırılabilir kaynak kodlardan oluşan güzel bir internet sitesine olan ihtiyaç yazılım sektöründe yadsınamaz bir gerçektir. Belirtilen bu gereksinimler doğrultusunda internet kaynak alanı oluşturmak amacı ile KOD BANKASI isimli projenin hayata geçirilmesi düşünülmüştür.
Proje Tanımı
Kod Bankası Projesi, kullanıcıların ilk aşamada C, C++ ve Java dillerinde farklı uygulamalar için yazılmış kod ihtiyaçlarını karşılayabilecekleri bir internet kaynak alanı oluşturma çalışmasıdır. Bu proje, ileriki aşamalarda diğer yazılım dillerinide destekleyecek esnek bir geliştirme ortamına sahip olacaktır.
Projenin Kapsamı
Kod Bankası Projesi kapsamında yapılacak olan çalışmalar aşağıda sırası ile belirtilmiştir:
1) Giriş Sistemi Uygulaması Olacaktır:
Bu kapsamda, kullanıcıların internet sitesine sadece e-mail ve şifre bilgilerini girerek üye olmaları sağlanacaktır. Buna paralel olarak bir üye veri tabanı oluşturulacaktır.
2) Kod Çalıştırma Uygulaması Olacaktır:
Kullanıcıların ilk aşamada C, C++ ve Java dilleri ile yazdıkları kodları ilgili dilin derleyicisi ile derleyip test etmeleri sağlanacaktır. Bu nedenle, web sayfasında C, C++ ve Java derleyicileri bulunacaktır. Kullanıcıların kodlarını derleme işlemleri tamamlandıktan sonra eğer bu işlem başarı ile sonuçlanmış ise ilgili kodun veri tabanına yüklenip yüklenmeyeceği kullanıcıya sorulacaktır. Derlemede hata oluşması durumunda ise ilgili mesaj kullanıcıya bildirilecektir. Bu nedenle, bu proje sırf kod derlemek için bile kullanılabilir olacaktır. Bu uygulamada, derleyiciler arka planda girilen kodları çalıştıracak ve çıktı olarak pop-up mesajları oluşturacakdır.
3) Kod Yükleme Uygulaması Olacaktır:
Kullanıcıların farklı uygulamalar için ilgili kategorilere, C, C++ ve Java dilleri ile yazdıkları kodları yüklemeleri sağlanacaktır. Yükleme işleminin gerçekleşebilmesi için kodların derleme işleminden başarı ile geçmiş olması ve kullanıcı tarafından da Kod Bankası veri tabanına eklenmesinin onaylanması koşullarının sağlanması gerekecektir.
4) Veri Tabanı Uygulaması Olacaktır:
Kullanıcılar bulmak istedikleri koda yönelik arama anahtar kelimeleri ile Kod Bankası veri tabanından kod araması yapabileceklerdir. Bu kapsamda bir kod veri tabanı oluşturulacaktır. Ayrıca üyelik bilgilerinin tutulduğu bir de üye veri tabanı bulunacaktır.
5) Kod İndirme Uygulaması Olacaktır:
Kullanıcıların veri tabanında arayıp buldukları ve ilgilendikleri kodları, Kod Bankası internet sayfasından indirebilmeleri sağlanacaktır.
6) Kod Bankası Arayüz Tasarımı Gerçekleştirilecektir:
Belirtilen işlemlerin kullanıcılar tarafından olabildiğince kolay bir şekilde gerçekleştirilmesini sağlamak amacı ile Kod Bankası arayüzü tasarlanacaktır. Bu arayüz içinde yukarıda belirtilen maddelerin dışında aşağıdaki opsiyonel kısımların da bulunması düşünülmektedir:
• Kullanıcıların kod yükleme motivasyonlarını arttırmak amacı ile ilgili promosyon bilgi alanı arayüz içinde bulundurulacaktır.
Örneğin, belli sayıda kod yükleyen kullanıcıya çeşitli küçük hediyelerin verilmesi gibi.
• Kod Bankası sayfasının gelişim sürecine yardımcı olmak amacı ile ilgili reklam haber alanları arayüz içinde bulundurulacaktır. Örneğin, IDE_A reklamı alınabilir. :)
7) Kod Bankası Projesi Yazılım Belgeleri Hazırlanacaktır:
Yazılım geliştirme süreçlerine uygun olarak Kod Bankası Projesi ile ilgili dökümantasyon ve sunum kaynakları hazırlanacaktır. Hazırlanması beklenen dökümanlar, Önemli Kilometre Taşları ve Kaba Proje Planı başlıkları altında belirtilen ana maddelerden oluşmaktadır.
Yöntemler, Yazılım Araçları ve Platform
Kod Bankası Projesini tamamlamak için yararlanılacak yöntemler, yazılım araçları, yazılım ve donanım platformlarından aşağıda söz edilmektedir:
Yöntemler
Kod Bankası Projesi geliştirme çalışmasında, evrimsel dünya görüşü ile helezonik süreç modelinin kullanılması düşünülmektedir.
Yazılım Araçları
UML diyagram hazırlama programı,
Dia modelleme programı,
MicroSoft Ofis araçları,
Kod yazımı için düzenleme programı (Notepad++, vs.)
Yazılım Platformu
Kod Bankası Projesi’nin arayüzü HTML ve PHP dilleri ile yazılacaktır. Gerek olması durumunda arayüze Java betikler de eklenebilecektir.
Üye ve kodlar için iki ayrı veri tabanı bulunacaktır. Veri tabanı uygulamasında MySQL kullanılacaktır.
Kodların derleyicileri Linux tabanlı bir server üzerinde çalıştırılacağından dolayı Apache Web Sunucusunun kullanılması düşünülmektedir.
PHP, MySQL ve Apache arayüzlerinin üçünü birden destekleyen WampServer 2.0b’nin proje geliştirme ve test aşamalarında kullanılması düşünülmektedir.
WampServer 2.0b ile birlikte kurulan programlar ve sürümleri aşağıda sıralanmıştır:
- Apache 2.2.8
- MySQL 5.0.51a
- SQLitemanager
- PHP 5.2.5 + PECL
- Phpmyadmin
WampServer 2.0b’nin tercih edilmesinin nedeni açık kaynak kodlu olması ve GPL lisansı nedeni ile özgürce kullanılabilmesidir. Sunucu kurulumuna hız kazandırmakta ve iyi bir web sunucusu oluşturmaya imkan sağlamaktadır. Türkçe desteğinin de olması nedeni ile WampServer 2.0b kullanımı Kod Bankası Projesinde tercih edilmiştir.
Donanım Platformu
İnternet bağlantısı olan ve ilgili yazılım platformalarını içeren herhangi bir kişisel bilgisayar, geliştirilen Kod Bankası Projesini geliştirmek ve çalıştırmak için yeterli bir donanım platformunu oluşturacaktır.
Önemli Kilometre Taşları
Proje Teklifi: 24 Nisan 2008’de projenin amacı ve kapsamı belirtilecektir.
Analiz: 6 Mayıs 2008’de projenin ayrıntılı tanımı verilecektir.
Tasarım: 17 Mayıs 2008’de projenin ayrıntılı tasarımı verilecektir.
Gerçekleştirim: 13 Haziran 2008’de projenin gerçekleştirim sonuçları verilecektir.
Test: 20 Haziran 2008’de projenin test planı ve test sonuç belgesi verilecektir.
Sunum: 28-29 Haziran tarihlerinde yazılım projesinin sunumu yapılacaktır.
Kaba Proje Planı ve Uygulama Takvimi
Milestones
Aylar |
Nisan |
Mayıs |
Haziran |
Temmuz |
Haftalar |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
Teklif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Analiz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tasarım |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gerçekleştirim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Test |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sunum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|