Yazılım Mühendisliği Dersi
Ders teori ve proje kısımlarından oluşur. Teorik kısımda hem iş hayatında fayda sağlayacak güncel konular anlatılır hem de projede yapılması gerekenler aktarılır: yazılım geliştirme yaşam döngüsü, planlama ve gereksinim analizi, REST API ve OpenAPI, mikroservisler, Git ile takım halinde çalışma, Docker, CI/CD, önbellekleme ve mesaj kuyrukları.
Proje kısmında gruplar, internet üzerinde aktif olarak kullanılan, veritabanı etkileşimli bir web uygulamasını yazılım geliştirme yaşam döngüsünün aşamalarıyla geliştirir. Öğretim üyesi hem mentör olarak yönlendirir hem de müşteri olarak değerlendirir. Teknoloji sınırı yoktur; her grup istediği programlama dilini ve framework'ü kullanabilir.
Proje aşamaları:
Vize Analiz ve Tasarım aşamalarını, final Geliştirme, Test, Dokümantasyon ve Dağıtım aşamalarını kapsar. Bazı kalemler grupça, bazıları bireysel olarak yapılır ve puanlanır.
Bu dersi başarıyla tamamlayan öğrenci:
Gruplar: Bir grup en fazla 5 kişiden oluşur; alt sınır yoktur, ancak en az 3 kişi önerilir. Her grup bir lider belirler ve her grup farklı bir proje yapar.
Öğretim üyesinin rolü: Öğretim üyesi hem mentör olarak yönlendirir hem de müşteri olarak puanlar. Projeler değerlendirme şablonuna göre puanlanır; bazı aşamalar derste değerlendirilebilir.
Proje onayı: Proje fikri, grup lideri aracılığıyla Discord'dan ya da yüz yüze öğretim üyesine onaylatılır; ardından grup formu doldurulur.
Teknoloji: Teknoloji sınırı yoktur; istenen programlama dili ve framework kullanılabilir.
Bireysel ve grup çalışması: Projenin bazı kısımları bireysel, bazıları grupçadır. Bireysel kısımlarda herkes kendi GitHub hesabından commit eder; commit'i görülmeyen hesap o kısımdan puan alamaz. Grup kısımlarını lider ya da herhangi bir üye commit edebilir. Herkes kendi branch'ında çalışır, lider main'e birleştirir.
Repo: README, YazMuh şablonuna birebir uygun hazırlanır; uymayan teslimler değerlendirilmez.
Gereksinimler: Gereksinimler üyeler arasında eşit paylaştırılır; toplamda en az 1 kişi için 10, 2 kişi için 16, 3 kişi için 21, 4 kişi için 24, 5 kişi için 30 gereksinim olmalıdır. Her üyenin en az bir ekleme (POST), güncelleme (PUT), listeleme (GET) ve silme (DELETE) gereksinimi olur ve her gereksinim bir API metoduna karşılık gelir. Adlar kısa ve bir eylem bildirir (ör. Kayıt olma, Giriş yapma); açıklamalar net olur, teknik jargon ve kısaltma içermez. Gereksinimler GitHub'a eklenmeden önce yüz yüze onaylatılır. Ek olarak yapılan yapay zekâ tabanlı bir gereksinim ek puan getirir.
Domain üzerinde çalışma: REST API ve front-end bir domain üzerinde çalışmalıdır; domain üzerinde çalışmayan çalışmalar, başka kanıt olsa bile puan almaz.
Videolar ve testler: Her üye kendi sayfasının başına bir YouTube videosu ekler: adını, kendisine ait gereksinimleri ve kaçını yaptığını söyler, ardından her gereksinimi başarılı biçimde test eder. REST API testleri domain üzerinde Postman koleksiyonuyla yapılır; koleksiyon JSON olarak repodaki kendi klasörüne kaydedilir.
Odak: Dersi geçmeye ya da kaç puan alacağınıza odaklanmayın. İş hayatınızda referans olacak, özgeçmişinize eklediğinizde fark yaratacak güzel projeler geliştirmeye odaklanın.