Yazılım Bakımı Yazılım Mühendisliği
Değişiklik, bilgisayar tabanlı sistemler için kaçınılmaz Temeller Yazılım Bakımı Zaman içinde ortaya çıkan yeni isterlerin karşılanması veya bulunan hataların giderilmesi çalışmaları yazılım bakımının temelini oluşturur. Değişiklikleri değerlendirmek , denetim altında tutmak ve uygulamak için bir düzen geliştirilmeli ve ona uyulmalıdır. Değişiklik, bilgisayar tabanlı sistemler için kaçınılmaz bir gerçektir. Yazılım Mühendisliği
Temeller Yazılım Bakımı Bakım Türleri : Sadece hata düzeltimi değil teslim sonrası yapılacak işleride kapsar. Düzeltici bakım (Bir Kısım yazılım kusuru ancak kullanım sırasında ortaya çıkar. Kusurun kaynaklanma sebebini araştırmaya ve gidermeye yönelik işlere denir. ) Uyarlayıcı bakım (Hızlı değişim ve teknolojik gelişmeler nedeniyle yazılımın yeni donanıma , işletim sistemlerine , bunların yeni sürümlerine , yeni uç birimlere göre uyarlanması , sürümün yükseltilmesive güncelleştirilmesi işlerine uyarlayıcı bakım denir. ) İyileştirici Bakım (Yazılım geliştirip test edilerek başarılı bir şekilde kullanıcıya sunulduktan sonra , yeni işlevler eklemek , var olanlara başarımı ve verimi artırıcı düzenlemeler yapmak iyileştirici bakım işleri denir.) Önleyici. (Yazılımın gelecekte uygulanabilecek değişikliklere daha iyi bir temel oluşturması bakım özelliğinin ve güvenirliliğinin arttırılması için ön tedbir niteliğindeki işlemler önleyici bakım işleri olarak tanımlanır.) Yazılım Mühendisliği
Değişiklik onayı ve görevlendirme Örgütlenme Yazılım Bakımı Genel olarak bakım işlemleri de belli bir düzen ve plan dahilinde yapılması gereklidir. Bakım örgütlenmesi ve iş akışı Kullanıcı Yeni Sürüm Bakım Personeli Değişiklik Sorumlusu Bakım İsteği İsteğin Reddi Değiş. Kontrol Kurulu Değerlendirme İsteği Son Sürüm Düzenleşim Yönetimi İş Planı Değişiklik onayı ve görevlendirme Değişiklik önerisi Sonucu Teknik Danışman Teslim Personeli Bakım Kontrolcüsü Yazılım Mühendisliği
Bakım Aşamaları İsterlerin çözümlenmesi Tasarım Gerçekleştirim Test Yazılım Bakımı Bakım Aşamaları : Yazılım geliştirme evresine benzer bu evrede standart bir süreç izlenmelidir. İsterlerin çözümlenmesi Tasarım Gerçekleştirim Test Teslim Yazılım Mühendisliği
Raporlama Yazılım Bakımı Raporlama : Kullanıcı , yazılımda ne tür değişiklik arzu ettiğini açıklayan bir yazılı öneri vermelidir. Kullanıcının isteğini karşılamak üzere tespit edilmiş, iyileştirme amacıyla verilen bir değişiklik öneri raporu hazırlanmalıdır. Herhangi bir yazılım veya değişiklik raporunu en az şu bilgileri içermelidir. Sistem veya alt sistem adı, öğe adı Sorunun açık tanımı Hatalı duruma düşülmesine neden olan giriş verileri Birimin içinde bulunduğu hatalı durum bilgisi Varsa raporlama sisteminin yarattığı kayıtlar(log data) Sorunu rapor eden kişiye ait erişim bilgileri Sorunun rapor numarası Sorunu daha ayrıntılı inceleyen mühendislere ait erişim bilgileri Raporu inceleyen makamların imzaları ve tarihler Karar(inceleme sonunda oluşturulur) Yazılım Mühendisliği
Bakım kolaylığı Yazılım Bakımı Teknik olarak her türlü değişiklik istemini gerçekleştirmek mümkündür . Ancak, önemli olan, bunu en düşük maliyetle , en kısa zamanda, doğru olarak ve yazılımın niteliklerini bozmadan yapabilmektir. Denetim Etmenleri : Geliştirme Ortamına Bağlı olanlar Personele bağlı olanlar Müşteriye Bağlı olanlar Yazılım Mühendisliği
Bakım kolaylığı Yazılım Bakımı Bakım Niteliği : Yazılım nitelikli bir bakım evresine sahip olmalıdır. Bakım istekleri her zaman resmi bir değişim denetim süreci kapsamında ele alınmalıdır. Yeterince hızlı omalıdır. İşgücü gereksinimi, süre ve maliyet kestirimi yapılabilmelidir. Öz kaynaklar etkin bir şekilde planlanmalıdır. Bakım istekleri sistematik olarak izlenmelidir. İstekler resmi olarak düzenlenmeli ve yönetilmelidir. Standartlara uyulmalıdır. Verimliliği arttırıcı ve bakımı kolaylaştırıcı yardımcı araçlar kullanılmalıdır. Uygun nitelikte teknik personel kullanılmalıdır. Yazılım Mühendisliği
Bakım kolaylığı Yazılım Bakımı Niceliksel Ölçümler : Bakım kolaylığı , nitelik ve güvenilirlik gibi ölçülmesi oldukça zor olan bir özelliktir. Sorunun belirlenip rapor edilme süresi. Sorun bildirimlerinin dönemsel yoğunluğu İdari işlemlerde gecikme süresi Sorunun gecikme süresi Değişkliğin tanımlanması için gereken süre Sorun bildirimlerinin müşterilere göre dağılımı Sorun bildirimlerinin hata türlerine göre dağılımı Sorun bildirimlerinin modüle göre dağılımı Düzeltme için geçen zaman Yerel test süresi Kullanım yerindeki test süresi Toplam süre Toplam işgücü ve maliyet Yazılım Mühendisliği
Bakım kolaylığı Yazılım Bakımı Bakım Sorunları : Bakım yapılabilme özelliğinin eksikliği, bir disiplin içinde geliştirilmiş olmaması sorunların asıl kaynağıdır. Çok fazla sürüm ortaya çıkması , bakımıda o derece güçleştirir. Yazılım geliştirme sürecini aynen takip etmek zaman ve işgücü açısından çoğu zaman olanaksızdır. Bir başkasının yazdığı kodu anlamak genellikle çok zaman alır. Eğer belgelendirme yanında kod içindeki açıklamalar da yetersiz ise çok ciddi sorunlar ortaya çıkar. Belgelendirme yetersiz, eksik , hatalı olabilir yada hiç olmayabilir. Bu durumda yanlızca kodu okuyup anlamak gerekecektir. İşlevsel olarak modüllere ayrılmamış yazılımda değişiklik yapmak yeniden geliştirmekten daha zordur. Yazılım Mühendisliği
Bakım kolaylığı Yazılım Bakımı Bakımı kolaylaştırıcı bazı önlemler : Bileşen bazlı geliştirme Tasarımı bakım kolaylığı açısından gözden geçirme Kaynak kodu bakım kolaylığı açısından gözden geçirme Kurumsal kodlama standartarına uyum Ürünü geliştiren personeli bakım aşamasında da görevlendirme Birim ve tümleştirme testleri için standart araçlar kullanma Yazılım Mühendisliği
Bakım kolaylığı Yazılım Bakımı Geliştirici İçin Kurallar : Nitelikli yazılım için uygulanması gereken kuralar; İstekler sistematik olarak izlenebilmelidir. İstekler her zaman resmi bir değişiklik denetim süreci kapsamında ele alınmalıdır. Süre ve maliyet kestirimi doğru yapılmalıdır. Müşterinin ilettiği sorun ve gereksinimler sorumlu kişi tarafından toplanmalıdır. Bakım projeleri tanımlanmalı ve yönetilmelidir. Geliştirme sürecinin belgelendirme standartlarına uyulmalıdır. Verimliliğe yardımcı olacak araçlar kullanılmalıdır. Uygun nitelikte teknik personel kullanılmalıdır. Yazılım Mühendisliği
Bakımın Yan Etkileri Yazılım Bakımı Test edilmiş ve kullanıma sunulmuş bir üründe yapılacak küçük bir değişiklik iyi çözümlenemez ve etkileri takip edilmez ise daha büyük problemlere yol açabiir. Kodlamanın Etkilenmesi (Hata yapmaya açık olan yapılanmadır…) Verilerin Etkilenmesi (Veri yapısının değişmesi tasarım ile uyumu ortadan kaldırır … ) Belgelendirmenin Etkilenmesi (Kod içindeki değişiklikler belgelendirmelerde de yapılmalıdır …) Başarımın Etkilenmesi (işlevsellik bozulacağından sistemin genel başarımını etkilenir…) Yazılım Mühendisliği
Belgelendirilmemiş Yazlımın Bakımı Yazılım Bakımı Belgelendirilmemiş yazılımlar için uygulanacak bakım yöntemleri ; Aynı kod üzerinde değişiklik yapılabilir Kod başka ortamlara taşınabilir Tersine mühendislik yapılabilir Yeniden yapılanma Temel yöntemler ; Her bir değişiklik isteği ayrı ayrı ele alıp tasarım ve kaynak kod içinde gereken değişiklikleri yapmak. Köklü değişiklikler için yazılımın derinliklerini anlamaya çalışmak. Değişiklik gerektiren kısımlarını yeniden tasarlamak. Yazılımın tümünü tekrar tasarlamak ,kodlamak ve testlerden geçirmek. Yazılım Mühendisliği
Riskler Yazılım Bakımı Dikkate alınması gereken riskler ; Geliştirme ve test ortamının bulunması Personel devamlılığı Personel deneyimi Eski teknolojinin getirebileceği zorluklar Müşteri hoşnutsuzluğu Eski yazılıma değişiklik uygulamanın zorluğu Yazılım Mühendisliği
Yazılım Bakımı … Örnek Çalışma Yazılım Mühendisliği