sistem analizi ve tasarımı

advertisement
YAZILIM GELİŞTİRME VE TEST ETME
YAZILIMIN GELİŞTİRİLMESİ VE
TEST EDİLMESİ
 Uygun analiz ve tasarımlar gerçekleştikten sonra,
sistemin kullanacağı yazılımın geliştirilmesine geçilir.
 Bu aşama bir çok etkeni göz önüne alarak ve yazılım
geliştirme ilkesine uyularak gerçekleştirilir.
 Geliştirilen yazılımın sistem için geçerli, güvenli ve
verimli bir yazılım olup olmadığının kontrolü
gerekmektedir. Bu durum ise yazılımın test edilmesi
ile sağlanabilmektedir.
YAZILIMIN TASARIMI
 Bu aşamada çok detaylı planlamalar yapılması
zorunludur. Parasal ve zamansal maliyet hesaplamaları
göz önünde bulundurularak sistem gereksinimlerine
uygun bir yazılım için bu planlama ve tasarım oldukça
önemlidir.
 Yazılım tasarımına yön veren bir çok etken
bulunmaktadır;
1. Yazılımın Doğru Çalışması
 Geliştirilecek olan yazılımın her türlü durumda
çalışabilecek ve doğru bir şekilde çalışabilecek bir
yazılım olması beklenir.
 Bu bağlamda yazılım geliştirme sürecinde yazılım
sürekli ve çok değişik testlerle sınanmalıdır.
2. Yazılımın Gereksinimleri Karşılaması
 Yazılım gereksinimlerinin karşılandığından emin
olmak için tasarımlar iyi incelenmeli ve detaylı bir
yazılım geliştirme süreci gerçekleştirilerek bütün
gereksinimlerin karşılanmasıyle ilgili testler
gerçekleştirilmelidir.
3. Veri ve Zaman Açısından Uygunluk
 Yazılımın veri üzerindeki işlemleri uygun bir şekilde
ve kabul edilir bir zaman diliminde gerçekleştirebiliyor
olması gerekmektedir.
 Verilerin uygun güvenlik sınırları içerisinde tutulması
da yazılımın görevlerinden bir diğeridir.
 İşlemleri gerçekleştirirken belli bir süre harcanır. Bu
sürenin çok uzun olması sistem işleyişini yavaşlatır ve
kullanıcılar yazılımdan memnun kalmazlar.
4. Yazılımın Geliştirilebilir Olması
 Gün geçtikçe bilişim alanında yenilikler ve değişimler
meydana gelmektedir. Sistemler de bu yeniliklere
uyum sağlayabilmelidir.
 Bir sistem için yazılım geliştirilirken değişim etkeni
göz önünde bulundurulmalı ve yazılımın değişime
uygun olarak geliştirilmelidir. Yazılım yeniliklere açık
olmalıdır.
5. Kullanım Kolaylığı
 Bir yazılımı iyi bir yazılım yapan en büyük ve en etkili
etken müşteri memnuniyetidir. Yani müşterilerin
sistemin tüm olanaklarına kolaylıkla ulaşması ve
kullanması.
 Bu yüzden yazılımcılar, yazılım geliştirme sürecinde,
sürekli kullanıcılarla iletişim ve etkileşim kurarak
yazılımın kullanım kolaylığını üst seviyede tutması
gerekmektedir.
6. Test Etme ve Yaşama Geçirilme
Kolaylığı
 Sistemin yaşamına geçirilecek yazılım için
kullanıcıların bilgilendirilmeleri ve yazılımı
kullanabilecek duruma gelmeleri gerekmektedir.
 Yazılım bu ilkelere uygun geliştirilmemişse bu süreç
uzun ve zor bir sürece dönüşür, ve dolayısı ile sistemin
geçiş sürecinin yavaşlamasına sebep olur.
 Bu yüzden kullanıcılarla sürekli iletişim ve bilgi
paylaşımı içinde olunmalıdır.
7. Verimli Kaynak Kullanımı
 Birçok durumda kaynakların verimli kullanımı,
kullanılan donanıma göre değişmektedir. Bazı
sistemlerde veri için ayrılan yer büyük fakat veri
işlemleri için kullanılan birim özellikleri düşük
olabilmektedir, bazı durumlarda ise tam tersidir.
 Veri için ayrılan yer ve harcanan zamanın uygun bir
şekilde dengelenmesi gerekmektedir.
DOĞRULAMA VE ONAYLAMA
 Yazılım geliştirme sürecinin başlangıcında bir takim
sözleşmeler yapılmaktadır. Bu sözleşmeler yazılımı
isteyen firma ile yazılımı geliştiren firma arasında
yapılmaktadır.
 Bu sözleşmelerin kapsamı, sistemin gereksinim ile
isteklerine ve gereken geliştirme işlemleri ile ilgilidir.
 Yazılım geliştirme sürecinin başlangıcında yapılan
sözleşmelere Doğrulama (Verification)
denmektedir.
DOĞRULAMA VE ONAYLAMA
 Doğrulama sözleşmelerine benzer sözleşmeler yazılım
geliştirme sürecinde veya sürecin sonunda da
yapılabilmektedir.
 Bu sözleşmelerin amacı yapılan işlerin doğruluğunun
kabul gördüğünü belgelemektir. Bu sözleşmelerin
yapılması genellikle yazılım geliştirici firma tarafından
istenir. Geliştirilen yazılımın istenen özelliklerde
geliştirilip geliştirilmediği denetlenebilmektedir.
 Bu tür sözleşmelere Onaylama (Validation) adı
verilmektedir.
YAZILIM GELİŞTİRME STRATEJİLERİ
 Kullanılacak olan strateji, yazılım firmasının
yaklaşımına, sistem gereksinimlerine ve yazılımın
özelliklerine göre değişebilmektedir. Diğer taraftan
yazılım sektöründe en büyük etken yazılımcıların
yaklaşımıdır.
 Yazılım sürecinin nasıl gerçekleştiği, ne kadar
sürdüğü, elde edilen yazılımın niteliği kullanılan
stratejiden doğrudan etkilenmektedir.
YAZILIM GELİŞTİRME STRATEJİLERİ
 Yazılım geliştirmede kullanılan üç temel strateji
bulunmaktadır;
 Yukarıdan-Aşağıya (Top-Down)
 Aşağıdan-Yukarıya (Bottom-Up)
 Merkezden Dışa (Middle-Out)
 şeklinde adlandırılabilir.
YAZILIM GELİŞTİRME STRATEJİLERİ
Yukarıdan
Aşağıya
Merkezden Dışa
Aşağıdan Yukarıya
1. Yukarıdan Aşağıya Yazılım Geliştirme
 Bu stratejiye göre başlangıçta çözülmesi gereken
problem (geliştirilecek yazılım) bir bütün olarak ele
alınır. Daha sonra bu bütün bölüneceği birden fazla alt
probleme bölünür.
 Bu bölümlerden her biri kendi başına kolaylıkla
çözülebilecek kadar alt ve küçük bölümlere ayrılana
kadar yukarıdan aşağıya hareket devam eder.
1. Yukarıdan Aşağıya Yazılım Geliştirme
 İlk ürünü olarak yazılımın arayüzü oluşturulmuş olur,
hiç bir işlem bulunmamaktadır.
 İlerleyen aşamalarda arayüz üzerinden hareketle,
bütün daha küçük parçalar durumunda düşünülür,
fonksiyonlar ve prosedürler işlevsel olabilecek duruma
gelirler. En sonunda yazılımın tamamı işlevsel duruma
gelir ve geliştirilmiş olur.
 Yazılımın içinde bütünlük ve tutarlılığın sağlanması bu
stratejinin üstünlüklerindenken, bir bütün olarak
projenin değerlendirilmesi büyük, karmaşık ve çok
yönlü olabilmektedir.
2. Aşağıdan-Yukarıya Yazılım Geliştirme
 Bu stratejiye göre ilk önce en küçük ve en alt düzeyde
yer alan işlemlerin gerçekleştirilmesi gerekmektedir.
Prosedürler ve fonksiyonların geliştirilmesi ile
bunların bir arada kullanılabilecekleri bir üst
düzeydeki yazılım bölümleri oluşturulur ve en
sonunda da yazılımın tamamı geliştirilmiş olur.
 Yazılım bütün işlevselliği ile tanımlandıktan sonra
arayüz geliştirme işlemleri yapılır.
 Bu stratejinin üstünlüğü yazılımın kendi içinde daha
sağlam bir yapıda, birbirinden bağımsız ve güvenilir
yazılım parçacıklarından oluşmasıdır. Fakat daha uzun
zamanda geliştirilirler.
3.Merkezden Dışa Yazılım Geliştirme
 Bu yaklaşım ilk iki stratejinin üstünlerinden
yararlanmaktadır.
 Yazılım bir bütün olarak değerlendirilir.
 Geliştirilme aşamasında ise parçacıklar olarak
düşünülür.
 Ve geliştirmeye de en alt düzeyden başlanmaz.
YAZILIMI TEST ETME
 Yazılımın test edilmesi aşaması, doğrulama ve
onaylama işlemlerinin gerçeklesmesine yön veren
etkenler olarak düşünülebilir.
 Geliştirilen yazılımın, sistem için doğru bir yazılım
olup olmadığı ve bu yazılımın kabul edilebilirliği
yazılım testleri ile ortaya çıkmaktadır.
YAZILIMI TEST ETME
 Yazılımlar üzerinde gerçeklestirilebilecek birçok test
bulunmaktadır. Günümüzde bu testlerin her biri için
ayrıca geliştirilmiş test yazılımları da
bulunabilmektedir.
 Hangi testlerin hangi yazılıma ve hangi test araçları ile
yapilabileceği yazılımın niteliklerine ve
kullanılabilecek test yazılımının özelliklerine göre
değişebilmektedir.
 Geliştirilen bütün yazılımlar için yapılabilecek temel
testler aşağıda yer almaktadır.
Birim Testleri (Unit Testing)
 Kaynak kodlarındaki küçük birimlerin doğrulama testi
olarak nitelendirilebilir. Örneğin bir fonksiyonun test
edilmesi. Test türlerinin en düşük kapsamlı olanıdır.
 Java ve .Net kendi birim testleri olan yazılım
ortamlarına örnektir.
 Birim testleri sadece küçük bir parçanın üzerinde
gerçekleştirildiklerinden yazılımın tamamı açısından
pek belirleyici değillerdir.
Bütünlük Testleri (Integration Testing)
 Bütünlük testleri yazılımın birleştirilmiş yazılım
parçaları üzerinde yapılan testlerdir. Bu parçaların
birleşiminin doğru işlevsellikte olup olmadığı
bütünlük testi ile ortaya çıkmaktadır.
İşlev Testleri (Function Testing)
 İşlevsel bölümler kendilerine uygun verileri alıp,
işleyip sonuç olarak uygun bir çıktı/bilgi üretmek
durumundadırlar.
 İşlev testleri yazılımın her işlevsel bölümünün işlevini
yerine getirip getirmediğinin test edilmesini sağlarlar.
 Bazı kaynaklarda işlev testlerine “Kara Kutu Testleri”
de denir.
İşlev Testleri (Function Testing)
Girdi
Çıktı
Beklenen
Sistem Testleri (System Testing)
 Sistem testleri yapısal açıdan işlev testleri ile benzerlik
göstermektedirler ancak sistem testlerinde bu durum
yazılımın tamamı için geçerlidir.
 Sistemin gereksinimlerinin karşılanıp karşılanmadığı
test edilir. Yazılım sisteme uygun ve eksiksiz
geliştirilmiş ise testin sonucu olumlu olur, aksi ise
olumsuz olur.
Sistem Testleri (System Testing)
GEREKSINIM
ANALIZ
TASARIM
UYGULAMA
SISTEM TESTI
Test
Sonucu
Kullanıcı Onayı Testleri (User
Acceptance Testing)
 Bu teste kullanıcı testi de denebilir. Kullanıcı
tarafından kabul görmesi, özel sektörde istenen bir
özelliktir.
 İlk önce yazılım yüklenir ve kullanıcının kullanımına
sunulur. Daha sonra test planı yapılır.
 Test planından sonra test tasarımı ve test için
kullanılacak araç ve ortamlar hazırlanır ve test
işlemleri gerçekleştirilir.
Kullanıcı Onayı Testleri (User
Acceptance Testing)
 Daha sonra kullanıcıdan gelen test sonuçları
değerlendirilir. Kullanıcıların testlerden ve alınan
sonuçlardan tatmin olması kullanıcı onay testinin
sonucunun başarılı olduğunu gösterir.
Download