Yazılım yaşam döngüsü
Yazılım sürüm yaşam döngüsü, bir yazılım ürününün (örneğin bir işletim sistemi) geliştirilmesi, test edilmesi ve dağıtılması sürecidir. Genellikle, son sürüm veya “altın” halka sunulmadan önce alfa öncesi, alfa, beta ve sürüm adayı gibi çeşitli aşamalardan oluşur.

Alfa öncesi, yazılımın hala tasarlanmakta ve inşa edilmekte olduğu, geliştirmenin erken aşamalarını ifade eder. Alfa testi, yazılımın white-box teknikleri kullanılarak dahili olarak test edildiği resmi testin ilk aşamasıdır. Beta testi, yazılımın genellikle onu geliştiren kuruluşun dışında daha büyük bir kullanıcı grubu tarafından test edildiği bir sonraki aşamadır. Beta aşaması kullanıcılar üzerindeki etkilerin azaltılmasına odaklanır ve kullanılabilirlik testlerini içerebilir.
Beta testinden sonra yazılım, nihai sürüm yayınlanmadan önce daha da rafine edildiği ve test edildiği bir veya daha fazla sürüm adayı aşamasından geçebilir.
Özellikle internet ve teknoloji sektörlerinde bazı yazılımlar sürekli beta halinde yayınlanır, yani sürekli olarak güncellenir ve geliştirilir ve hiçbir zaman tam olarak tamamlanmış bir ürün olarak kabul edilmez. Bu yaklaşım daha çevik bir geliştirme sürecine olanak tanır ve yazılımın geliştirme döngüsünün başlarında kullanıcılar tarafından piyasaya sürülmesini ve kullanılmasını sağlar.
Gelişim Aşamaları
[değiştir | kaynağı değiştir]Pre-alfa
[değiştir | kaynağı değiştir]Pre-alfa, resmi testlerden önce yazılım projesi sırasında gerçekleştirilen tüm faaliyetleri ifade eder. Bu faaliyetler arasında Gereksinim Analizi, Yazılım Tasarımı, Yazılım Geliştirme ve Birim Testi yer alabilir. Tipik Açık Kaynaklı geliştirmede, birkaç tür alfa öncesi sürüm vardır. Milestone sürümleri belirli işlev setlerini içerir ve özellik tamamlanır tamamlanmaz yayınlanır.
Alfa
[değiştir | kaynağı değiştir]Sürüm yaşam döngüsünün alfa aşaması, Yazılım Testinin ilk aşamasıdır (alfa, Yunan Alfabesinin ilk harfidir ve 1 rakamı olarak kullanılır). Bu aşamada geliştiriciler genellikle Beyaz Kutu Tekniklerini kullanarak yazılımı test ederler. Daha sonra başka bir test ekibi tarafından black-box yahut gray-box teknikleri kullanılarak ek doğrulama gerçekleştirilir. Kuruluş içinde kara kutu testine geçilmesi alfa sürüm olarak bilinir.[1][2]
Alfa yazılım, müşterilere sunulmadan önce geliştirici tarafından kapsamlı bir şekilde test edilmez. Alfa yazılımı ciddi hatalar içerebilir ve ortaya çıkan kararsızlık çökmelere veya veri kaybına neden olabilir.[3] Alfa yazılımı, son sürüm için planlanan tüm özellikleri içermeyebilir.[4] Genel olarak, alfa yazılımın dışarıdan erişilebilirliği Tescilli Yazılımlar için nadirdir. Açık Kaynaklı yazılımların ise genellikle halka açık alfa sürümleri vardır. Alfa aşaması genellikle yazılıma daha fazla özellik eklenmeyeceğini belirten bir Dondurma ile sona erer. Şu anda yazılımın Feature-Complete olduğu söylenmektedir. Beta testi, tedarikçinin tesisindeki kabul testinin (alfa testi) ardından ve yazılımın bir ürün olarak genel sürümünden hemen önce gerçekleştirilir.[5]
Feature-complete
[değiştir | kaynağı değiştir]Bir yazılımın Feature-Complete (FC) sürümü, planlanan veya birincil özelliklerinin tamamına sahiptir ancak hatalar, performans veya kararlılık sorunları nedeniyle henüz nihai değildir. Bu, geliştirme sürecinde alfa testinin sonunda ortaya çıkar.
Genellikle, özellikleri tamamlanmış bir yazılımın sürüm adayı ve son olarak altın statüsüne geçebilmesi için beta testi ve hata düzeltmenin yanı sıra performans veya kararlılık iyileştirmesinden geçmesi gerekir.
Beta
[değiştir | kaynağı değiştir]Adını Yunan alfabesinin ikinci harfinden alan beta, alfayı takip eden yazılım geliştirme aşamasıdır. Bir beta aşaması genellikle yazılımın özellikleri tamamlandığında ancak bilinen veya bilinmeyen birkaç hata içermesi muhtemel olduğunda başlar.[6] Beta aşamasındaki yazılımlarda genellikle tamamlanmış yazılımlardan çok daha fazla hata, hız veya performans sorunları bulunur ve yine de çökmelere veya veri kaybına neden olabilir. Beta testinin odak noktası, genellikle kullanılabilirlik testlerini de içerecek şekilde kullanıcılar üzerindeki etkilerin azaltılmasıdır. Bir beta sürümünün kullanıcılara ulaştırılması sürecine beta sürümü adı verilir ve genellikle yazılımın, onu geliştiren kuruluşun dışında ilk kez kullanıma sunulmasıdır. Yazılım beta sürümleri açık ya da kapalı olabilir, bu da yazılımın herkese açık ya da sadece sınırlı bir kitleye açık olmasına bağlıdır. Beta sürümü yazılımlar genellikle bir kuruluş içinde ve olası müşterilere yönelik tanıtımlar ve önizlemeler için kullanışlıdır. Bazı geliştiriciler bu aşamayı ön izleme, ön izleme sürümü, prototip, teknik ön izleme veya teknoloji ön izleme (TP) [7] Veya Erken Erişim Olarak Adlandırır.
Beta test kullanıcıları, beta yazılımla ilgili sorunları aktif olarak rapor eden kişilerdir. Bu kişiler genellikle yazılımı geliştiren kuruluşun müşterileri ya da müşteri adaylarının temsilcileridir. Beta test uzmanları hizmetlerini ücretsiz olarak gönüllü olarak sunma eğilimindedir ancak genellikle test ettikleri ürünün sürümlerini, sürümde indirim veya diğer teşvikleri alırlar.[8][9]
Sürekli Beta
[değiştir | kaynağı değiştir]Bazı yazılımlar, nihai bir “kararlı” sürüm oluşturulmadan yazılıma sürekli olarak yeni özelliklerin eklendiği sürekli beta olarak adlandırılan sürümde tutulur. İnternet yazılımların hızlı ve ucuz bir şekilde dağıtılmasını kolaylaştırdıkça, şirketler beta kelimesinin kullanımı konusunda daha gevşek bir yaklaşım benimsemeye başladılar.[10]
Açık Yahut Kapalı Beta
[değiştir | kaynağı değiştir]Geliştiriciler kapalı beta ya da açık beta sürümleri yayınlayabilirler; kapalı beta sürümleri davetiye yoluyla kullanıcı testi için kısıtlı bir gruba yayınlanırken, açık beta test kullanıcıları daha büyük bir gruptan ya da ilgilenen herkesten olabilir. Özel beta, değer sunma kapasitesine sahip ancak ölçeklendirme sorunları, dokümantasyon eksikliği veya hala eksik olan hayati özellikler nedeniyle herkes tarafından kullanılmaya hazır olmayan yazılımlar için uygun olabilir. Test kullanıcıları buldukları hataları rapor eder ve bazen son sürümde bulunması gerektiğini düşündükleri ek özellikler önerirler.
Açık betalar, bir ürünü potansiyel tüketicilere göstermek gibi ikili bir amaca hizmet eder ve geniş bir kullanıcı tabanı arasında yapılan testler, çok daha küçük bir test ekibinin bulamayacağı belirsiz hataları ortaya çıkarabilir.[kaynak belirtilmeli]
Release candidate
[değiştir | kaynağı değiştir]
Gama testi veya “gümüşe geçiş” olarak da bilinen release candidate (RC), önemli hatalar ortaya çıkmadığı sürece piyasaya sürülmeye hazır, kararlı bir ürün olma potansiyeline sahip bir beta sürümüdür. Ürün stabilizasyonunun bu aşamasında, tüm ürün özellikleri tasarlanmış, kodlanmış ve bir veya daha fazla beta döngüsü boyunca test edilmiş ve bilinen durdurucu sınıf hatalar bulunmamıştır. Geliştirme ekibi bu sürüme tamamen yeni kaynak kodu eklenmeyeceğini kabul ettiğinde bir sürüm kod tamamlanmış olarak adlandırılır. Yine de hataları düzeltmek için kaynak kod değişiklikleri, dokümantasyon ve veri dosyalarında değişiklikler ve test durumları veya yardımcı programlar için çevresel kod olabilir.[kaynak belirtilmeli]
Kararlı sürüm
[değiştir | kaynağı değiştir]Üretim sürümü olarak da adlandırılan kararlı sürüm, doğrulama ve testlerin tüm aşamalarını geçen son sürüm adayıdır. Kalan bilinen hatalar kabul edilebilir olarak değerlendirilir. Bu sürüm üretime geçer.
Bazı yazılım ürünleri (örneğin Debian gibi Linux dağıtımları), zaten denenmiş ve test edilmiş tam sürümlere dayanan ve yalnızca güvenlik güncellemeleri alan uzun vadeli destek (LTS) sürümlerine de sahiptir.[kaynak belirtilmeli]
Sürüm
[değiştir | kaynağı değiştir]Yazılım yayınlandıktan sonra genellikle “kararlı sürüm” olarak bilinir. Resmi terim genellikle yayınlama yöntemine bağlıdır: fiziksel medya, çevrimiçi yayınlama veya bir web uygulaması.[11]
Üretim Sürümü (RTM)
[değiştir | kaynağı değiştir]
“Altın sürüm” olarak da bilinen “üretim sürümü” (RTM) terimi, bir yazılım ürünü teslim edilmeye hazır olduğunda kullanılan bir terimdir. Bu yapı dijital olarak imzalanabilir ve son kullanıcının satın aldığı yazılımın bütünlüğünü ve gerçekliğini doğrulamasına olanak tanır. RTM yapısı “altın ana” veya GM[1] olarak bilinir ve varsa toplu çoğaltma veya disk çoğaltma için gönderilir. Bu terminoloji ses kaydı yapım endüstrisinden, özellikle de mastering sürecinden alınmıştır. RTM, ürünün halka sunulduğu genel kullanılabilirlikten (GA) önce gelir. Altın ana yapı (GM) genellikle geliştiriciler için beta aşamasındaki bir yazılım parçasının son yapısıdır. Genellikle iOS için, büyük bir sürümden önceki son yapıdır, ancak birkaç istisna olmuştur.
RTM tipik olarak belirli perakende seri üretim yazılım bağlamlarında - ticari veya devlet üretim ve dağıtımındaki özel bir yazılım üretimi veya projesinin aksine - yazılımın ilgili bir bilgisayar donanımı satışında bir paketin parçası olarak satıldığı ve tipik olarak yazılımın ve ilgili donanımın nihayetinde perakende mağazalarında toplu / halka açık olarak satışa sunulacağı ve satılacağı durumlarda yazılımın tanımlanmış bir kalite seviyesini karşıladığını ve toplu perakende dağıtıma hazır olduğunu belirtmek için kullanılır. RTM diğer bağlamlarda yazılımın ilgili donanım son kullanıcı bilgisayarlarına veya makinelerine kurulum veya dağıtım için bir müşteriye veya müşteriye teslim edildiği veya serbest bırakıldığı anlamına da gelebilir. Bu terim teslimat mekanizmasını veya hacmini tanımlamaz; sadece kalitenin toplu dağıtım için yeterli olduğunu belirtir. Mühendislik kuruluşundan teslim edilen ürün genellikle çoğaltma veya web için görüntü üretmek için kullanılan altın bir ana medya şeklindedir.
General availability (GA)
[değiştir | kaynağı değiştir]
Genel kullanıma hazır olma Veya General Availability (GA), gerekli tüm ticarileştirme faaliyetlerinin tamamlandığı ve bir yazılım ürününün dil, bölge ve elektronik ve medya kullanılabilirliğine bağlı olarak satın alınabilir olduğu pazarlama aşamasıdır. Ticarileştirme faaliyetleri, güvenlik ve uyumluluk testlerinin yanı sıra yerelleştirme ve dünya çapında kullanılabilirliği de içerebilir. RTM ve GA arasındaki süre, GA'nın gerektirdiği tüm ticarileştirme faaliyetlerinin tamamlanması için gereken zaman nedeniyle, genel kullanıma hazır bir sürümün ilan edilebilmesi için günlerden aylara kadar sürebilir. Bu aşamada yazılım “yayına girmiştir”.
Release to the Web (RTW)
[değiştir | kaynağı değiştir]Release to the Web (RTW) veya Web sürümü, dağıtım için İnternet'i kullanan bir yazılım dağıtım aracıdır. Bu tür yayın mekanizmalarında üretici tarafından herhangi bir fiziksel medya üretilmez. İnternet kullanımı arttıkça web sürümleri daha yaygın hale gelmiştir.[kaynak belirtilmeli]
Destek
[değiştir | kaynağı değiştir]Desteklenen ömrü boyunca, yazılım bazen “ara sürümler” veya “bakım sürümleri” (MR) olarak da adlandırılan hizmet sürümlerine, yamalara veya hizmet paketlerine tabi tutulur. Örneğin Microsoft, Windows XP'nin 32 bit sürümleri için üç ana hizmet paketi ve 64 bit sürümleri için iki hizmet paketi yayınlamıştır.[12] Bu tür hizmet sürümleri, tek bir yüklenebilir paket biçiminde sunulan güncellemeler, düzeltmeler ve geliştirmelerden oluşan bir koleksiyon içerir. Ayrıca yeni özellikler de uygulayabilirler. Bazı yazılımlar düzenli destek beklentisiyle piyasaya sürülür. Genellikle uzun süreli destek içeren yazılım sınıfları arasında anti-virüs paketleri ve devasa çok oyunculu çevrimiçi oyunlar yer alır. Windows XP örneğinden devam edersek, Microsoft genişletilmiş desteğin sona ermesinden sonra beş yıl daha ücretli güncellemeler sunmuştur. Bu da desteğin 8 Nisan 2019 tarihinde sona erdiği anlamına gelmektedir.[13]
End-of-life
[değiştir | kaynağı değiştir]Yazılım artık satılmadığında veya desteklenmediğinde, ürünün kullanım ömrünün sonuna ulaştığı, üretimden kaldırıldığı, emekli edildiği, kullanımdan kaldırıldığı, terk edildiği veya modasının geçtiği söylenir, ancak kullanıcı sadakati, platformunun modası geçtikten çok sonra bile bir süre daha varlığını sürdürebilir - örneğin, Ortak Masaüstü Ortamı[14] ve Sinclair ZX Spektrumu.[15]
Kullanım ömrünün sona erdiği tarihten sonra, geliştirici genellikle herhangi bir yeni özellik uygulamayacak, mevcut kusurları, hataları veya güvenlik açıklarını (bu tarihten önce biliniyor olsun ya da olmasın) düzeltmeyecek veya ürün için herhangi bir destek sağlamayacaktır. Geliştirici isterse, platformun gönüllüler tarafından sürdürülebilmesi için kaynak kodunu yayınlayabilir.
Tarihçe
[değiştir | kaynağı değiştir]“Alfa/beta” test terminolojisinin kullanımı IBM'de ortaya çıkmıştır.[kaynak belirtilmeli] IBM'in yazılım geliştirmesi için benzer terminolojiler, en azından 1950'lerden itibaren (ve muhtemelen daha önce) IBM ile ilgili kişiler tarafından kullanılmıştır. “A” testi, yeni bir ürünün kamuoyuna duyurulmadan önce doğrulanmasıydı. “B” testi, ürünün üretilmek üzere piyasaya sürülmesinden önce yapılan doğrulamaydı. “C” testi ise ürünün genel kullanıma sunulmasından önceki son testti. Yazılım IBM'in sunduklarının önemli bir parçası haline geldikçe, alfa testi terminolojisi duyuru öncesi testi belirtmek için, beta testi ise ürünün genel kullanıma hazır olduğunu göstermek için kullanılmaya başlandı. IBM'in daha önceki bazı yazılım projelerinde yönetici olan Martin Belsky bu terminolojiyi icat ettiğini iddia etmiştir. IBM 1960'larda alfa/beta terminolojisini bıraktı, ancak o zamana kadar bu terminoloji oldukça yaygın bir şekilde kullanılmaya başlanmıştı. Müşteriler tarafından yapılan testlere atıfta bulunmak için “beta testi” kullanımı IBM'de yapılmadı. Bunun yerine IBM “saha testi” terimini kullanmıştır.
Daha sonra büyük halka açık betalar geliştirildi ve ilk müşteriler IBM PC için WordVision kelime işlemcisinin “öncü sürümünü” 49.95 dolara satın aldı. 1984 yılında Stephen Manes, “Bruce ve James Program Publishers'ın parlak bir pazarlama darbesiyle insanların ürünü test etme ayrıcalığı için ödeme yapmalarını sağladığını” yazdı.[16] Eylül 2000'de Apple'ın Mac OS X Public Beta işletim sisteminin kutulu bir sürümü piyasaya sürüldü.[17] Eylül 2005 ve Mayıs 2006 arasında Microsoft, Windows Vista için topluluk teknoloji önizlemelerini (CTP'ler) yayınladı.[18] Minecraft 2009'dan 2011'e kadar halka açık beta sürümündeydi.
Şubat 2005'te ZDNet, bir beta sürümünün genellikle yıllarca kalması ve üretim seviyesindeymiş gibi kullanılması olgusu hakkında bir makale yayınladı.[19] Örneğin, Gmail ve Google News yaygın olarak kullanılmasına rağmen uzun süredir beta aşamasında olduğunu; Google News'in Ocak 2006'da beta aşamasından çıktığını, ardından Temmuz 2009'da Gmail'i de içeren Google Apps'in (şimdiki adıyla Google Workspace) geldiğini belirtti.[11] Windows 8'in piyasaya sürülmesinden bu yana Microsoft, yayın öncesi yazılımları beta yerine önizleme olarak adlandırıyor. 2014'te başlatılan Windows Insider Programı aracılığıyla yayınlanan tüm ön sürüm yapıları “Insider Preview yapıları” olarak adlandırılır. 2014 yılında piyasaya sürülenler “Insider Preview yapıları” olarak adlandırılır. “Beta” ayrıca daha çok bir sürüm adayı veya zaman sınırlı bir demo veya pazarlama tekniği gibi bir şeye de işaret edebilir.[20]
Kaynakça
[değiştir | kaynağı değiştir]- ^ "Encyclopedia definition of alpha version". PC Magazine. 27 Nisan 2011 tarihinde kaynağından arşivlendi12 Ocak 2011.
- ^ "What is an alpha version of a game?". 23 Eylül 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Eylül 2022.
- ^ Ince, Darrel, (Ed.) (2013). "Alpha software". A Dictionary of the Internet (3. bas.). Oxford University Press. ISBN 978-0-19-174415-0. 9 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Temmuz 2019.
- ^ "The Next Generation 1996 Lexicon A to Z". Next Generation, 15. Imagine Media. March 1996. s. 29.
Alpha software generally barely runs and is missing major features like gameplay and complete levels.
- ^ A Dictionary of Computer Science (7. bas.). Oxford University Press. 2016. s. 44. ISBN 978-0-19-968897-5.
- ^ "The Next Generation 1996 Lexicon A to Z". Next Generation, 15. Imagine Media. March 1996. s. 30.
- ^ "Technology Preview Features Support Scope". Red Hat. 24 Mart 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Mart 2015.
- ^ Amit Mehra; Rajib Lochan Saha (19 Haziran 2017). "Utilizing Public Betas and Free Trials to Launch a Software Product". Production and Operations Management. 27 (11).
- ^ Lang, Michelle M. (17 Mayıs 2004). "Beta Wars". Design News. 59 (7).
- ^ "Waiting with Beta'd Breath TidBITS #328 (May 13, 1996)". 13 Mayıs 1996. 6 Aralık 2022 tarihinde kaynağından arşivlendi.
- ^ a b "Google Apps is out of beta (yes, really)". Google Blog. 7 Temmuz 2009. 21 Ocak 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ocak 2011.
- ^ "Microsoft Update Catalog". www.catalog.update.microsoft.com. 3 Mayıs 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mayıs 2024.
- ^ "Microsoft Product Lifecycle Search". 20 Temmuz 2012. 20 Temmuz 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mayıs 2024.
- ^ "[cdesktopenv-devel] CDE 2.2.1 released | CDE - Common Desktop Environment". sourceforge.net. 3 Mayıs 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mayıs 2024.
- ^ "ZX-Uno [ZX Spectrum Computer Clone Based on FPGA]". 5 Ocak 2018. 5 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mayıs 2024.
- ^ Manes, Stephen (3 Nisan 1984). "Taking A Gamble With Word Vision". PC Magazine - The Independent Guide To IBM Personal Computers. 3 (6). PC Communications Corp. ss. 211-221. ISSN 0745-2500. 17 Mart 2015 tarihinde kaynağından arşivlendi15 Şubat 2015.
- ^ "Apple Releases Mac OS X Public Beta" (Basın açıklaması). Apple Inc. 13 Eylül 2000. 30 Haziran 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Ocak 2024.
- ^ "Microsoft Windows Vista October Community Technology Preview Fact Sheet" (Basın açıklaması). Microsoft. October 2005. 30 Nisan 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Şubat 2011.
- ^ Festa, Paul (14 Şubat 2005). "A long winding road out of beta". Tech News on ZDNet. 14 Şubat 2005 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2019.
- ^ Houghton, David (17 Mayıs 2010). "The inconvenient truths behind betas". GamesRadar. 30 Nisan 2011 tarihinde kaynağından arşivlendi.