390 likes | 693 Views
Bölüm 1. Yazılım Mühendisliği. Yazılım Mühendisliği. Ortaya çıkan yazılım ürünlerinin karmaşıklığını ve boyutunu yönetmek için uygun araçlar kullanarak, zaman ve maliyet sınırları içerisinde geliştirilmiş bilgisayar programlarının tasarım, üretim ve bakımıyla ilgilenen disiplindir.
E N D
Bölüm 1 Yazılım Mühendisliği
Yazılım Mühendisliği • Ortaya çıkan yazılım ürünlerinin karmaşıklığını ve boyutunu yönetmek için uygun araçlar kullanarak, zaman ve maliyet sınırları içerisinde geliştirilmiş bilgisayar programlarının tasarım, üretim ve bakımıyla ilgilenen disiplindir.
Yazılım Hayat Süreci • Problem analizi • İhtiyaçların tespit edilmesi • Yazılım şartnameleri • Alt ve üst düzey tasarım • Tasarımı uygulama
Yazılım Hayat Süreci • Test etme ve Doğrulama • Teslim(Delivery) • İşlem(Operation) • Bakım(Maintenance)
ProgramcıAlet kutuları • Donanım—Bilgisayar ve çevr birimleri • Yazılım—İşletim sistemleri, editörler,derleyiciler, yorumlayıcılar, hata ayıklayıcı sistemler, test verisi üreteçleri, vs.
ProgramcıAlet kutuları • Fikirler(Ideaware) • Algoritmalar • Veri Yapıları • Programlama yöntemleri • Tasarım yardımcıları • CRC kartları • UML(Unified Modeling Language) • Senaryolar(Scenarios)
ProgramcıAlet kutuları • Yazılım Kavramları • Bilgi gizleme(Information hiding) • Veri kapsülleme(Data encapsulating) • Soyutlama(Abstraction)
Kaliteli Yazılımın Amaçları • Çalışır • Fazla zaman ve güç harcamadan düzeltilebilir • Tekrar kullanılabilir. • Zamanında ve bütçe sınırları içerisinde tamamlanabilir.
Tavsiye edilen program şartnameleri • İhtiyaçların işlenmesi • Örnek girdilerle beklenen çıktılar • Varsayımlar • Terimlerin tanımları • Bir test planı
Detaylı Program Şartnamesi • Programın nasıl yaptığını değil, neyapması gerektiğini söyler • Program hakkında yazılı bir belgedir.
Soyutlama • Bir sistemin gözlemcisine göre gerekli olan detayları içeren daha karmaşık bir sistemin modelidir. • Programlar bir soyutlamadır
Bilgi Gizleme • Sistemin geriye kalan kısmından modülün detaylarını, bu detaylara erişimi kontrol altında tutarak saklama eylemidir. • Bir programcı bir defada bir modülle ilgilenebilir • Her bir modülün tek bir gayesi veya kimliği bulunmalıdır
Nesneye Yönelik Programlama(NYP) Kısa Özeti • Üç ilişkili yapı: sınıf, nesne ve • Nesneler bir NYP sistemindeki çalışma zamanı elemanlarıdır • Bir sınıf nesnelerinin yapısını tanımlar. • Sınıflar kalıtımla tanımlanmış bir “is-a”hiyerarşisi içinde organize edilmiştir.
Date Class • Programs\C01P14.jpg program için tıklayınız
Genişletilmiş(Extended) UML class diyagramıDatenesnelerini göstermektedir • Date myDate = new Date (6, 24, 1951); • Date yourDate = new date (10, 11, 1953); • Date ourDate = new Date (6, 15, 1985);
Kalıtım(Inheritance) • Programcıya mevcut bir sınıfın daha özelleştirilmiş bir sınıfını oluşturma imkanı verir. • Yeni sınıfa mevcut sınıfın alt sınıfı(subclass) denir. Mevcutsınıf ise yeni sınıfın üst sınıfı(superclass) olur
NYP Tasarımı • Sınıfları belirleyin • Sınıfları bir kalıtım hiyeraşisinde düzenleyin • Önceden yazılmış sınıfları bulun
Sınıfları Belirleme • Fikirler için beyin fırtınası yapın • Problemdeki nesneleri belirleyin • Genelde nesneler isimler, işlemler de fiillerdir. • Sınıfları filtreleyin • Nesnelerin bir işi gerçekleştirebilmek için birbirleriyle etkileştikleri bazı senaryoları göz önüne alın • CRC kartları bu senaryoları düşünmemizde faydalı olur
Özet: Sınıfları Belirleme Yaklaşımları • Ana sınıflarla başlayıp daha sonra tasarıma ince ayar yapın • Önemli tasarım kararlarını ve sınıf içerisinde değişmesi muhtemel ihtiyaçları gizleyin • Bir grup programcıyla beyin fırtınası yapın • Her bir sınıfın tek bir sorumluluğu yerine getirmek üzere tasarlandığından emin olun.
Özet(Devam) • Sınıfları düzenlemek ve tasarımdaki boşlukları belirlemek için CRC kartlarından faydalanın • Kullanıcı senaryolarının üzerinden geçin • Problem tanımındaki isim ve fiilere dikkat edin
Program doğrulama bir yazılım ürününün şartnamesine hangi ölçüde uyduğunu belirleme işlemidir
Doğrulama(Verification)Geçerli Olma(Validation) Program doğrulama, “İşi doğru yapıyor muyuz?” Programın geçerli olması, “Doğru işi yapıyor muyuz?” B.W. Boehm, Software Engineering Economics, 1981.
Hata Tipleri • Şartname • Tasarım • Kodlama • Girdi
Hataları Kontrol Etme Sağlamlık(robustness): Programın bir hata sonrası düzgün bir şekilde çalışmayı sürdürmesi veya verilen şartlar dahilinde çalışabilmesi Önşartlar(Preconditions):Hedef şartların garantilenebilmesi için bir işleme veya metoda girişte doğru olması gereken varsayımlar Hedef şartlar(Postconditions)Statements that describe what results are to be expected at the exit of an operation or method, assuming that the preconditions are true.
Test Tipleri Birim testi(Unit test):Bir sınıf veya metodu kendi başına test etme Kara kutu testi(Black-box testing): Bir program veya metodu kodu kara kutu gibi kabul ederek muhtemel girdi değerlerine göre test etme Beyaz kutu testi(Clear (white) box testing):Bir program veya metodu kodun bütün dallanmalarını veya yollarını kapsayacak şekilde test etme
Test Planları • Bir program veya modül için planlanan test etme olaylarını, bunların amaçlarını, girdilerini, beklenen çıktılarını ve başarı için gerekli şartlarını gösteren belgedir. • Program testinin etkin olabilmesi için mutlaka planlanması gerekir • Tek bir satırlık kod yazarken bile test etme planı yapmaya başlamak gerekir