YÜM, etkin
ve verimli bir şekilde, doğru, tutarlı bir yazılım ürünü elde etmek için tüm
yazılım mühendisliği aktiviteleri boyunca devam eden tutarlı bir mühendislik
sürecidir.
1. Yazılım Ürün Mühendisliği (YÜM)
YÜM, uygun araçları ve metodları kullanarak, projenin
yazılım sürecinde yazılım ürünü üretmek için yürütülen mühendislik görevlerini
içerir. Ayrıca;
yazılım sistemine atanmış olan sistem
gereksinimlerini incelemeyi, |
yazılım gereksinimleri geliştirmeyi,
yazılım mimarisi gelişirmeyi,
|
yazılım tasarlamayı,
|
yazılımın kodlamasını,
|
yazılım bileşenlerini birleştirmeyi ,
|
yazılım doğrulama ve sınama süreçlerini
analiz etmeyi içerir. |
Yazılım mühendisliği görevleri için belgeleme gerekir
(örneğin yazılım gereksinimler belgesi, yazılım tasarım belgesi, test planları,
test yordamları). Bu belgeleme işlerinde de YÜM’nin önemi vardır.
2. Yazılım Ürün Mühendisliği
Hedefleri
-
Yazılım ürünleri ölçütlerini pratiğe dökmek.
-
Maliyet, zaman çizelgesi, fonksiyonellik, kalite
arasındaki ilişkiyi kurmak ve bu 4’lü anlayışı geliştirmek.
-
Proje/program yönetimi, sistem mühendisliği, süreç
geliştirme ile ilgili bir ölçümleme yaklaşımı getirmek ve devam eden yazılım
ölçütlerini kontrol etmek.
3. Yazılım Ürün Mühendisliği
Tanımları
Yazılım Ürünü Mühendisliği: |
Bir yazılım projesinde, müşterinin
ihtiyaçlarını karşılayacak şekilde ürün ortaya koymak için yapılan yazılım
mühendisliği aktiviteleridir. |
Müşteri: |
Müşteri, yazılım ürünüyle ilişkisi olan
herhangi bir kişi olabilir.(bir şahıs ya da şirket) Müşterileri şu şekilde
sınıflara ayırabiliriz: Kullanıcılar, Geliştiriciler, Bakım takımı. |
Yazılım Fonksiyonelliği:
|
Sistem gereksinimlerinde müşteri
tarafından belirtilmiş olan ihtiyaçların yazılım sistemi tarafından
karşılanabilme yeteneğidir. |
Yazılım Kalitesi:
|
Kalite, yazılım ürününün gereksinimleri
karşılayabilme derecesidir. Ayrıca müşterinin isteklerine cevap verebilme oranı
olarak da düşünebiliriz. |
4. Yazılım Ürünü Mühendisliği Kapsamı
-
Yazılım ürünü mühendisliği çalışmaları sırasında, tüm
çaba, merak ve odaklanma yazılım ürünü fonskiyonelliği ve kalitesi üzerine
olmalıdır.
-
Tanımlanmış olan ölçütler, tek bir proje için
fonksiyonelliği ve kaliteyi hedef almalıdır. Içiçe geçmiş çoklu projeler hedef
alınmamalıdır.
-
Yazılım ürünü mühendisliği sorunları üç değişik
müşteri perspektiften bakarak ele almalıdır: Kullanıcı, geliştirici ve bakımcı.
-
Sadece yazılım mühendisliği alanına giren konularda
yazılım ürünü mühendisliği çalışması yapılmalıdır. Eğitim ile ilgili
aktiviteler ve materyaller bu kapsama girmemektedir.
-
Ürün fonksiyonelliği ve kalitesi ile ilgili ölçütleri
belirlerken, süreçler ve ürün ile ilgili raporlar dikkate alınmalıdır.
-
Çalışmalar, müşterinin fonksiyonelliği ve kaliteyi
tahminleyebileceği konuları da içine almalıdır.
-
Çalışmalar, ürünü iyileştirmede yardımı olabilecek
etkileri de incelemelidir.
-
Yazılım ürünü mühendisliği aktiviteleri içsel ve
dışsal özellikleri de içermelidir.
-
Çalışmalar, kullanıcı beklentileri göz önünde
tutularak tamamlanmışlık derecesini de ölçmelidir. Bu da müşteri ihtiyaçlarını
anlama ve belgemede doğruluk ile sağlanabilir.
5. Yazılım Ürün Mühendisliği
Temelleri
-
Tüm ölçütler sorunlara yönelik olmalıdır.
-
Ölçütler tek başlarına karar vermeye yeterli
olmamalıdır. Genelde, karar aşamasında birden çok ölçüt birarada
değerlendirilerek yazılım ürününün kapsamlı bir karakteristiği çıkarılmalıdır.
-
Ürün değerlendirmede, yazılım ürünü mühendisliği
ölçütleri 2 amaca hizmet eder:
-
Yazılım ürününün kalitesini ölçme ve en sonunda elde
edilecek olan ürünün kalitesini tahminlemek. Bu ölçme ve tahminleme işlemleri
süreçlere ve ürün bileşenlerine uygulanmalıdır.
-
Ölçütler pozitif ve negatif sonuçları ortaya
çıkarmalıdır.
-
Ölçütler tüm müşterileri desteklemelidir.
-
Ölçütler, ürünün fonksiyneliğini ve kalitesini
incelemeye yönelik olmalıdır.
Şekil – 1 Yazılım Ürün Geliştirme Stratejisi
6. SEI – CMM Seviye 3 Kapsamında
Yazılım Ürün Mühendisliği Nasıl Yapılmalıdır?
Bu bölümde, yazılım ürün mühendisliğinin SEI-CMM
üçüncü seviyede nasıl düzgün, kontrollü bir şekilde ele alınacağı hakkında
bilgi verilecektir. Aşağıdaki işlemler “adım adım” ilerleme şeklinde
anlatılmıştır.
6.1. Hedefler
-
Yazılım mühendisliği görevleri belirleme, bir araya
getirme ve yazılım üretmek üzere gerçekleştirmek.
-
Yazılım ürünlerininin birbirileriyle uyumlu ve
tutarlı olmasını sağlamak.
Yapılan tüm işler, yukarıdaki iki hedef doğrultusunda
yapılmalıdır.
6.2. Yapılacak İşler Hakkında
Proje, gereken yazılım mühendisliği aktivitelerini
yapabilmek için yazılı bir anlaşmayı baz alır.Bu belge aşağıdakiler
belirlenmiştir:
-
Yazılım mühendisliği görevleri, proje yazılım
sürecine uyumlu bir şekilde yapılmalıdır.
-
Yazılım ürünleri yaratmak için uygun araçlar ve
metodlar kullanılmalıdır.
-
Yazılım planları, görevleri, ürünleri yazılıma
atanmış olan sistem gereksinimleri ile uygunluk göstermelidir.
6.3. Yapılması Gerekenler
1. Yazılım mühendisliği görevlerini yerine
getirebilmek için gerekli olan yeterli kaynağın ve bütçenin bulunması;
-
Yazılım takımında bireyler aşağıdaki listedeki
yazılım mühendislği görevlerini yapmalıdırlar:
i. Yazılım
gereksinimleri analizi
ii.Yazılım
tasarımı
iii.
Kodlama
iv.Test etme
v.Yazılım
bakımı
-
Yazılım mühendisliği görevlerini destekleyecek
araçlar belirlenmeli ve kullanıma sunulmalıdır.
Genel Araç Örnekleri:
i. İş istasyonları
ii.Veritabanı yönetim sistemleri
iii.
Çevirim-içi yardımları
iv. Grafik
araçları
v. İnteraktif belgeleme araçları
vi. Ofis
araçları (word, excel vs…)
Yazılım
Mühendisliği Araç Örnekleri:
i.
Gereksinim takibi araçları
ii. Belirtim araçları
iii.
Prototip oluşturma araçları
iv. Simulasyon araçları
v.
Modelleme araçları
Yazılım Kodlama Araç Örnekleri:
i.
Editörler
ii. Derleyiciler
iii. Çıktı
makineleri
Yazılım Test Araç Örnekleri:
i. Test
yönetim araçları
ii. Test yaratıcılar
iii. Test
profili hazırlayıcılar
iv. Test analiz araçları
2. Yazılım mühendisliği ekibinin, gerekli teknik
görevleri yapabilmesi için gerekli olan eğitimin sağlanması
Yazılım mühendisliği ekibi, uygulama alanı ile ilgili
eğitim almalıdır çünkü uygulama yapılacak olan alanı (bankacılık, tıp, vs…) tam
olarak kavramak zorundadırlar.
Yazılım
Gereksinimleri Analizi İçin Eğitim Örnekleri:
i. Yazılım gereksinimleri analizi prensipleri, temelleri
ii. Bakımı
yapılan yazılımın var olan gereksinimlerini inceleme
iii. Yazılım gereksinimleri bulabilmek için son kullanıcılar ile görüşme yapma
yeteneğinin gelişimi
iv.
Yazılım gereksinimleri analizi için projede seçilmiş olan araçların
kullanımını, metodları, standartları öğrenim
Yazılım
Tasarımı İçin Eğitim Örnekleri:
i. Tasarım
kapsamları
ii. Var olan yazılım tasarımını inceleme
iii.
Yazılım tasarımında kullanılacak olan araç, metot, standardları öğrenme
Kodlama İçin Eğitim Örnekleri:
i. Seçilen
programlama dilleri eğitimi
ii. Var
olan yazılımların kodlarını inceleme
iii.
Kodlamada kullanılacak olan araç, metot, standardları öğrenme
iv. Birim testi tekniklerini öğrenme
Yazılım
Testi İçin Eğitim Örnekleri:
i.
Doğrulama metotları
ii. Test
planlama
iii. Testte kullanılacak olan araç, metot, standardları öğrenim
iv.
Tamamlanma kriterlerini öğrenim
3. Yazılım mühendsiliği ekibi için, ilgili yazılım
mühendisliği konuları hakkında oryantasyon yapılması.
Örnek
Yazılım Mühendsiliği Konuları:
i. Yazılım gereksinimleri analizi
ii.
Yazılım tasarımı
iii. Test
iv.
Kodlama
v. Yazılım yapılanışı yönetimi
vi.
Yazılım kalite güvencesi 4. Yazılım
yöneticisi ve diğre proje yöneticileri için yazılım projesinin teknik
özellikleri hakkında oryantasyona yapılması
Örnek
Oryantasyonlar:
i. Yazılım
mühendisliği metotları ve araçları
ii.
Uygulama alanı, sahası
iii. Yazılımla ilgili ürünler
iv.
Seçilen yazılım metodu ve araçları ile projenin nasıl yönetileceği hakkında
bilgi
6.4. Yapılan Aktiviteler
1. Projenin önceden belirlenmiş olan yazılım sürecine
yazılım mühendisliği metotları ve araçları eklenir.
-
Yazılım mühendisliği görevleri, projenin belirlenmiş
olan yazılım sürecine göre eklenir.
-
Projede kullanılması yararlı olacak olan metodlar ve
araçlar seçilir.
Not: Aday metotlar, kurumun standardlarına uygunluk, projenin
tanımlanmış yazılım sürecine uygunluk, varolan yetenekler, eğitim olanakları,
gereksinimler, kullanım kolaylığı, destek hizmetleri açılarından
değerlendirilmelidir
-
Seçimdeki kriterler belgenir.
2. Projeye uygun olan yazılım yapılanışı yönetimi
modelleri seçilir ve kullanılır.
Örnek Yazılım Yapılanış Yönetimi Modelleri:
i. Seçerek
alma modeli
ii. Bileşim modelleri
iii. İşlem
modelleri
iv. Değişim modelleri
-
Yazılım geliştirmede kullanılan araçlar yazılım
yapılanış yönetimi tarafından kontrol edilir.
3. Yazılım gereksinimleri, yazılıma atanmış olan
gereksinimlerin sistematik olarak düzenli bir şekilde analiz edilmesiyle
geliştirilir, belgelenir ve doğrulanır.
-
Yazılım gereksinimlerini geliştiren bireyler,
gereksinimleri analiz ederek gereksinimlerin gerçekten yazılım gereksinimleri
olup olmadıklarını kontrol ederler.
Yazılım
gereksinimleri, yazılım fonksiyonlarını, performansı, donanım ve diğer
sitemlerle olan arayüzleri incelerler.
-
Yazılım gereksinimlerini belirleyebilmek için etkin
metotlar kullanılır.
Örnek
Gereksinim Analizi metotları:
i.
Fonskiyonel ayrıştırma
ii.
Nesneye yönelik ayrıştırma
iii. Simulasyonlar
iv.
Modellemeler
v. Prototip oluşturma
vi.
Senaryo geliştirme
-
Gereksinimlerin analizi sürecinin sonucları, proje
standardlarına uygun bir şekilde belgelenir.
-
Yazılım gereksinimlerinin projeye uygun olup
olmadıkları, gerçekleştirilmelerinin mümkün olup olmadıkları, birbirleriyle
tutarlılıkları, tamamlanmışlıkları analiz edilir.
Not: yazılım gereksinimleri ile ilgili problemler sistem
gereksinimlerinden sorumlu takım tarafından belirlenir ve gerekli değişiklikler
gereksinimlere uygulanır.
-
Yazılım gereksinimleri belgelenir.
-
Yazılım test ve doğrulama ekibi gereksinimleri
inceleyerek test edilebilir olup olmadıklarını inceler.
-
Her yazılım gereksinimi için doğrulama ve test
işlemlerinin yapılabilirliği belirlenir ve belgelenir.
Örnek
Doğrulama Metodları:
i. Demo oluşturma
ii. Sistem
testi
iii. Kabul edilirlik testi
iv. Analiz
v. İnceleme
-
Yazılım gereksinimleri belgeleri, tamamlanmış olarak
kabul edilmeden önce son bir kez gözden geçirilir.
Gözden
Geçirme İşlemine Katılanlar:
i. Proje
yöneticisi
ii. Sistem mühendisliği yöneticisi
iii. Proje
yazılım yöneticisi
iv. Yazılım test yöneticisi
-
Yazılım gereksinimleri belgesi kabul edilir.
-
Yazılım gereksinimleri belgesi son kullanıcılar ve
müşteri tarafından gözden geçirilir.
-
Yazılım gereksinimleri belgesi yazılım yapılanışı
yönetiminin kontrolüne geçirilir.
-
Gereksinimler değişince, yazılım gereksinimleri
belgesi de gerekli şekilde değiştirilir.
4. Projenin tanımlanmış yazılım süreci göz önünde
tutularak yazılım tasarımı geliştirilir, belgenir, doğrulama yapılır. Yazılım
Tasarımı aşağıdakileri içerir:
- Tasarım
kriterleri geliştirilir ve gözden geçirilir. Bu kriterler:
-
Doğrulanabilirlik
-
Yapım kolaylığı
-
Basitlik
-
Planlama kolaylığı’dır.
- Tasarım
ile ilgilenenler, yazılım gereksinimlerini gözden geçirerek yazılım tasarımını
etkileyen konular incelenir.
- Uygun
olduğu durumlarda, uygulama standardları kullanılır. Bu standardlar:
-
İşletim sistemi arayüzü standardları
-
İnsan-bilgisayar arayüzleri standardları
-
Ağ arayüzü standardları’dır.
- Yazılım tasarımı için etkin yöntemler kullanılır. Bu yöntemler:
-
Prototip oluşturma
-
Yapısal modeller
-
Tasarım yeniden kullanılabilirliği
-
Nesneye yönelik tasarım
-
Kritik sistem analizi’dir.
- Yazılım mimarisi, yazılım yaşam döngüsü kısıtlamaları ve kullanılan teknoloji
göz önüne alınarak belirlenir. (Yazılım mimarisi iyi tanımlanmış arayüzlerle,
üst seviye bir çerçeve anlamına gelmektedir.)
- Yazılım
mimarisi, yazılımı etkileyen mimari konularının tanımlanıp çözümlendiğini
kontrol etmek için gözden geçirilir.
- Yazılım
mimarisi üzerine yazılımın detaylı tasarımı yaratılır.
- Yazılım tasarımı belgelenir.
-
Yazılım tasarımı belgesi; yazılım bileşenlerini,
bileşenler arasındaki arayüzleri, diğer yazılım sistemleriyle olan arayüzleri
kapsar.
- Yazılım
tasarımı dökümanının yönetimi, yazılım yapılanış yönetimi kontrolüne verilir.
-
Gereksinimler değiştiği takdirde, yazılım tasarımı da buna uygun olarak
değiştirilir. 5. Projenin tanımlı yazılım
sürecine bağlı kalınarak, yazılım gereksinimlerinin ve tasarımının
gerçekleştirilmesi için yazılım kodları geliştirilir, bakımı yapılır,
belgelenir, doğrulanır.
-
Kodlama ile uğraşanlar, yazılım tasarımını ve
gereksinimlerini gözden geçirerek kodlamayı ilgilendiren konuların tanımlanıp
çözüldüğünü garantilerler.
-
Kodlamada etkin kodlama yöntemleri uygulanır.
Örnek
yöntemler:
i. Yapısal kodlama
ii.
Yeniden kullanılabilir kod.
-
Kodlama, müşteri istekleri, kritiklik, zorluk gibi
kriterler dikkate alınarak oluşturulan bir plan çerçevesinde yürütülür.
-
Kod, yazılım yapılanış yönetimi kontrolüne verilir.
-
Yazılım gereksinimleri ve tasarımı değiştiği takdirde
gerekli değişiklikler yapılır.
6. Projenin tanımlanmış yazılım sürecine göre test
yapılır.
-
Müşteri ve son kullanıcılar ile birlikte test
kriterleri belirlenir.
-
Yazılımı test etmek için etkin yöntemler kullanılır.
-
Testlerin yeterliliği, testlerin uygulanma seviyesine
göre belirlenir.
Örnek
seviyeler:
i. Birim
testi
ii.
Birleştirme testi
iii. Sistem
testi
iv.
Kabuledilirlik testi
Ayrıca
fonskyionel, yapısal, istatistiksel testler de önemlidir.
-
Her test seviyesi için test hazırlık kriterleri
belirlenir ve kullanılır.
Örnek
kriterler:
i.
Birleştirme testinden önce birim testinin sağlıklı bir şekilde bitmiş olması
ii. Sistem
testine başlamadan önce birleştirme testinin sağlıklı bir şekilde bitmesi
iii. Kabul
edilirlik testinden önce testin hazır olup olmadığının kontrol edilmesi
-
Yazılımın veya ortamın değişmesi durumunda regresyon
testleri yapılır.
-
Test planı, süreçleri kullanılmadan önce gözden
geçirilir.
-
Test planları, süreçleri kontrol edilir ve yönetilir.
Kontrol etmek ve yönetmek, programın belirli bir zamandaki sürümünün biliniyor
olması, değişikliklerin kontrollü yapılması anlamına gelmektedir.
-
Yazılım gereksinimleri, tasarımı, kodlama değiştiği
zamanlarda test planları, süreçleri de buna bağlı olarak değiştirilir.
7. Projenin tanımlanmış yazılım sürecine göre
birleştirme testleri yapılır.
-
Yazılım geliştirme planına bağlı olarak birleştirme
testleri planları belgelenir.
-
Yazılım gereksinimleri, tasarımı, kabul edilirlik
testlerinden sorumlu kişiler, birleştirme testlerini, süreçlerini gözden
geçirir.
-
Yazılım birleştirme testleri yazılım gereksinimleri
dökümanına bağlı kalarak gerçekleştirilir.
8. Yazılımın gereksinimleri karşılayıp karşılamadığını
görmek için sistem testleri ve kabul edilirlik testleri yapılır.Sistem
testleri, gereksinimlerin ne kadar karşılandığını ortaya koyar.Kabul edilirlik
testleri ise, müşteri ve son kullanıcıya yazılımın tüm gereksinimleri
karşıladığını göstermek için yapılır.
-
Yazılımı test etmek için gerekli kaynaklar, önceden
yapılır.
Örnek
hazırlıklar:
i. Test
dökümanı hazırlama
ii. Test
kaynaklarını planlama
iii. Test
geliştirme
iv.
Simülator geliştirme
-
Sistem testi ve kabuledilirlik testi, test planı ile
belgelenir ve son kullanıcılar tarafından gözden geçirilir.
Test
planının içeriği:
i. Genel
test yaklaşımı
ii.
Müşterinin ve son kullanıcıların sorumlulukları
iii. Test
özellikleri, aletleri, test destek gereksinimleri
iv. Kabul
edilirlik kriterleri
-
Test süreçleri, yazılım geliştiricilerinden bağımsız
bir grup tarafından hazırlanır.
-
Hazırlanan test süreçleri, müşteriler, son
kullanıcılar tarafından gözden geçirilir ve onaylanır.
-
Test sırasında karşılaşılan problemler raporlanır.
-
Test sonuçları da yazılımın gereksinimleri karşılayıp
karşılayamadığını bildirecek şekilde raporlanır.
-
Test sonuçları yönetimi yapılır.
9. Yazılımın bakımının yapılması ve işletilmesi için
gerekli dökümanlar, yazılımın proje yaşam döngüsü içinde yaratılır.
-
Dökümanları geliştirmek için uygun olan araçlar
kullanılır.
Örnek
araçlar:
i. Kelime
işlemcileri
ii. Döküman
tekrar kullanılabilirliğini sağlayan raporlar
-
Raporlama uzmanları, döükmanın gelişmesi, bakımı,
planlanması gibi evrelerde aktif olarak yer alırlar.
-
Dökümanın ilk versiyonları, proje yaşam döngüsü
içinde çok erken bir zamanda yaratılır.
Dökümanın
bölümleri olarak aşağıdakileri sayabiliriz:
i. Eğitim dökümanları
ii.
Kullanım klavuzu
iii.
Operatör klavuzu
iv. Bakım
klavuzu
-
Dökümanın son hali, kabul edilebilirlik testi ile
karşılaştırılır.
-
Döküman gözden geçirilir.
-
Döküman kontrol edilir ve yönetilir.
-
Son döküman, son kullanıcılar ve müşteriler
tarafından onaylanır.
10. Test sonucu elde edilen veriler incelnir, analiz
edilir ve hatalar bulunur.
Analiz
edilen veriler:
i. Hata
tanımlamaları
ii. Hata
kategorileri
iii.
Hatanın ciddiyeti
iv. Hata
içeren birim
v Hatadan
etkilenen birimler
vi. Hatanın
bulunduğu aktiviteler
vii.
Hatanın karşılaşıldığı senaryo
viii. Hata
durumundaki gerçek sonuç ve beklenen sonuç
11. Yazılım planlarını, süreç açıklamalarını,
gereksinimleri, tasarımı, test planlarını, test yordamlarını içine alan yazılım
ürünü için, tutarlılık sağlanır.
-
Yazılım ürününün dökümanları yaratılır.
-
Yazılım gereksinimleri, tasarımı, kodlaması, testleri
düzenli bir şekilde takip edilir, kontrol edilir.
-
Yazılı ürünlerinde, planlarında, süreç tanımlarında,
aktivitelerinde olan değişiklikler analiz edilir.
i.
Değişklik yapılmadan önce, değişikliğin etkisi inelenir.
ii.
Gereksinimlerin değiştirilmesi istendiğinde, herhangi bir yazılım değişikliğine
gidilmeden önce, gereksinimlerin değişiklikleri onaylanır.
iii.
Yazılım ürünlerine, planlarına ve aktivitelerine yapılan değişiklikler koordine
edilir.
iv.
Değişiklikten ekilenen gruplarla iletişime girilir.
Etkilenmesi olası gruplar:
- yazılım mühendisliği grubu
- yazılım tahminleme grubu
- yazılım test grubu
- yazılım kalite güvencesi grubu
- yazılım yapılanış yönetimi grubu
6.5. Ölçümleme & Analiz
1. Yazılım ürünün fonksiyonelliğini ve kalitesini
ölçmek için ölçümlemeler yapılır.
Örnek ölçümler:
i. Yazılım ürünündeki hataların
sayısı, ciddiyeti, tipleri
ii. Güvenlik, sistem yapılanışı,
performans, güvenilirlik ölçümleri
2. Yazılım ürünü mühendislik aktivitelerini ölçmek
için ölçümlemeler yapılır.
Örnek ölçümler:
i. Her gereksinimin proje yaşam
döngüsündeki durumu
ii. Ciddiyetine ve sürdüğü süreye
göre problem raporları incelemesi
iii. Gereksinimlerdeki değişiklik
aktiviteleri
vi. Önerilen değişiklik sayısı
v. Değişiklikleri gerçekleştirmek
için gerekli maliyet
6.6. Gerçekleştirim-Kodlama
Doğrulaması
1. Üst yönetim tarafından periyodik olarak yazılım
ürün mühendisliği aktiviteleri denetlenir.
2. Proje yöneticisi tarafından periyodik olarak
yazılım ürün mühendisliği aktiviteleri denetlenir.
Bu denetlemeler, aşağıdaki maddelerle test edilir:
i. Yazılım gereksinimlerinin
tamamlanmış, doğru, tutarlı, uygulanabilir, test edilebilir olduğu,
ii. Her yazılım mühendisliği görevinin tamamlanmışlık ve
hazır olma kriterlerine uygunluğu,
iii.Yazılım ürünlerinin belirlenen
standardlara ve gereksinimlere uygunluğu
iv.Gerekli testlerin yapıldığı
v.Yazılıma uygulanan kabul
edilirlik testlerinin önceden belirlenmiş plan ve yordamlara uygun olduğu
vi.Testlerin kabul edilirlik
kriterlerini sağladığı
vii.Testlerin yeterli olduğu
viii.Testlerin kaydedildiği ve
tamamlandığı
Yukarıdaki adımlardan geçildikten sonra, projemizin
standardlara ugyunluğundan söz edilebilir. Standardlara uygunluk için anlatılan
rehber, tabi ki mutlaka uygulanması gereken bir rehber değildir.
Farklı yöntemler ile, farklı bakış açıları ile de yazılım ürün mühendisliği
kapsamında CMM Seviye-3 kriterleri tanımlanabilir fakat yukarıda anlatılan
rehber, genelde kabul edilmiş ve uygulanmaktadır.
7. KAYNAKÇA
Practical
Software Measurement, A foundation for objective project management, PSM SPE
Workshop, Office of the Under Secretary of Defense, Acquisition and Technology
SSC SAN DIEGO POLICY FOR SOFTWARE PRODUCT
ENGINEERING, Version 1.1 - 10/9/97
Level 3 - Software Product Engineering, Software
Product Engineering a key process area for level 3: Defined, www.sei.org
Selected Key Practices,
http://www.dfki.de/fluids/References.html#Paulk:93b
www.stickyminds.com
Software Product Engineering Workshop 1999.pdf
Software Product Engineering Workshop 2000.pdf
http://www.dfki.de/fluids/Software_Quality_Assurance_Management.html
Makale:
Yazılım Ürün Mühendisliği (YÜM) Yazılım Mühendisliği Tanıl Ergin
|