Maltepe Üniversitesi
Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği - 1 (BİL 305) GENEL DERS BİLGİLERİ
Öğretim Elemanı : Öğr. Gör. Fatih YÜCALAR Arş. Gör. Selim BAYRAKLI Ofis : MUH 310 - 311
Ofis Saatleri : Pazartesi: 11.10 – 12.00, Salı 10.10 – 11.00 Çarşamba: 10.10 – 12.00, Cuma: 11.10 – 13.00 Telefon : 0216 626 10 50 / PBX: 1407/1408
E-Posta :
fatihy@maltepe.edu.trselim.bayrakli@maltepe.edu.tr
Sınıf : 314 – Lab2
Ders Saatleri : Salı: 14.00 – 14.50; Çarşamba: 09.10 – 10.00; Cuma: 09.10-11.00 Ders Kitabı : Object-Oriented and Classical Software Engineering
(7
thEd., McGraw Hill), Stephen R. Schach
Yardımcı Kitap : Software Engineering 8 (8
thEd., Addison Wesley), Ian Sommerville Ön Koşul : BİL 203 Veri Yapıları ve Algoritma I
Dersin Amacı ve Hedefi
Dersin amacı yazılım mühendisliğinin temel prensiplerini öğretmektir. Öğrenciler bir yazılımın hangi safhalarda ne şekilde geliştirildiğini öğreneceklerdir. Klasik ve nesne- tabanlı yazılım geliştirme paradigmleri öğretilecektir. Öğrenciler nesne-yönlü paradigmi kullanarak ekip halinde bir yazılım geliştirme projesi yapacaklardır.
1
DERS İÇERİĞİ
Bölüm Ders
1 Yazılım Mühendisliğinin Kapsamı
• Yazılım Mühendisliği?
• Klasik Yazılım Mühendisliği Yaşam-Döngü Modeli
• Niçin Nesne-Tabanlı Model?
• Yazılım Mühendisliğinin çeşitli yönlerinin etkileri
• Bakıma Klasik ve Modern yönden bakış
• Sürekli dokümantasyon, test ve planlamanın önemi
2 Yazılım Yaşam Döngüsü Modelleri
• Teoride Yazılım Geliştirme
• Evrimsel Ağaç Yaşam Döngüsü Modeli
• Tekrarlama ve Aşama
• Tekrarlamalı ve Aşamalı Yaşam Döngüsü Modeli
• Tekrarlama ve Aşamanın Riskleri ve Diğer Yönleri
• Kodla ve Düzelt Yaşam Döngüsü Modeli
• Çağlayan Yaşam Döngüsü Modeli
• Hızlı Prototipleme Yaşam Döngüsü Modeli
3 Yazılım Süreci
• Birleştirilmiş Süreç (Metodoloji)
• OO Paradigmasında Tekrarlama ve Aşama
• Gereksinimler İş Akışı
• Analiz İş Akışı
• Tasarım İş Akışı
• Gerçekleştirme İş Akışı
• Test İş Akışı
• Teslim Sonrası Bakım
• Emeklilik
• Birleştirilmiş Sürecin Safhaları
2
Başlangıç
Olgunlaşma
Yapım
Geçiş
Tek Boyutluya karşı İki Boyutlu Yaşam Döngüsü Modelleri
4 Takımlar
• Takım Organizasyonu
• Demokratik Takım Yaklaşımı
• Klasik Şef Programcı Yaklaşımı
• Şef Programcı ve Demokratik Takımların Ötesi
5 Yazılım Araçları
• Adım Adım İyileştirme
• Maliyet-Kar Analizi
• Yazılım Ölçütleri
• CASE
CASE’in Sınıflandırılması
CASE’in Kapsamı
• Yazılım Sürümleri
Düzeltmeler
Çeşitlemeler
• Konfigürasyon Kontrolü
6 Test
• Kalite Sorunları
• Çalışma Zamanı Dışında Test Yapma
Adım Adım İlerleme
Denetleme
• Çalışma Zamanında Test Yapma
Yararlılık Testi
Güvenirlilik Testi
Sağlamlık Testi
3
Performans Testi
Doğruluk Testi
Test Yapmaya karşı Doğruluk İspatları
Çalışma Zamanındaki Testi Kim Yapmalı?
7 Modüllerden Nesnelere
• Modül Nedir?
• Modül İçi Etkileşim Dereceleri
• Modüller Arası Etkileşim Dereceleri
• Veri Kapsülleme
Veri Kapsülleme ile Geliştirme
Veri Kapsülleme ile Bakım
• Soyut Veri Tipleri
• Bilgi Gizleme
• Nesneler
• Kalıtım, Çok Biçimlilik ve Dinamik Bağlama
• Nesne-Tabanlı Paradigma
8 Yeniden Kullanılabirlik, Taşınabilirlik, Planlama ve Tahmin
9 Gereksinimler
• Müşterinin nasıl bir yazılıma ihtiyacı (isteği değil) var?
• Gereksinimler iş akışı
Uygulama sahasını anlama
İş modeli
Bilgi elde etmek için görüşme yapmak
Bilgi elde etmek için diğer teknikler
İş modelinde kullanım durumları (use-cases)
• Başlangıç Gereksinimleri
• Örnek Çalışma: The MSG Foundation
Uygulama sahasını anlamaya başlama
Başlangıç iş modeli
Başlangıç Gereksinimleri
Gereksinim iş akışına devam etme
4
Test iş akışı
• Klasik Gereksinimler Safhası
• Hızlı Prototipleme
10 Klasik Analiz
• Şartname Dokümanı
• Resmi Olmayan Şartnameler
• Yarı Resmi Olan Şartname Teknikleri
Yapısal Sistem Analizi
Varlık-İlişki Modeli
Sonlu Durum Makineleri
PROJE:
14 safhayı içeren bir dönem projesi vardır. Safhalar için gereken tarihler sınıfta önceden bildirilecektir. Proje çalışması ilgili tarihte sınıfta teslim edilecektir. İlgili tarihten sonra teslim edilen projelere 0 verilecektir. Proje bir takım çalışması olarak yürütülecektir.
Öğrenciler kendi takımlarını seçebilecekler ve ikinci haftanın sonuna kadar bize bildireceklerdir.
Bir takım 3 ile 6 arasında üyeden oluşacaktır. Bir takımın öğrencileri yapmış oldukları proje için ortak not alacaklardır.
PROJE HAKKINDA NOTLAR:
• Teslim edilecek proje dokümanları MS Word veya başka bir kelime işlemci kullanılarak hazırlanmış olmalıdır. Elle yazılmış/çizilmiş dokümanlar kabul edilmeyecektir.
• Hızlı prototiplemenin değerlendirilmesi iki kriter ile olacaktır:
Hastane Bilgi Yönetim Sistemi Yazılım Ürünün anahtar fonksiyonlarını ne derecede gerçekliyor ve Grafiksel Kullanıcı Arayüzü’nün kalitesi.
• 10. safhada Gane&Sarsen metodunun dokuz adımını projenize uygulamalısınız. Bununla beraber Veri Akış Diyagramının bir sürümünü üretmek yeterli olacaktır. Veri Akış Diyagramı, yazılım ürününü tanımlamak için yeterli derecede bilgiyi bir araya getirmelidir.
5
6
• 10, 11, 12 ve 13. safhalar dönemin son haftasında sınıfta power-point kullanılarak sunulacaktır ve yazılım demo edilecektir. Sunumun süresi 30 dakikayı geçmeyecektir.
YOKLAMA VE DERSE KATILIM
• Dersler katılmak zorunludur. Zamanında sınıfta olmalısınız.
• Derste sorular sormanız ve tartışmalara katılmanız beklenmektedir.
Derse en az %70 (laboratuar %80) oranında katılmalısınız. Aksi halde dersten kalırsınız.
(Sınavlara girme hakkınız olmayacaktır.) SINAVLAR
İki Vize ve Bir Final olmak üzere üç yazılı sınav olacaktır.
NOT DEĞERLENDİRMESİ
Not değerlendirmesi aşağıdaki gibi olacaktır:
Vize : 10% [18 Kasım 2008] [yazılı sınav] + 10% [6 Ocak 2009] [yazılı sınav] + 10% Proje [18 Kasım 2008’ kadar] + 6% Ev Ödevleri + 4% Pop-Quiz
Final : 40% [genel yazılı sınav] + 20% Proje