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.tr selim.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 th Ed., McGraw Hill), Stephen R. Schach Yardımcı Kitap : Software Engineering 8 (8 th Ed., 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 nesnetabanlı 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
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 6