| 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 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.
				| 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. |  
 
 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
			Yapılan tüm işler, yukarıdaki iki hedef doğrultusunda 
				yapılmalıdır.
				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. 
 
 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ı;
			i. Yazılım 
			gereksinimleri analizi
			        ii.Yazılım 
				tasarımı
				Yazılım takımında bireyler aşağıdaki listedeki 
					yazılım mühendislği görevlerini yapmalıdırlar: 
 iii. 
			Kodlama         
				iv.Test etme
 
 v.Yazılım 
			bakımı
 
			Genel Araç Örnekleri:        
				i. İş istasyonları
				Yazılım mühendisliği görevlerini destekleyecek 
					araçlar belirlenmeli ve kullanıma sunulmalıdır. 
 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.
 
 
			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
				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. 
			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:
				Seçimdeki kriterler belgenir. 
 i. Seçerek 
			alma modeli         
				ii. Bileşim modelleri
 
 iii. İşlem 
			modelleri         
				iv. Değişim modelleri
 
 
 
			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 geliştirmede kullanılan araçlar yazılım 
					yapılanış yönetimi tarafından kontrol edilir. 
			Yazılım 
				gereksinimleri, yazılım fonksiyonlarını, performansı, donanım ve diğer 
				sitemlerle olan arayüzleri incelerler.
				Yazılım gereksinimlerini geliştiren bireyler, 
					gereksinimleri analiz ederek gereksinimlerin gerçekten yazılım gereksinimleri 
					olup olmadıklarını kontrol ederler. 
 
 
			Örnek 
			Gereksinim Analizi metotları:
			        i. 
				Fonskiyonel ayrıştırma
				Yazılım gereksinimlerini belirleyebilmek için etkin 
					metotlar kullanılır. 
 ii. 
			Nesneye yönelik ayrıştırma         
				iii. Simulasyonlar
 
 iv. 
			Modellemeler         
				v. Prototip oluşturma
 
 vi. 
			Senaryo geliştirme
 
			Not: yazılım gereksinimleri ile ilgili problemler sistem 
				gereksinimlerinden sorumlu takım tarafından belirlenir ve gerekli değişiklikler 
				gereksinimlere uygulanır.
				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. 
 
 
			Örnek 
			Doğrulama Metodları:        
				i. Demo oluşturma
				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. 
 ii. Sistem 
			testi         
				iii. Kabul edilirlik testi
 
 iv. Analiz        
				v. İnceleme
 
 
 
			Gözden 
				Geçirme İşlemine Katılanlar:
				Yazılım gereksinimleri belgeleri, tamamlanmış olarak 
					kabul edilmeden önce son bir kez gözden geçirilir. 
 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
 
 
 
			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:
				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. 
 - Tasarım 
				kriterleri geliştirilir ve gözden geçirilir. Bu kriterler:
 
 
 
			- Tasarım 
				ile ilgilenenler, yazılım gereksinimlerini gözden geçirerek yazılım tasarımını 
				etkileyen konular incelenir.
				
					Doğrulanabilirlik
				
					Yapım kolaylığı
				
					Basitlik
				
					Planlama kolaylığı’dır. 
 - Uygun 
			olduğu durumlarda, uygulama standardları kullanılır. Bu standardlar:
 
			- Yazılım tasarımı için etkin yöntemler kullanılır. Bu yöntemler:
				
					İşletim sistemi arayüzü standardları
				
					İnsan-bilgisayar arayüzleri standardları
				
					Ağ arayüzü standardları’dır. 
			- 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.
				
					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 üzerine yazılımın detaylı tasarımı yaratılır.        
				- Yazılım tasarımı belgelenir.
 
 
 
			- Yazılım 
				tasarımı dökümanının yönetimi, yazılım yapılanış yönetimi kontrolüne verilir.
				
					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. 
 - 
			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.
 
 
 
			Örnek 
			yöntemler:        
				i. Yapısal kodlama
				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. 
			 
 ii. 
			Yeniden kullanılabilir kod.
 
			6. Projenin tanımlanmış yazılım sürecine göre test 
			yapılır.
				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. 
			Örnek 
			seviyeler:
			        i. Birim 
				testi
				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. 
 ii. 
				Birleştirme testi
 
 iii. Sistem 
				testi
 
 iv. 
			Kabuledilirlik testi
			        Ayrıca 
				fonskyionel, yapısal, istatistiksel testler de önemlidir.
 
 
 
			Örnek 
				kriterler:
				Her test seviyesi için test hazırlık kriterleri 
					belirlenir ve kullanılır. 
			 
 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
 
 
 
			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ı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. 
 
 
			7. Projenin tanımlanmış yazılım sürecine göre 
				birleştirme testleri yapılır.
				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. 
 
 
			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 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. 
 
 
			Örnek 
			hazırlıklar:
			        i. Test 
				dökümanı hazırlama
				Yazılımı test etmek için gerekli kaynaklar, önceden 
					yapılır. 
 ii. Test 
				kaynaklarını planlama
 
 iii. Test 
			geliştirme
			        iv. 
				Simülator geliştirme
 
 
 
			Test 
			planının içeriği:
			        i. Genel 
				test yaklaşımı
				Sistem testi ve kabuledilirlik testi, test planı ile 
					belgelenir ve son kullanıcılar tarafından gözden geçirilir. 
 ii. 
				Müşterinin ve son kullanıcıların sorumlulukları
 
 iii. Test 
				özellikleri, aletleri, test destek gereksinimleri
 
 iv. Kabul 
				edilirlik kriterleri
 
 
 
			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.
				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. 
 
 
			Örnek 
			araçlar:
			        i. Kelime 
				işlemcileri
				Dökümanları geliştirmek için uygun olan araçlar 
					kullanılır. 
 ii. Döküman 
				tekrar kullanılabilirliğini sağlayan raporlar
 
 
 
			Dökümanın 
			bölümleri olarak aşağıdakileri sayabiliriz:        
				i. Eğitim dökümanları
				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. 
 ii. 
				Kullanım klavuzu
 
 iii. 
			Operatör klavuzu
			        iv. Bakım 
				klavuzu
 
 
 
			10. Test sonucu elde edilen veriler incelnir, analiz 
				edilir ve hatalar bulunur.
				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. 
 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.
 
 
 
			i. 
				Değişklik yapılmadan önce, değişikliğin etkisi inelenir.
				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. 
 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 & Analiz1. 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ÇAPractical 
				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
 |