<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="tr">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Açık Kaynak Yazılım Seçimi için İki Boyutlu Değerlendirme Metodu</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Nebi</forename><surname>Yılmaz</surname></persName>
							<email>yilmaz@cs</email>
						</author>
						<author>
							<persName><forename type="first">Kıvanç</forename><surname>Dinçer Bilgisayar</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Mühendisliği</forename><surname>Bölümü</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Hacettepe</forename><surname>Üniversitesi</surname></persName>
						</author>
						<title level="a" type="main">Açık Kaynak Yazılım Seçimi için İki Boyutlu Değerlendirme Metodu</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">D41935A1D3ABCACF7438415BC7DF361B</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T19:46+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Open Source Software</term>
					<term>Software Evaluation/Selection Methods</term>
					<term>Software Quality Evaluation</term>
					<term>ISO 25010 Model</term>
					<term>Software Quality Models</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Son yıllarda açık kaynak yazılımların popülerliğinin artması, birbirine alternatif olarak pazara sunulan bu tür yazılımların sayısının hızla artmasına sebep olmuştur. Ancak açık kaynak yazılımların kalitesinin potansiyel kullanıcılar tarafından nasıl değerlendirilebileceğine ışık tutan akademik çalışmalar sınırlı sayıdadır. Dolayısıyla alternatifler arasından ihtiyaç sahiplerinin kalite gereksinimlerini en iyi karşılayanın seçilmesi problemi araştırılması gereken cazip bir problem haline gelmiştir. Bu bildiride literatürde mevcut çalışmalar kendi katkılarımızla sentezlenerek oluşturulmuş ve kod-tabanlı ve toplum-tabanlı olmak üzere iki açıdan ürün kalitesini değerlendirme imkânı sunan kapsamlı bir metot tanıtılmaktadır. Kod-tabanlı değerlendirme yapılırken, yazılımın kaynak kodları analiz edilerek ISO 25010 yazılım kalite modeline göre belirlenen ve kullanıcı için öncelikli içsel öznitelikler uygun metriklerle ölçülmektedir. Toplum-tabanlı değerlendirme yapılırken ise elektronik posta listeleri, problem (hata) raporları ve sıkça sorulan sorular vb. gibi tarihsel verilerden elde edilen metrikler kullanılmaktadır.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="tr">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Giriş</head><p>Açık kaynak yazılımlar, kaynak kodları özel bir telif hakkı lisansı (copyright) ile herkesin incelemesine, kullanımına ve dağıtımına açılan böylece kullanıcıya yazılımı değiştirme özgürlüğü sunan ve dünyanın her tarafından bilişim uzmanlarınca imece yöntemi ile endüstri standartlarında geliştirilen yazılımlardır <ref type="bibr" target="#b0">[1]</ref>.</p><p>Açık kaynak yazılım kullanımı son yıllarda büyük oranda artmıştır. Bu yazılımların tercih edilmesinin sebebi geçmişten günümüze farklılık göstermektedir. Geçmiş yıllarda açık kaynak yazılım kullanımının ana sebebi mevcut kod tabanının ihtiyaca göre değiştirilip tekrar kullanımının kaynak ve zaman tasarrufu sağlaması iken (tekrar kullanılabilirlik), son yıllarda bu sebeplere ek olarak açık kaynak yazılımların yüksek kaliteli, güvenli ve güvenilir olarak algılanmaya başlanması da kullanımdaki bu artışı hızlandırmıştır. Böyle algılanmasındaki temel sebep ise bu yazılımların birçok geliştiricinin dikkatli incelemesinden geçmiş ve dolayısıyla hatalarından arındırılmış olduğunun kabul edilmesidir.</p><p>Avrupa Birliği, UNESCO, Dünya Bankası gibi kuruluşlar yukarıda zikredilen gerekçelerle açık kaynak yazılımların kullanımını önermektedirler. Nitekim Almanya, İspanya, Meksika, Brezilya, Çin, Kore, Hindistan gibi birçok ülke, kamu kurumlarında açık kaynak kodlu yazılımlarının kullanımını benimsemiş ve bilgi toplumu stratejilerinin bir parçası yapmışlardır <ref type="bibr" target="#b1">[2]</ref>.</p><p>Şekil 1'de verilen Black Duck Software ve North Bridge Venture organizasyonlarının raporuna göre, özellikle 2010 yılından sonra açık kaynak yazılımlara ilgi dikkat çekecek şekilde artmıştır. Geçmiş yıllarda Michael Skok: "Yazılımlar dünyayı ele geçiriyor (İngilizcesi: Software is eating the world)." demiştir. Fakat günümüzde yine aynı organizasyonların güncel raporuna göre bu algı değişmiştir ve "Açık kaynak yazılımlar yazılım dünyasını ele geçiriyor (İngilizcesi: Open source software is eating the software world)" haline dönüşmüştür <ref type="bibr" target="#b2">[3]</ref>. Proje sayısı (bin) yıllar lemidir <ref type="bibr" target="#b3">[4]</ref>. Akademik ve endüstri alanında ticari yazılımlar kadar olmasa da, açık kaynak yazılımların değerlendirilmesi ve seçilmesi için birkaç metot önerilmiş fakat hala standartlaştırılmış bir metot olmadığı için yapılan çalışmalar eksik ve yetersiz kalmıştır. Önerilen bazı genel metotlar <ref type="bibr" target="#b4">[5]</ref>'deki gibi açık kaynak yazılımlar için kullanılabilir olmasına rağmen özellikle bu ihtiyaç için geliştirilmemiştir. Bu eksiklikten dolayı ihtiyaç sahipleri ihtiyaçlarını karşılayan açık kaynak yazılım ürünlerini subjektif değerlendirmelerle veya tavsiyeler üzerine seçmektedirler <ref type="bibr" target="#b5">[6]</ref>. Bu çalışmada bu konudaki eksikliği giderebilmek için literatürdeki çalışmalardan bir sentez yapılarak kendi katkılarımızla beraber bu süreçte kod-tabanlı (code-based) ve toplum-tabanlı (community-based) olmak üzere iki açıdan değerlendirme imkânı sunan bir metot geliştirilmesi hedeflenmiştir. Kod-tabanlı değerlendirme yapılırken, yazılımın kaynak kodları analiz edilerek ISO 25010 kalite modelinde listelenen içsel öznitelikler arasından ihtiyaç sahibi tarafından önemli görülenler seçilerek uygun metriklerle ölçülmektedir. Toplum-tabanlı değerlendirme yapılırken ise açık kaynak yazılım ürünleriyle birlikte sağlanan kaynak kod ve geliştirme süreci hakkındaki tarihsel verilerden faydalanarak elektronik posta listeleri, problem (hata) raporları ve sıkça sorulan sorular vb. gibi tarihsel verilerden elde edilen metrikler değerlendirilmektedir.</p><p>Bölüm 2'de konuyla ilgili çalışmalardan bahsedilecek, Bölüm 3'te bu çalışma kapsamında geliştirilen bu kapsamlı metot tanımlanacak ve ilgili süreç adımları açıklanacaktır. Bölüm 4'te geliştirdiğimiz metodun iki açık kaynak yazılım ürününe uygulanmasını içeren doğrulayıcı bir vaka çalışması (case study) takdim edilecek ve elde edilen bulgular analiz edilecektir. Bölüm 5'de ise sonuçlar ve gelecek çalışmalarla bildiri sonlandırılacaktır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2</head><p>İlgili Çalışmalar</p><p>Literatürde açık kaynak yazılımların kalite özelliklerinin değerlendirilmesine ilişkin az sayıda çalışma bulunmuş, fakat bu çalışmalarda önerilen metotları derinlemesine karşılaştıran ve analiz eden bir çalışma bulunmamaktadır. Bu alanda en önemli çalışmalardan bir tanesini Wheeler yapmıştır <ref type="bibr" target="#b6">[7]</ref>. Çalışmasında açık kaynak yazılımların değerlendirilme sürecini ticari yazılımların değerlendirilme süreci ile kıyaslamıştır ve açık kaynak yazılımların değerlendirilmesinde toplum-tabanlı olarak dört aşamadan oluşan çok genel bir metot geliştirmiştir. Bu alanda çalışma yapanlardan Deprez ve Alexandre <ref type="bibr" target="#b7">[8]</ref> çalışmalarında QSOS <ref type="bibr" target="#b8">[9]</ref> ve OpenBRR <ref type="bibr" target="#b9">[10]</ref> metotlarını karşılaştırarak analiz etmişlerdir. Bu çalışma, bu metotların anlaşılmasında yardımcı olmuş ama literatürdeki diğer metotlarla karşılaştırılmadığı için en uygun metotların bunlardan biri olduğu hakkında ikna edici olmamıştır.</p><p>Literatürde göze çarpan diğer bir çalışmada ise Sung, Kim ve Rhew <ref type="bibr" target="#b10">[11]</ref> sadece kodtabanlı değerlendirilmeye yönelik tek yönlü çalışma yapmışlar ve toplum-tabanlı değerlendirme yapmamışlardır.</p><p>Yukarıda verilen çalışmalar incelendikten sonra, bu çalışmada literatürde mevcut çalışmalardan bir sentez yapılarak kendi katkılarımızla beraber açık kaynak yazılımları hem kod-tabanlı hem de toplum-tabanlı değerlendiren kapsamlı ve iki boyutlu bir metot geliştirilmesi hedeflenmiştir. Şekil 2'de ticari yazılımların değerlendirilmesi ile ilgili alt kısımda literatürdeki değerlendirme metotları özetlenmiş ve açık kaynak yazılımların değerlendirilmesi ile ilgili üst kısımda ise bu çalışma kapsamında geliştirilen metot özetlenmiştir.</p><p>Şekil. 2. Yazılım (kalite) değerlendirme metotları a) Önerilen metot b) Ticari yazılımlara yönelik mevcut metotlar Ticari yazılımlar değerlendirilirken kodun iç yapısı bilinmediğinden dolayı, dış öznitelikler (external attributes) kullanılır ve literatürde bulunan bazı karar-verme (decision-making) teknikleriyle aday yazılım ürünlerine skorlar verilip siyah-kutu değerlendirmesi (black-box evaluation) ile ihtiyaçlarımızı karşılayan en optimum yazılım seçilir <ref type="bibr" target="#b4">[5]</ref>. Ticari yazılımların aksine açık kaynak yazılım ürünlerinde ürünün koduna erişebildiğimiz için beyaz-kutu değerlendirmesi (white-box evaluation) yapılabilir ve ürüne ait içsel öznitelikler kullanılabilir <ref type="bibr" target="#b11">[12]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>3</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>İki boyutlu değerlendirme metodu</head><p>Bu çalışmada Şekil 2'de gösterildiği gibi kod-tabanlı ve toplum-tabanlı olarak iki boyutlu bir değerlendirme metodu önerilmiştir. Kod-tabanlı değerlendirme yapılırken ISO 25010 modelinden seçilen -kullanıcı tarafından öncelikli görülen -içsel öznitelikler metriklerle ilişkilendirilmiş ve bu metrikler kullanılarak kodun kalite öznitelikleri (quality attributes) ölçülerek alternatifler arasından en ideali seçilmeye çalışılmıştır. Toplum-tabanlı değerlendirme yapılırken, açık kaynak yazılımlar ile birlikte sağlanan ve süreç tarihçesini açıklayan veriler ve dokümantasyon kullanılmıştır.</p><p>Geliştirdiğimiz metot aşağıda detaylandırılan dört aşamadan oluşmaktadır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Aday yazılım ürününün belirlenmesi</head><p>Bu aşamada ihtiyaç sahipleri öncelikle hangi çeşit yazılım ürünü için değerlendirme yapacaklarını belirlemelidirler. Bu doğrultuda piyasada var olan, gereksinimlerini karşılayacak aday yazılım ürünlerini araştırmalıdırlar.</p><p>İhtiyaç duyulan aday açık kaynak yazılım ürünlerini ararken akla ilk gelen yöntem, bir internet arama motoru (Google, Yandex, Yahoo, vb.) kullanarak arama yapıp değerlendirme yapacağımız aday ürünleri belirlemektir. Eğer arama yapacağımız ürün ismini biliyorsak ona rakip olabilecek isimleri bulmaya yönelik araştırma yapmak ta uygun olur. Eğer arama yapılacak ürün ismi tam olarak bilinmiyorsa, aday olacak ürünlerden herhangi birini gözden kaçırmamak için ürün ismi ile ilgili bütün kombinasyonlar denenmelidir. Örneğin, X formatını Y formatına dönüştüren bir yazılım ürünü için arama yaptığımızda, X2Y, XtoY gibi çeşitli kombinasyonlar denenmesi lazımdır.</p><p>Arama yaparken kullanılabilecek ikinci yöntem ise ürünlerin kodlarını ve dokümanlarını sağlayan sitelerden (Apache, SourceForge, Debian ve Savannah, vb.) aday açık kaynak yazılım ürünlerini belirlemektir. Bütün bu araştırmaları yaparken ürünlerin açık kaynak yazılım lisanslarına (General Public Licence (GPL), Library or Lessor General Public Licence (LGPL), BDS-style, vb.) sahip olduğuna dikkat etmek lazımdır <ref type="bibr" target="#b6">[7]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Kalite özniteliklerinin belirlenmesi</head><p>Bu aşamada, belirlenen açık kaynak yazılım ürün alternatiflerinin hangi kalite özniteliklerine göre değerlendirileceği ve karşılaştırılacağı belirlenir. Geçmişten günümüze önerilen kalite modellerinden en bilinirleri <ref type="bibr">McCall (1977)</ref>, <ref type="bibr">Boehm (1978)</ref>, FURPS (1992), Dromey (1995) ve ISO 9126 (2001) modelleridir. Farklı kalite modellerinin içerdiği öznitelikler (attributes) farklılık göstermektedir. Bazıları önceki modellere yeni öznitelikler eklerken, bazıları ise öncekileri kendi modellerinden çıkarmıştır. Biz bu çalışmamızda Tablo 1'de gösterilen ve bütün modellerde önerilen ortak öznitelikleri ölçmeye çalışacağız. Tabloda da görüldüğü gibi geçmişten günümüze bütün modellerin önerdiği ortak özniteliklerin verimlilik (efficiency), güvenilirlik (reliability), fonksiyonellik (functionality), taşınabilirlik (portability), kullanılabilirlik (usability) ve bakım yapılabilirlik (maintainability) olduğu görülmektedir <ref type="bibr" target="#b11">[12]</ref>. Bu metodun bu ortak içsel öznitelikleri ölçmek için en güncel kalite modeli olan ISO 25010'un tanımlarını (Tablo 2) kullanması öngörülmüştür. Kullanıcı bunlardan ihtiyaç duyduklarını veya önemli gördüklerini seçer. </p><formula xml:id="formula_0">(Efficiency) X X X X X Güvenilirlik (Reliability) X X X X X Fonksiyonellik (Functionality) X X X Bakım yapılabilirlik (Maintainability) X X X X X Taşınabilirlik (Portability) X X X X Kullanılabilirlik (Usability) X X X X</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Değerlendirme yapılacak metriklerin belirlenmesi</head><p>İhtiyaçlar doğrultusunda elde edilen açık kaynak yazılım alternatiflerinin nicel olarak değerlendirilmesi için uygun metriklerle ilişkilendirilmesi lazımdır. Kod-tabanlı değerlendirme yapmak için belirlenen öznitelikler direk olarak ölçülemeyeceğinden dolayı uygun metrikler belirlenir. Toplum-tabanlı değerlendirme yapabilmek için ise ürünün internet sitesinin bize sağladığı birçok tarihsel arşivlenmiş veriler (elektronik postalar, sıkça sorulan sorular, problem ve hata raporları, vb.) kullanılır. Bu verileri değerlendirebilmek için analiz aşamasında kullanılabilecek nitelikte uygun metrikler bulunmaya çalışılır. Daha sonra ilişkili metrikler yorumlanarak alternatif ürünlerden hangisinin ihtiyaçlarımıza en uygun olduğu belirlenmeye çalışılır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Analiz etme ve seçme</head><p>Bu son aşamada kod-tabanlı değerlendirme yapmak için ihtiyaçlarımıza göre belirlenen ve nicel değerler elde etmek için metriklerle ilişkilendirilen kalite öznitelikleri analiz edilir. Metriklerden nicel değerler elde etmek için yazılım ürünün açık kaynak kodu kod analiz araçları (code analyzer tools) ile ölçülür. Elde edilen bu nicel değerler sayesinde her bir metrik ile ilişkili kalite öznitelikleri yorumlanır. Eğer belirlenen kalite öznitelikleri için ölçülen değerler bir kaç aday ürün için birbirine yakın çıkmışsa veya değerlendirmede kararsız kalınan ürünler arasında derinlemesine analiz yapılmak isteniyorsa temsili model veriler (representetive dummy data) oluşturularak ölçmek istenilen özniteliklere uygulanır ve sonuçlar analiz edilir <ref type="bibr" target="#b6">[7]</ref>. Toplum-tabanlı değerlendirme yapmak için yazılım ürününün internet sitesindeki metriklerle ilişkilendirilen tarihsel veriler, bu metrik değerleri kullanılarak yorumlanır. Bütün bu değerlendirilmeler sonucu ihtiyaçlarımızı karşılayan en ideal ürün seçilmeye çalışılır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Vaka Çalışması</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Aday yazılım ürünlerinin özellikleri</head><p>Bu kısımda vaka çalışması olarak aynı yönelik olan (amaç: kod derleme/build aracı) ve pratikte benzer popülerliğe sahip iki tane aday açık kaynak yazılım ürünü ele alınmış ve bu ürünler çalışmamızda önerdiğimiz metot kullanılıp değerlendirilerek bizim için en ideal olanı seçilmeye çalışılmıştır. Değerlendirme yapılacak ürünlerin (Apache Ant ve Apache Archiva) detayları Tablo 3'te gösterilmiştir.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Özniteliklerin ve metriklerin belirlenmesi</head><p>Aday yazılım ürünleri belirlendikten sonra, kod-tabanlı değerlendirme yapmak için öncelikle ölçülmek istenen öznitelikler belirlenmelidir. Bu vaka çalışmasında Tablo 1'de gösterilen bütün kalite modelleri tarafından önerilmiş özniteliklerden biri olan bakım yapılabilirlik (maintainability) seçilmiştir. Bu özniteliği direk olarak ölçemediğimiz için bu öznitelikle ilişkili Tablo 2'de gösterilen ve ISO 25010'nun tanımları kullanılmıştır. Daha sonra literatürde kullanılan metrikler araştırılmış ve her bir içsel özniteliğin nicel olarak ölçülmesi için Tablo 4'te gösterilen uygun metrikler bulunmuştur <ref type="bibr" target="#b12">[13]</ref>.</p><p>Bu metrikler açık kaynak yazılım ürünlerinin kaynak kodlarının sınıf (class) seviyesinde Understand Scitool adlı kod analiz aracı <ref type="bibr" target="#b13">[14]</ref> kullanılarak ölçülmüş ve en büyük (Maks), en küçük (Min), ortalama (Ort) ve standart sapma (SS) değerleri Tablo 5'te verilmiştir. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Bulgular ve Bulguların Tartışılması</head><p>Kod-tabanlı değerlendirmede elde edilen metriklere göre şu sonuçlar elde edilmiştir: DIT metriği sınıfın kalıtım ağacının köküne uzaklığını ölçer <ref type="bibr" target="#b14">[15]</ref>. Ağaç derinliğinin fazla olması daha fazla sınıf ve metot içereceği için karmaşıklığı arttırır ve yazılımın değişebilirliğinin (changeability) ve ürünün kararlılığının (stability) düşük olduğunun göstergesidir. Bu da istenmeyen bir durum olduğu için Tablo 5'teki sonuçlara göre bu metrik için içsel özniteliklerden değişebilirlik ve kararlılık bakımından Apache Archiva'nın daha iyi olduğunu gösterir.</p><p>WMC metriği bir sınıftaki metotların karmaşıklık derecesi ve sayısıdır <ref type="bibr" target="#b15">[16]</ref>. Metotların sayısı arttıkça kodun çözümlenebilirlik (analyzability) süresi de otomatik olarak artacaktır. Dolayısıyla Tablo 5'teki sonuçlara göre çüzümlenebilirlik bakımından Apache Archiva yazılım ürününün daha iyi olduğunu anlaşılır.</p><p>LOC metriği metotların birbiriyle benzerlik derecesini ölçer <ref type="bibr" target="#b15">[16]</ref>. Bu metriğin değerinin düşük olması istenir. Dolayısıyla Apache Archiva ürününün metotları diğer ürüne göre daha uyum içerisinde ve değişebilirliği daha yüksektir (Tablo 5).</p><p>RFC metriğinin değeri bir sınıftan bir nesnenin metotları çağırılması durumunda, bu nesnenin tetikleyebileceği tüm metotların sayısıdır. Yani, bir sınıfta yazılan ve çağrılan toplam metot sayısıdır <ref type="bibr" target="#b14">[15]</ref>. RFC metriğinin değerinin düşük olduğu yazılım ürünleri daha anlaşılır ve sınanabilirdir. Bu yüzden Tablo 5'te bu metriğin değerlerine göre Apache Ant ürününün test edilmesi ve hata ayıklaması daha zordur.</p><p>NOC metriği bir sınıftan türetilmiş alt sınıfların sayısını ölçer. Bu metriğin değerinin fazla olması yeniden kullanımının yüksek olduğu, daha çok hatanın oluşabileceğini <ref type="bibr" target="#b16">[17]</ref> ve test yapılırken harcanan çabanın yüksek olduğunu gösterir <ref type="bibr" target="#b14">[15]</ref>. Dolayısıyla Apache Archiva ürününün sınanabilirliği (testability) daha yüksektir.</p><p>CBO metriği sınıfın bağlı olduğu sınıf sayısını ölçer. Bu bağımlılık sınıf içerisindeki bazı özelliklerin veya metotların başka sınıflarda, sınıflar arasında kalıtım olmaksızın kullanılması durumundaki bağımlılıktır <ref type="bibr" target="#b16">[17]</ref>. Sınıflar arasındaki bağımlılığın fazla olması modüler tasarıma zarar verir <ref type="bibr" target="#b14">[15]</ref> ve değişebilirliği azaltır. Bu metriğin değeri bakımından arada fazla fark olmamakla birlikte Apache Ant ürünü değişebilirlik ve kararlılık bakımından biraz daha üstündür.</p><p>CC metriği program kaynak kodunun akışının birbirinden bağımsız yolları takip etme oranını ölçer ve direk kodun karmaşıklığı ile ilgilidir. Bu metriğin değerinin büyük olması istenmeyen bir durumdur ve kaynak kodun çözümlenebilirliğine etki eder. Dolayısıyla çözümlenebilirlik bakımından Apache Archiva ürünü diğer ürüne göre biraz daha üstündür.</p><p>NNL metriği bir sınıf içerisindeki döngülerin iç içe geçme derinliğini ölçer ve ne kadar büyük bir değer alırsa kodun sınanabilirliği ve kararlılığı azalır. Dolayısıyla bu metriğin sonuçlarına göre sınanabilirlik ve kararlılık açısından Apache Archiva ürünü diğer üründen öndedir.</p><p>NOS ve CCF metrikleri program içerisindeki karmaşıklığı azaltmak adına bize yol gösterecek yorumların ve açıklamaların sıklığını ölçer. Programın takip edilmesini ve çözümlenebilmesini kolaylaştırır. Tablo 5'teki sonuçlara baktığımızda NOS metriği açsından çözümlenebilirlik için Apache Archiva ürünü üstünken, CCF metriği için Apache Ant ürünü üstündür.</p><p>Sonuçlardan da görüldüğü gibi kod-tabanlı değerlendirme açısından Apache Archiva Apache Ant yazılım ürününe göre daha üstün özelliklere sahiptir. Tablo 5'te verilen ISO 25010'nun içsel öznitelikleri (çözümlenebilirlik, değişebilirlik, ...) bakım yapılabilirliğin ölçülmesini kolaylaştıran alt öznitelikler olduğu düşünüldüğünde, genel manada Apache Archiva açık kaynak yazılım ürünü ileride değişen ihtiyaç sahibi isteklerine göre yenilenebilen ve çok daha kolay adapte olabilen bir yapıya sahiptir.</p><p>Belirlenen aday yazılım ürünleri arasında toplum-tabanlı değerlendirme yapılabilmesi için yazılım ürünlerinin internet sitesindeki tarihsel verilere -elektronik posta arşivi ve problem raporlarına -erişilmiştir. Bu verilerin depolanması için açık kaynak yazılım ürününün internet sitesinde bulunan Concurrent Version Control (CVS) arşivi ve Problem Reporting Database (BUGDB) gibi veri tabanları kullanılmaktadır <ref type="bibr" target="#b17">[18]</ref>. Bu veri tabanlarından elde ettiğimiz ürün ile ilgili tarihsel veriler, ürünün kalite özniteliklerini ölçmemizi sağlayan toplum-tabanlı değerlendirmelere katkı sağlayarak, ürün kalitesini ölçmemizde ikincil düzeyde yardımcı olmuştur. Apache Archiva yazılım ürünü Apache Ant ürününe göre daha yeni bir ürün olmasına rağmen piyasaya sürüldüğü ilk yılda sayı olarak yıllık 900 civarında mesajlaşma trafiği ile başlarken bu sayı giderek düzenli olarak azalmış ve 2016 yılına geldiğimizde sayı olarak yıllık 30 civarına düşmüştür. Apache Ant'a göre daha kısa sürede daha az mesajlaşma trafiği ile standart bir ürün haline gelmiştir. Bu yüzden iki ürün arasındaki üreticiler arasındaki mesajlaşma trafiği dikkate alındığında Apache Archiva yazılım ürünü diğerine göre açık ara üstünlük sağlamıştır. </p><p>Denklem 1 ve Denklem 2 incelendiğinde Apache Ant ürünü pazara çıkış süresinden itibaren karşılaştığı hataların daha ciddi hatalar olduğu anlaşılmaktadır. Bu sonucun ise ürün seçiminde tercih edilebilirliği negatif yönde etkileyebileceği düşünülmektedir. Dolayısıyla hem kod-tabanlı değerlendirme sonuçlarına hem de toplum-tabanlı değerlendirme sonuçlarına göre iki aday yazılım arasında Apache Archiva ürününün Apache Ant ürününe göre daha tercih edilebilir ürün olduğu sonucu çıkarılmıştır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Sonuçlar ve Gelecek Çalışmalar</head><p>Bu çalışmada ihtiyaç sahiplerinin alternatif açık kaynak yazılım ürünleri arasından kendi gereksinimlerine göre değerlendirme ve seçme yaparken takip edecekleri standart bir yöntem konusunda yeterli akademik çalışma bulunmayışından yola çıkılmıştır. Bu eksikliği gidermek için literatürdeki yöntemler analiz edilmiş ve kapsamlı bir iki boyutlu yöntem geliştirilmiştir. Bu yöntemle açık kaynak yazılım ürününün hem kod-tabanlı hem de toplum-tabanlı değerlendirilmesi yapılmıştır. Bu geliştirilen yöntemi desteklemek için bir vaka çalışması yapılmış ve aynı maksada yönelik iki alternatif ürün arasından kalite gereksinimlerini daha iyi karşılayan ürün seçilmeye çalışılmıştır. Özellikle toplum tabanlı değerlendirmeye yönelik değerlendirmeler henüz başlangıç seviyesinde olmasına rağmen, tartışmaları tetikleyici ve bundan sonraki çalışmalara yol gösterici niteliktedir. Bu geliştirdiğimiz yöntem gelecekte, kod-tabanlı değerlendirme yapmak için Tablo 1'de görülen kalite modellerinin hepsinin ortak olarak önerdiği tüm öznitelikler için uygulanmaya çalışılacaktır. Ayrıca toplum-tabanlı değerlendirme yapmak için açık kaynak yazılım ürünleri internet siteleri derinlemesine analiz edilip değerlendirme yapmak için yeni tarihsel veriler ve veri analiz yaklaşımları bulunmaya çalışılacaktır.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Şekil 1 .</head><label>1</label><figDesc>Açık kaynak yazılımı kullanımının yıllara göre değişimi Açık kaynak yazılım ürünlerinin popülerliği bu derece artmışken, ticari yazılımlarda olduğu gibi en büyük problem bu yazılım ürünlerini değerlendirme ve seçme iş-</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Tablo 4 .Tablo 5 .</head><label>45</label><figDesc>Metriklerin listesi ve kısaltmaları Siklomatik Karmaşıklık (CC) Sınıfın Ağırlıklı Metot Sayısı (WMC) Kalıtım Ağacının Derinliği (DIT) Sınıfın Tetiklediği Metot Sayısı (RFC) Alt Sınıf Sayısı (NOC) Açıklamaların Sayısı (NOS) Nesne Sınıfları Arasındaki Bağımlılık (CBO) Sınıf Açıklama Sıklığı (CCF) Metotların Uyum Eksikliği (LOC) İç İçe Döngü Sayısı (NNL) Kod-tabanlı değerlendirme sonuçları</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Şekil. 3 .</head><label>3</label><figDesc>Elektronik posta sayılarının yıllara göre değişimi Elektronik posta verilerinin Şekil 3'te gösterildiği sonuçları şu şekilde analiz edilmiştir: Apache Ant yazılım ürünü (2000 yılı) Apache Archiva yazılım ürününe (2006 yılı) göre daha eski bir üründür. Apache Ant ürünü üretildiği ilk yılda üreticiler arasındaki ürün hakkında teknik tartışmalar ve ürün ile ilgili eksiklikler içeren mesajlaşma sayısı yıllık 8.000 civarındadır. 2002 yılına gelindiğinde ürün ile ilgili teknik sıkıntılardan dolayı bu sayı 18.000 civarına çıkmıştır. 2002 yılından sonra bu mesajlaşma trafiği azalan bir tutum sergilemiş ve 2016 yıllarına geldiğimizde 150 civarına kadar düşmüştür. Görüldüğü gibi Apache Ant ürününün standart bir ürün haline gelmesi 16 yıllık bir süreç almıştır. Şu anda bile az da olsa ürünün eksiklikleri ve teknik tartışmalar devam etmektedir.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="4,137.03,196.07,336.24,187.44" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="8,125.75,160.31,344.88,234.24" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Tablo 1 .</head><label>1</label><figDesc>Boehm, McCall, FURPS, ISO 9126 ve Dromey'in kalite modelleri (ortak öznitelikler)</figDesc><table><row><cell>Kalite öznitelikleri</cell><cell>Boehm</cell><cell>McCall</cell><cell>FURPS</cell><cell>ISO 9126</cell><cell>Dromey</cell></row><row><cell>Verimlilik</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Tablo 6 .</head><label>6</label><figDesc>Hata (Bug) sayılarının karşılaştırılması 'de toplam hata sayılarının önem derecelerine göre dağılımları gösterilmiştir. Bulunan bu hata çeşitlerinin ürün üzerindeki etkileri farklı olacağından bu hatalara (En-gelleyici=5, Kritik= 4, Büyük= 3, Küçük=2 ve Önemsiz=1) önem sırasına göre ağırlık verilmiş ve bu hataların ürün üzerindeki etkisi ise şu şekilde hesaplanmıştır:</figDesc><table><row><cell cols="5">0 4 6 8 10 12 14 16 başarı oranı %86,13 olduğu görülmektedir. Apache Archiva ürününde ise toplamda 20 1.873 hatanın 1.654 tanesi çözülmüş ve başarı oranı Apache Ant yazılım ürününden 18 daha yeni bir ürün olmasına rağmen %88,30 çıkmıştır. Bu oran Apache Archiva ürü-nünün bulunan hataları çözmede daha başarılı olduğunu göstermiştir. Tablo 7. Bulunan hataların önem derecelerine göre dağılımları Engelleyici (Blocker) Kritik (Critical) Büyük (Major) Küçük (Minor) Önemsiz (Trivial) Mail sayıları (bin) Apache Ant %13 %14 %40 %31 %2 2 Apache Archiva %1 %5 %79 %14 %1</cell></row><row><cell>Tablo 7Apache Ant</cell><cell cols="3">yıllar : (13x5)+(14x4)+(40x3)+(31x2)+(2x1) = 305 Apache ANT Apache ARCHIVA</cell><cell>(1)</cell></row><row><cell>Apache Archiva</cell><cell cols="3">: (1x5)+(5x4)+(79x3)+(14x2)+(1x1) = 291</cell></row><row><cell></cell><cell>Toplam hata sayısı</cell><cell>Çözülen hata sayısı</cell><cell>Başarı oranı</cell></row><row><cell>Apache Ant</cell><cell>5.962</cell><cell>5.135</cell><cell>%86,13</cell></row><row><cell>Apache Archiva</cell><cell>1.873</cell><cell>1.654</cell><cell>%88,30</cell></row><row><cell cols="5">Tablo 6'da gösterilen problem raporlarının sonuçlarına göre Apache Ant yazılım</cell></row><row><cell cols="5">ürününün toplam hata (bug) sayısının 5.962 olduğu ve bunların 5.135 tanesinin çözül-</cell></row><row><cell cols="5">düğü görülmektedir. Bu sonuçlara göre bu ürünün hataların bulunup çözümlemesindeki</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<ptr target="https://en.wikipedia.org/wiki/Open-source_software" />
		<title level="m">Open-source software</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Kaynak</forename><surname>Tr Açık</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Platformu</forename><surname>Kod</surname></persName>
		</author>
		<ptr target="https://acik-kaynak.org.tr" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title/>
		<author>
			<persName><forename type="first">K</forename><surname>Noyes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><forename type="middle">S</forename><surname>Senior</surname></persName>
		</author>
		<author>
			<persName><surname>Correspondent</surname></persName>
		</author>
		<ptr target="http://www.pcworld.com/article/2035651/open-source-is-taking-over-the-software-world-survey-says.html" />
	</analytic>
	<monogr>
		<title level="j">PCWorld</title>
		<imprint>
			<date type="published" when="2013-04-17">Apr 17, 2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Quality Assurance of Open Source Components: Integrator Point of View</title>
		<author>
			<persName><forename type="first">P</forename><surname>Maki-Asiala</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Matinlassi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">30th Annual Int. Computer Software and Applications Conference</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Kamu Kurumları Tarafından Yazılım Satın Alma Sürecinde Kullanılacak Etkin Bir Yöntem Geliştirilmesi</title>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">F</forename><surname>Taytaş</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Gün</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Dinçer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Baştüzel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Tekin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 9th Turkish National Software Engineering Symposium</title>
				<meeting>of the 9th Turkish National Software Engineering Symposium<address><addrLine>Izmir, Turkey</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">An Empirical Study on Selection of Open Source Software-Preliminary Results</title>
		<author>
			<persName><forename type="first">O</forename><surname>Hauge</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Osterlie</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">F</forename><surname>Sorensen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Garea</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Emerging Trends in Free/Libre/Open Source Software Research and Development</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">A</forename><surname>Wheeler</surname></persName>
		</author>
		<ptr target="http://www.dwheeler.com/oss_fs_eval.html" />
		<title level="m">How to Evaluate Open Source Software/Free Software (OSS/FS) Programs</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Comparing Assessment Methodologies for Free/Open Source Software: OpenBRR and QSOS</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Deprez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Alexandre</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Int. Conference on Product Focused Software Process Improvement</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><surname>Qsos</surname></persName>
		</author>
		<ptr target="http://www.qsos.org" />
		<title level="m">Method for Qualification and Selection of Open Source Software (QSOS)</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<ptr target="http://www.openbrr.org" />
		<title level="m">Business Readiness Rating for Open Source</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">A Quality Model for Open Source Software Selection. in Advanced Language Processing and Web Information Technology</title>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">J</forename><surname>Sung</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">H</forename><surname>Kim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">Y</forename><surname>Rhew</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Sixth International Conference on</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A New Software Quality Model for Evaluating COTS Components</title>
		<author>
			<persName><forename type="first">A</forename><surname>Rawashdeh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Matalkah</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Computer Science</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="373" to="381" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">The SQO-OSS Quality Model: Measurement Based Open Source Software Evaluation</title>
		<author>
			<persName><forename type="first">I</forename><surname>Samoladas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Gausios</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Spinellis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Stamelos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Open Source Development, Communities And Quality</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="237" to="248" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<ptr target="https://scitools.com/build-notes/" />
		<title level="m">Scitools | Build Notes</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<author>
			<persName><forename type="first">U</forename><surname>Erdemir</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Tekin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Buzluca</surname></persName>
		</author>
		<title level="m">Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu</title>
				<meeting><address><addrLine>İstanbul</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>Nesne Yönetimli Yazılım Metrikleri ve Yazılım Kalitesi</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Nesne Yönelimli Tasarım Metrikleri ve Kalite Özellikleriyle İlişkisi</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">H</forename><surname>Calp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Arıcı</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Politeknik Dergisi</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">1</biblScope>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">A metrics suite for object oriented design</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">R</forename><surname>Chidamber</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">F</forename><surname>Kemerer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="476" to="493" />
			<date type="published" when="1994">1994</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Two case studies of open source software development: Apache and Mozilla</title>
		<author>
			<persName><forename type="first">A</forename><surname>Mockus</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">T</forename><surname>Fielding</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Herbsleb</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Software Engineering and Methodology</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="309" to="346" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
