Professional Documents
Culture Documents
Evolution processes
Legacy systems
Software maintenance
Evrim süreçleri
Eski sistemler
Yazılım bakımı
Evrim
Bir yazılım sisteminin yaşam döngüsünde operasyonel
kullanımda olduğu ve sistemde yeni gereksinimler
önerilip uygulandıkça gelişen aşama.
Servis
Bu aşamada, yazılım yararlı olmaya devam eder, ancak
yapılan değişiklikler yazılımı çalışır durumda tutmak için
gerekli olanlardır, yani hata düzeltmeleri ve yazılım
ortamındaki değişiklikleri yansıtacak değişiklikler. Yeni
işlevsellik eklenmez.
aşamalı
Yazılım yine de kullanılabilir
30/10/2014
ancak üzerinde herhangi bir 7
Chapter 9 Software Evolution
Evolution processes
Iteration of the development process where the revisions to the system are designed,
implemented and tested.
A critical difference is that the first stage of change implementation may involve
program understanding, especially if the original system developers are not
responsible for the change implementation.
During the program understanding phase, you have to understand how the program
is structured, how it delivers functionality and how the proposed change might affect
the program.
Sistem revizyonlarının tasarlandığı, uygulandığı ve test edildiği geliştirme sürecinin
yinelenmesi.
Kritik bir fark, özellikle orijinal sistem geliştiricileri değişikliğin uygulanmasından
sorumlu değilse, değişiklik uygulamasının ilk aşamasının programın anlaşılmasını
içerebilmesidir.
Programı anlama aşamasında, programın nasıl yapılandırıldığını, işlevselliği nasıl
sağladığını ve önerilen değişikliğin programı nasıl etkileyebileceğini anlamanız
gerekir.
30/10/2014 Chapter 9 Software Evolution 13
Urgent change requests
sistemin kullanımı
Sistemler yalnızca ara sıra veya az sayıda kişi tarafından
kullanılıyorsa, düşük bir iş değerine sahip olabilirler.
Desteklenen iş süreçleri
Verimsiz iş süreçlerinin kullanımını zorlayan bir sistem,
düşük bir iş değerine sahip olabilir.
Sistem güvenilirliği
Bir sistem güvenilir değilse ve sorunlar ticari müşterileri
doğrudan etkiliyorsa, sistemin iş değeri düşüktür.
Sistem çıkışları
İş, sistem çıktılarına Chapter
30/10/2014 bağlıysa, sistem yüksek bir iş
9 Software Evolution 30
System quality assessment
İş süreci değerlendirmesi
İş süreci, işletmenin mevcut hedeflerini ne kadar iyi
destekliyor?
Çevre değerlendirmesi
Sistemin ortamı ne kadar etkilidir ve bakımı ne kadar
pahalıdır?
Uygulama değerlendirmesi
Uygulama yazılım sisteminin kalitesi nedir?
Factor Questions
Supplier stability Is the supplier still in existence? Is the supplier financially stable and
likely to continue in existence? If the supplier is no longer in business,
does someone else maintain the systems?
Tedarikçi hala var mı? Tedarikçi finansal olarak istikrarlı mı ve varlığını
sürdürmesi muhtemel mi? Tedarikçi artık faaliyet göstermiyorsa
sistemlerin bakımını başka biri mi yapıyor?
Failure rate Does the hardware have a high rate of reported failures? Does the
support software crash and force system restarts?
Donanımda bildirilen arıza oranı yüksek mi? Destek yazılımı çöküyor
ve sistemi yeniden başlatmaya zorluyor mu?
Age How old is the hardware and software? The older the hardware and
support software, the more obsolete it will be. It may still function
correctly but there could be significant economic and business
benefits to moving to a more modern system.
Donanım ve yazılım kaç yaşında? Donanım ve destek yazılımı ne
kadar eskiyse, o kadar eski olacaktır. Yine de doğru şekilde çalışabilir,
ancak daha modern bir sisteme geçmenin önemli ekonomik ve ticari
30/10/2014 faydaları olabilir.
Chapter 9 Software Evolution 33
Factors used in environment assessment
Factor Questions
Support requirements Donanım ve yazılım için hangi yerel destek gereklidir? Bu
destekle ilgili yüksek maliyetler varsa, sistem değiştirmeyi
düşünmeye değer olabilir.
Maintenance costs Donanım bakım ve destek yazılım lisanslarının maliyetleri
nelerdir? Eski donanım, modern sistemlerden daha yüksek
bakım maliyetlerine sahip olabilir. Destek yazılımlarının yıllık
lisanslama maliyetleri yüksek olabilir.
Interoperability Sistemi diğer sistemlere bağlarken sorunlar var mı?
Örneğin, derleyiciler işletim sisteminin güncel sürümleriyle
birlikte kullanılabilir mi? Donanım emülasyonu gerekli mi?
Factor Questions
Understandability Mevcut sistemin kaynak kodunu anlamak ne kadar zor? Kullanılan
kontrol yapıları ne kadar karmaşık? Değişkenlerin işlevlerini
yansıtan anlamlı adları var mı?
Documentation Hangi sistem belgeleri mevcut? Dokümantasyon eksiksiz, tutarlı
ve güncel mi?
Data Sistem için açık bir veri modeli var mı? Veriler dosyalar arasında
ne ölçüde çoğaltılır? Sistem tarafından kullanılan veriler güncel ve
tutarlı mı?
Performance IUygulamanın performansı yeterli mi? Performans sorunlarının
sistem kullanıcıları üzerinde önemli bir etkisi var mı?
Factor Questions
Programming language Sistemi geliştirmek için kullanılan programlama dili için
modern derleyiciler mevcut mu? Programlama dili hala yeni
sistem geliştirme için kullanılıyor mu?
Configuration Sistemin tüm bölümlerinin tüm sürümleri bir yapılandırma
management yönetim sistemi tarafından yönetiliyor mu? Mevcut sistemde
kullanılan bileşenlerin sürümlerinin açık bir açıklaması var
mı?
Test data Sistem için test verileri mevcut mu? Sisteme yeni özellikler
eklendiğinde yapılan regresyon testlerinin kaydı var mı?
Personnel skills Uygulamayı sürdürme becerisine sahip kişiler var mı?
Sistemle ilgili tecrübesi olan kişiler var mı?
Arıza onarımları
Hataları/güvenlik açıklarını düzeltmek ve eksiklikleri
gidermek için bir sistemi değiştirmek, gereksinimlerini
karşılar.
çevresel adaptasyon
Yazılımı farklı bir işletim ortamına uyarlamak için bakım
Bir sistemi, ilk uygulamasından farklı bir ortamda
(bilgisayar, işletim sistemi vb.) çalışacak şekilde
değiştirmek.
İşlevsellik ekleme ve değiştirme
Yeni gereksinimleri karşılamak
30/10/2014
için sistemi değiştirmek.
Chapter 9 Software Evolution 40
Maintenance effort distribution
Azaltılmış risk
Yeni yazılım geliştirmede yüksek risk vardır. Geliştirme
sorunları, personel sorunları ve şartname sorunları
olabilir.
Düşük maliyet
Yeniden yapılandırmanın maliyeti genellikle yeni yazılım
geliştirmenin maliyetlerinden önemli ölçüde daha azdır.
Yinelenen kod
Aynı veya çok benzer kod, bir programın farklı yerlerinde
bulunabilir. Bu, gerektiğinde çağrılan tek bir yöntem veya
işlev olarak kaldırılabilir ve uygulanabilir.
Uzun yöntemler
Bir yöntem çok uzunsa, birkaç kısa yöntem olarak
yeniden tasarlanmalıdır.
Anahtar (durum) ifadeleri
Bunlar genellikle, anahtarın bir değerin türüne bağlı
olduğu çoğaltmayı içerir. Switch ifadeleri bir programın
etrafına dağılmış olabilir. Nesne yönelimli dillerde, aynı
şeyi elde etmek için genellikle
30/10/2014
polimorfizmi
Chapter 9 Software Evolution 57
‘Bad smells’ in program code
Veri kümelenmesi
Veri kümeleri, aynı veri öğeleri grubu (sınıflardaki alanlar,
yöntemlerdeki parametreler) bir programda birkaç yerde
yeniden ortaya çıktığında ortaya çıkar. Bunlar genellikle
tüm verileri kapsayan bir nesneyle değiştirilebilir.
spekülatif genellik
Bu, geliştiriciler gelecekte gerekli olması durumunda bir
programa genelliği dahil ettiğinde ortaya çıkar. Bu
genellikle basitçe kaldırılabilir.