|
|
| COM2010 | Software Engineering | 3+0+0 | AKTS:5 | | Yıl / Yarıyıl | Bahar Dönemi | | Ders Duzeyi | Lisans | | Yazılım Şekli | Zorunlu | | Bölümü | BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ | | Ön Koşul | Yok | | Eğitim Sistemi | Yüz yüze | | Dersin Süresi | 14 hafta - haftada 3 saat teorik | | Öğretim Üyesi | Doç. Dr. Sedat GÖRMÜŞ | | Diğer Öğretim Üyesi | | | Öğretim Dili | İngilizce | | Staj | Yok | | | | Dersin Amacı: | | Çeşitli geliştirme faaliyetleri ve metodolojileri, yazılım süreç modelleri, analiz konuları (kullanıcı ve sistem gereksinimleri) , tasarım konuları (mimarisel, arayüz ve bileşen düzeyli tasarım) , Hata işleme konuları (doğrulama ve sağlama) , tahmin konuları (maliyet ve kaynak gereksinimleri) ve proje metrikleri başta olmak üzere yazılım planlama, yapılandırma, gerçekleme ve yönetimine ait temel kavramları ve prensipleri tanıtmaktır. |
| Öğrenim Kazanımları | PÖKK | ÖY | | Bu dersi başarı ile tamamlayan öğrenciler : | | | | ÖK - 1 : | doğrusal ve yinelemeli süreç modellerinin farkını anlayabilir. | 1.2 - 1.3 - 2.1 - 5.3 | 1,3, | | ÖK - 2 : | özel bir yazılım projesine hangi süreç modelinin uygulanacağını belirleyebilir. | 1.2 - 1.3 - 2.1 - 5.3 | 1,3, | | ÖK - 3 : | bir yazılım projesinin veri, işlev ve davranışı için analiz modelleri oluşturabilir. | 1.2 - 1.3 - 2.1 - 5.3 | 1, | | ÖK - 4 : | bir yazılım projesinin veri, mimari, arayüzler ve bileşenleri için tasarım modelleri oluşturabilir. | 1.2 - 1.3 - 2.1 - 5.3 | 1, | | ÖK - 5 : | etkili test durumları tasarlamak için siyah-kutu ve beyaz-kutu test yöntemlerini kullanabilir. | 1.2 - 1.3 - 2.1 - 5.3 | 1,3, | | ÖK - 6 : | bir yazılım projesini ve geliştirme sürecini yönetebilmek için yazılım araçlarını kullanabilir. | 1.2 - 1.3 - 2.1 - 5.3 | 1,3, | | ÖK - 7 : | dağıtık gruplar halinde ortak bir projeyi geliştirme becerisi kazanır. Ve 'git' gibi dağıtık proje geliştirme araçlarını kullanabilir. | 1.2 - 1.3 - 2.1 - 5.3 | 3, | | PÖKK :Program öğrenim kazanımlarına katkı, ÖY : Ölçme ve değerlendirme yöntemi (1: Yazılı Sınav, 2: Sözlü Sınav, 3: Ev Ödevi, 4: Laboratuvar Çalışması/Sınavı, 5: Seminer / Sunum, 6: Dönem Ödevi / Proje),ÖK : Öğrenim Kazanımı | | |
| Versiyon kontrol araçları tanıtımı ve Git versiyon kontrol aracı. Proje yönetim kavramları: Yönetim yelpazesi, yazılım takımı, yazılım kapsamı, problem ayrıştırma, süreç ayrıştırma. Proje planlama ve izleme: Temel prensipler, yazılım mühendisliği görevlerinin seçimi, zaman çizeneği, plan izleme, hata izleme. Yazılım Tipi: İş, Görev Kritik ve Yaşam Kritik Yazılım tipleri. Yazılım süreci: Süreç modelleri, lineer dizisel model, prototipleme modeli, evrimsel yazılım süreç modelleri, bileşen tabanlı gelişim, biçimsel metotlar modeli. Gereksinimler mühendisliği: Gereksinimler analizi, gereksinimlerin çıkartımı, analiz prensipleri, yazılım prototipleme, belirtim. Analiz modelleme: Analiz modelleme elemanları, veri modelleme, fonksiyonel modelleme, davranışsal modelleme, yapısal analizin mekaniği. Tasarım mühendisliği: Tasarım süreci, tasarım prensipleri, tasarım kavramları, Mimari tasarım. Yazılım mimarisi, veri tasarımı, mimarisel stiller. Bileşen seviyeli tasarım: Nesne Yönelimli Tasarım, Sınıf tasarımı, Fonksiyon Tasarımı. Yazılım metrikleri: Proje etki alanı, proje metrikleri, yazılım ölçümü, yazılım kalitesi için metrikler. Yazılım proje tahmini: Yazılım kapsamı, insani ve çevresel kaynaklar, ayrıştırma teknikleri, deneysel tahmin modelleri. Hata Ayıklama ve Gvenli Kod yazma teknikleri. |
| |
| Haftalık Detaylı Ders Planı | | Hafta | Detaylı İçerik | Önerilen Kaynak | | Hafta 1 | Yazılım Mühendisliğine Giriş ve Git Kontrol Sistemi | | | Hafta 2 | Problem tanımlama, yazılım tipleri ve süreç modelleri | | | Hafta 3 | Gereksinim analizi, Mühendislik Standartları ve Gerçekçi Koşullar, Proje gruplarının oluşturulaması. | | | Hafta 4 | Gereksinim analizinin tasarıma etkisi ve üst seviye mimari tasarım | | | Hafta 5 | Gereksinim analizi adımları ve ana gereksinim belirleme adımları | | | Hafta 6 | Yazılım Mimarisi tasarımı ve UML yaklaşım | | | Hafta 7 | Nesne yönelimli tasarım adımları: Paket, sınıf, sınıf içi tasarım yaklaşımları | | | Hafta 8 | Sınıf Seviyesinde tasarım | | | Hafta 9 | Arasınav | | | Hafta 10 | Fonksiyon seviyesinde tasarım | | | Hafta 11 | Güvenli programlama teknikleri | | | Hafta 12 | Hata ayıklama araçları | | | Hafta 13 | Veri tiplerinin program akışına olan etkisi | | | Hafta 14 | Hata kontrolleri ve kontrol yapılarının sadeleştirilmesi | | | Hafta 15 | Dönem içi projelerinin sunumu | | | Hafta 16 | Dönem sonu sınavı | | | |
| 1 | Code Complete, 2nd Edition, Steve McConnell, 2004 | | | |
| 1 | Sommerfield, I. 2004; Software Engineering, 7th ed., Addison Wesley, 784 p. | | | 2 | Jalote, P. 2002; Software Project Management in Practice, Addison Wesley, 288 p. | | | |
| Ölçme Yöntemi | | Yöntem | Hafta | Tarih | Süre (Saat) | Katkı (%) | | Arasınav | 9 | 10/04/2013 | 2 | 25 | | Kısa sınav | 14 | 17/05/2013 | 15 | 25 | | Dönem sonu sınavı | 16 | 27/05/2013 | 2 | 50 | | |
| Öğrenci Çalışma Yükü | | İşlem adı | Haftalık süre (saat) | Hafta sayısı | Dönem toplamı | | Yüz yüze eğitim | 3 | 14 | 42 | | Sınıf dışı çalışma | 2 | 14 | 28 | | Arasınav için hazırlık | 5 | 1 | 5 | | Arasınav | 2 | 1 | 2 | | Ödev | 15 | 1 | 15 | | Dönem sonu sınavı için hazırlık | 10 | 1 | 10 | | Dönem sonu sınavı | 2 | 1 | 2 | | Toplam Çalışma Yükü | | | 104 |
|