Çevik Yaklaşımlar ile Yazılım Geliştirme PDF
Document Details
Uploaded by SleekBongos4857
Yıldız Teknik Üniversitesi
Tags
Summary
Bu sunum, çevik yazılım geliştirme yöntemleri, kalite özelliklerini ve ilgili kavramları ele almaktadır. Çevik yaklaşımlar, müşteri taleplerini karşılamayı hızlandıran alternatif yöntemler olarak ortaya çıkmıştır. Sunum, XP (Extreme Programming) gibi çevik yaklaşımları ve TDD (Test Driven Development) gibi stratejileri ayrıntılı bir şekilde incelemektedir.
Full Transcript
Çevik Yaklaşımlar ile Yazılım Geliştirme Çevik yaklaşımlar, artan müşteri taleplerini daha hızlı karşılamak amacıyla geleneksel sistem geliştirme modellerine alternatif olarak ortaya çıkmıştır. Çevik yaklaşımlar, yazılım geliştirme safhasında geç ortaya çıkan gereksinim...
Çevik Yaklaşımlar ile Yazılım Geliştirme Çevik yaklaşımlar, artan müşteri taleplerini daha hızlı karşılamak amacıyla geleneksel sistem geliştirme modellerine alternatif olarak ortaya çıkmıştır. Çevik yaklaşımlar, yazılım geliştirme safhasında geç ortaya çıkan gereksinim değişimlerini çabuk karşılamayı esas alan modellere verilen genel bir isimdir. XP(eXtreme Programming), Basitlik İletişim Geri Besleme Cesaret Olmak üzere 4 temel değere ve bunlar çevresinde oluşturulan; Planlama oyunu, Küçük ve kısa aralıklı yayımlar, Sistem metaforu, Basit tasarım, Test, Devamlı yeniden tasarım (refactoring), Eşle programlama (pair programming) , Ortak kod mülkiyeti, Sürekli tümleştirme (continuous integration), Devam ettirilebilir hız( – 40 saat / hafta), Ekip üyesi müşteri, Kodlama standartları özelliklerine sahiptir. Geleneksel yazılım geliştirme süreç modellerine göre çevik modellerde, Dinamik kalite değerlendirme statik değerlendirmeden daha fazla uygulanır, Kalite ile ilgili işlemler daha sürecin daha erken adımlarında başlar, Kalite ile ilgili aktiviteler daha az aralıklar ile yapılır. Çevik yaklaşımlarda, kullanıcı hikayeleri, birim testler, müşteri geri beslemesi ile doğruluk ve süreklilik sağlanmaktadır.. Test güdümlü yazılım geliştirme Test güdümlü yazılım geliştirme (TDD) stratejisi küçük ve hızlı iterasyonlarla, yazılım geliştirme araçları ile hazırlanmış testler yazılarak ilerleyen bir yazılım geliştirme metodolojisidir. Test güdümlü yazılım geliştirme, genellikle çevik yaklaşım uygulamaları için daha uygun bir yöntemdir. TDD Uygulama Basamakları TDD yaklaşımı kullanarak yazılım mühendisleri aşağıdaki basamakları izleyerek kod geliştirmektedirler: Birim test case’leri yazmak Yazılmış test case’lerinin henüz kod yazılmadığı için başarısız olduğunu görmek için çalıştırma Kod yazarak test case’lerin geçmesini sağlamak Test case’leri tekrar koşturarak geçtiğini görmek Kodu yeniden düzenlemek TDD Hakkında Çalışmalar H.Erdoğmuş 24 lisans öğrencisini kullanarak önce-test ve sonra-test yöntemleri hakkında bir araştırma yapmıştır. Araştırma sonucunda TDD’nin programcı üretkenliğini artırdığı ancak daha iyi kalite sağlayamadığı görülmüştür. önce-test yaklaşımının başarısının programcıyı kodları ve test sonuçlarını yedekleme konusunda teşvik etmeyle alakalı olduğudur. 2.YAZILIM KALİTE TEMEL KAVRAMLAR Yazılım kalite faktörlerinin anlaşılması Yazılım Kalite faktörleri Modelinin incelenmesi Kalite Sağlama Aktivitelerini Özetleme Kalite Maliyet Modellerini anlama Geçerleme ve Doğrulamanın Yazılım Kalitesindeki yerini tanımlama Yazılım Kalite Özellikleri Kaliteli yazılım; önceden belirlenmiş olan işlevsel gereksinimlere, yazılım geliştirme standartlarına uygun ve kabul edilebilir hata düzeyinde bir yazılımdır. Şekil 2.1: Yazılım Kalite Faktörleri Bakım Taşınabilirlik Yapılabilirlik Yeniden Esneklik Kullanılabilirlik Testedilebilirlik Birlikte çalışabilirlik ÜRÜN DEĞİŞİKLİK ÜRÜN GEÇİŞİ ÜRÜN KULLANIMI Doğruluk Güvenilirlik Kullanışlılık Bütünlük Etkinlik Şekil 1.1: Mc Call Kalite Üçgeni Yazılım Kalite Özellikleri (1) Doğruluk (correctness): Spesifikasyonlara uygunluk ve müşteri isteklerini karşılama derecesi Güvenirlik(reliability): Tasarlanan işlevleri istenilen duyarlıkta yerine getirme olanağı Verimlilik (efficiency): Programın işlevlerini yerine getirebilmesi için gerekli bilgi işlem kaynaklarının (algoritmanın gerektirdiği bellek miktarı, işlem süresi) ve kodlamanın gideridir. Bir yazılım sistemi eğer maliyeti düşükse de etkindir. Güvenlik (security): Yetkisiz kişilerin yazılıma ve veriye girişini önleme olanağı, Kullanışlılık (usability) : Öğrenme, işletme , girdi hazırlama ve çıktı yorumlamada kolaylık derecesi Yazılım Kalite Özellikleri (2) Hata bulma Kolaylığı: Hatanın yerini bulma ve düzeltme olanağı Esneklik (flexibility): Yazılımda değişiklik yapma kolaylığı Sınama Yapılabilirlik (testability): Yazılımım doğruluğunu sınanmada kolaylık Taşınabilirlik (portability): Yazılımın farklı donanımlarda ve işletim yazılımı üzerinde kullanılma olanağı, Eğer bir yazılım sistemi başka bir donanım veya yazılım ortamına düşük maliyetle tanışabiliyorsa taşınabilirlik özelliği vardır Yazılım Kalite Özellikleri (3) Yeniden kullanılabilirlik (reusability): Yazılımın tümünün veya bir bölümünün başka bir uygulamada kullanılma olanağı Bağlanabilirlik(interoperability): Bir sistemin diğerine bağlanabilme olanağı Mc Call Yazılım Kalite Modeli Yazılım kalite faktörleri (Fi) doğrudan ölçülmeyip, ancak bazı özelliklere (mj) bağlı birer doğrusal regresyon denklemi; Fi = c1m1 + c2m2 + c3m3 biçiminde ya da faktör analizi (diskriminant fonksiyonu) ile kestirilebilir (Şekil 2.2). Şekil 2.2: Mc Call Kalite Modeli Doğruluk İzlenebilirlik Tam olma Güvenirlik Uyumluluk Doğruluk Etkinlik Hata toleransı Çalışma Etkinliği Bütünlük Bellek etkinliği Erişim kontrolu Kullanılabilirlik Erişim denetimi Çalışabilirlik Bakım Yapılabilirlik Eğitim İletişim yapılabilirlik Test edilebilirlik Basitlik Conciseness Esneklik Instrumentation İfade edilebilirlik Taşınabilirlik Geliştirilebilirlik Genelleştirilebilirlik Yeniden kullanılabilirlik Modularite Birlikte çalışabilirlik YazılımSistemi Bağımsızlığı Makine bağımsızlığı İletişim genelliği Veri genelliği Yazılım Kalitesini Sağlama Yazılım kalitesini sağlamak için, hata ve eksiklerin anında bulunması ve düzeltilmesi büyük önem taşımaktadır. Çünkü, Yazılım bir basamakta kalitesini sağlamak yapılan hata, sonraki basamakları da etkilemektedir. İleri basamaklarda bu hatanın bulunması olasılığı giderek azalmakta, düzeltilmesi için gerekli emek ve gider de zamanla orantılı olarak artmaktadır (Şekil -2.3). Yazılım Kalite Sağlama Aktiviteleri Standartlar Geçerleme ve Doğrulama (Verification / Validation) Gözden geçirme ve denetim (Reviews and Audits) Test Hata / kusur analizi (error/defect) Değişim yönetimi, konfigürasyon yönetimi Eğitim Risk yönetimi Yazılım geliştirme sürecinde kaliteyi yükseltmek için Gereksinim analizi aşamasında: sistemin kolayca kullanılıp öğrenilir olması, istenmeyen hallerin plânlı olarak değiştirilmesine çaba gösterilmesi Modüllere ayırmada: taşınabilirlik ve bağlanabilirlik özeliklerine önem verilmesi Ayrıntılı tasarımda: doğruluk faktörüne ağırlık verilmesi Sınama aşamasında: doğruluk ve olduğunca performans vb. diğer faktörlerin ölçümüne çaba gösterilmesi öğütlenmektedir.