=Paper=
{{Paper
|id=Vol-1483/17_Bildiri
|storemode=property
|title=Kamu Kurumları Tarafından Hazır Ticari Yazılım Seçiminde Kullanılacak DAR Tabanlı Bir Yöntem
|pdfUrl=https://ceur-ws.org/Vol-1483/17_Bildiri.pdf
|volume=Vol-1483
|dblpUrl=https://dblp.org/rec/conf/uyms/TaytasGBTD15
}}
==Kamu Kurumları Tarafından Hazır Ticari Yazılım Seçiminde Kullanılacak DAR Tabanlı Bir Yöntem==
Kamu Kurumları Tarafından Yazılım Satın Alma Sürecinde Kullanılacak Etkin Bir Yöntem Geliştirilmesi Emine Firuze TAYTAŞ, Mehmet GÜN, Kıvanç DİNÇER, Simge BAŞTÜZEL, Buse TEKİN Yazılım Mühendisliği Araştırma Grubu (HUSE) Bilgisayar Mühendisliği Bölümü, Hacettepe Üniversitesi, Ankara, Türkiye kivanc.dincer@hacettepe.edu.tr Özet. Kamu kurumları hazır ticari yazılım ürünleri satın alırken emsal ürünler arasında genelde sadece fonksiyonların ve satış fiyatının göz önüne alındığı ihalelere çıkmaktadırlar. Halbuki bir yazılımın fonksiyonel olmayan gereksinimleri, çoğu zaman fayda maliyet analizinde ve toplam edinim maliyetinde fonksiyonel gereksinimlerine baskın gelmektedir. Bu bildiride nitelikli (kaliteli) ve toplam edinim maliyeti düşük bir ürün seçilebilmesi için, satın alma sürecinde teknik puanlamaya dahil edilmesi önerilen fonksiyonel olmayan bazı özelliklere ve bunların müşteri kurum tarafından nasıl değerlendirebileceğine vurgu yapılmıştır. Mevcut literatürde bu özelliklere ilişkin değerlendirme kriterlerinin çoğunlukla geliştirici perspektifinden sunulduğu görülmektedir. Burada müşterinin kolayca vakıf olamayacağı bu tür kriterler yerine, müşteri tarafından değerlendirilebilecek kriterler tanımlanmıştır. CMMI (Capability Maturity Model Integration) modelinde yer alan DAR (Decision Analysis and Resolution) sürecini esas alan ve bahsi geçen kriterleri kullanan etkin bir değerlendirme yöntemi önerilmiştir. Yöntemin kullanımını göstermek üzere, anonim bir kamu kurumu tarafından iki farklı hazır ticari yazılım arasında bu yöntem kullanılarak yapılan seçim süreci vaka çalışması olarak anlatılmıştır. Anahtar Kelimeler: Yazılım Mühendisliği, CMMI DAR Süreci, Yazılım Değerlendirme / Seçimi, Kamuda Yazılım Satın Alma Süreci, Vaka Çalışması Abstract. Public institutions generally consider only the features list and the price in tenders while acquiring commercial-of-the-shelf (COTS) software products. Yet non-functional requirements of software often dominate them in terms of cost-benefit analysis and total cost of ownership (TCO). In this paper, we emphasize the non-functional requirements that need to be included in the technical scoring/evaluation in order to select a quality product with low TCO, and how the customer can evaluate those requirements. Existing literature pre- sents the evaluation criteria for non-functional requirements from the developer perspective. The required data for such evaluation is not usually available to the customer. We here define the criteria that the customer can really use for her 184 evaluation and propose an effective evaluation method based on DAR (Deci- sion Analysis and Resolution) Process in CMMI (Capability Maturity Model Integration.) To demonstrate the use of the proposed method, a case study is presented that shows the scoring of two COTS software by an anonymous pub- lic institution. Keywords: Software Engineering, CMMI DAR Process, Software Evalua- tion/Selection, Public Acquisition Process, Case Study 1 Giriş Günümüzde benzer fonksiyonlara haiz birçok alternatif hazır ticari yazılım çözümlerinin bulunması sebebiyle, özellikle kamu kurum ve kuruluşları satın alma mevzuatı gereği aradıkları fonksiyonları destekleyen en ucuz ürüne yönelmektedirler. Ancak eşdeğer gibi görünen farklı fiyat etiketine sahip yazılımlar aynı kalitede olmamakta ve çoğu zaman en ucuz alternatifin toplam edinim maliyeti uzun vadede emsallerinden daha yüksek olabilmektedir. En kaliteli ve toplam edinim maliyeti en düşük olan yazılımın seçilmesi için kullanılacak fonksiyonel olmayan gereksinimlerin değerlendirme kriterlerini ortaya koyan etkin bir yönteme ihtiyaç duyulmaktadır. Ancak mevcut literatür incelendiği zaman, bu tür kriterlerin nasıl değerlendirilebileceğini anlatan çalışmaların hep geliştirici perspektifinden yazıldığı görülmektedir. Müşterinin satın alma yaparken detaylarına vakıf olamayacağı bu tür kriterlere göre değerlendirme yapması mümkün gözükmemektedir. Bu bildiride, literatürdeki bu boşluk kısmen doldurulmaya çalışılacaktır. Bölüm 2’de seçtiğimiz dört fonksiyonel olmayan gereksinim ve bunların müşteri perspektifinden bir bakışla değerlendirme kriterleri tanımlanacaktır. Bölüm 3’te önerdiğimiz değerlendirme yöntemi, Bölüm 4’te ise bu yöntemin kullanıldığı bir vaka çalışması anlatılacaktır. Bildiri sonuç değerlendirmesiyle son bulacaktır. Tablo 1. Seçilen fonksiyonel olmayan özellikleri esas alan bazı yazılım kalite modelleri [11] Fonksiyonel Olmayan Gereksinimler McCall FURPS Dromey ISO ISO [17] [18] [19] 9126 25010 [20] [9] Bakım Yapılabilirlik (Maintainability) X X X X Güvenilirlik (Reliability) X X X X X Kullanılabilirlik (Usability) X X X X X Performans (Performance) X X X 2 Fonksiyonel Olmayan Özellikler ve Değerlendirme Kriterleri Miguel ve arkadaşları [11] yazılım ürünlerinin değerlendirmesine yönelik olarak yazılım kalite modelleriyle ilgili detaylı bir sistematik literatür araştırması yapmışlar ve bu modellerde kullanılan fonksiyonel olmayan özellikleri tanımlamışlardır. Bunlar arasından yukarıda belirtilen amaçlarımıza en yakın olan ve farklı modellerde (Tablo 185 1’de modellerin bir kısmı listelenmiştir) en çok tercih edilen fonksiyonel olmayan dört adet gereksinim bu çalışmada esas alınmıştır: Bakım yapılabilirlik, güvenilirlik, kullanılabilirlik ve performans. Müşteri kurumun belirlenen bu fonksiyonel olmayan özellikleri nasıl değerlendirmesi gerektiği konusundaki detaylar literatürdeki sınırlı sayıda yayına dayandırılarak belirlenmiş ve yazarların kendi tecrübeleriyle zenginleştirilmiştir. Bahsi geçen fonksiyonel olmayan gereksinimler ve değerlendirme kriterleri aşağıda verilmektedir. 2.1 Bakım Yapılabilirlik (Maintainability) IEEE 1219 standardına göre [12] yazılım bakımı (software maintenance) terimi şöyle tanımlanmaktadır: “Müşteriye teslimden sonra, hataları gidermek, performans ve diğer özellikleri iyileştirmek, ya da farklı bir ortama uyarlamak için yazılım ürününün değiştirilmesidir. ” Şekil 1. a) Bakım maliyetlerinin yıllara göre değişimi [14] b) Geliştirme ve bakım maliyetlerinin toplam maliyete oranları [13] Şekil 1.a'da yıllar geçtikçe yazılımın bakım maliyetinin tüm maliyet içindeki payının arttığı görülmektedir. Sağda ise 1976-1981 ve 1992-98 yılları arasındaki geliştirme maliyetleri ve teslim sonrasındaki bakım maliyetleri karşılaştırılmıştır. Buna göre yazılımın bakım maliyeti geliştirme maliyetinin 2-3 katına ulaşabilmektedir. Bu da en baştaki tezimizi, yani yazılım satın alırken sadece satın alma bedelinin esas alınamayacağını ve fonksiyonel olmayan bakım yapılabilirlik hususunun da dikkate alınması gerektiğini teyit etmektedir. Şekil 2'te görüldüğü üzere [10], bakım çalışmaları için harcanan zamanın %22'sini düzeltme/iyileştirmeler – hataların giderilmesi maksadıyla yapılan çalışmalar, %24'ünü uyarlamalar – ortamdaki değişiklik ve yeniliklere uyum sağlanması maksadıyla yapılan çalışmalar, %3'ünü önleyici bakım – yazılımın zamanla kalitesinin düşmesi karşısında yapılan ve yazılımın kalitesini arttırmaya yönelik çalışmalar, 186 %51'ini mükemmelleştirmeler – yazılıma yeni davranışlar ve özellikler kazandırılmasına yönelik çalışmalar oluşturmaktadır ki; bunlardan düzeltme/iyileştirmeler haricinde diğerleri normal garanti kapsamında ücretsiz yapılan faaliyetler değildir toplam ve satın alma maliyetine etki ederler. Şekil 2. Bakım çeşitleri için harcanan zaman oranları [10] Bir yazılımın bakım yapılabilir olup olmadığını değerlendirmek için, yazılımın geliştiricileri tarafından aşağıdaki kriterler kullanılabilir [2] : Yazılım paketini geliştirmede kullanılan kod kesimleri başka bir geliştirici tarafından anlaşılabilecek nitelikte midir? Yazılım paketi kaç adet modülden oluşmaktadır? Birbirinden bağımsız şekilde kurulum yapılabilecek kaç adet modül mevcuttur? Birbirinden bağımsız kod parçalarının ortalama uzunluğu (size) nedir? Farklı sunucular üzerinde dağıtılmış modüller mevcut mudur? Yazılım paketi geliştirilirken kullanılan platform ve programlama dili nedir? Ürün çalışırken değiştirilebilir (swappable) bileşenlere sahip mi? (Örneğin sistem bakıma girdiği takdirde kullanıcı programa erişebiliyor mu, bilgilerini görüntüleyebiliyor mu?) Müşteri açısından ise, yukarıdaki kriterler vakıf olunabilir ve kontrol edilebilir değildir. Müşteri kurum ancak aşağıdaki kriterlere bakarak ürünün bakım yapılabilirlik özellikleri değerlendirebilir: Ürün kullanımı sırasında teknik bir problem olduğu zaman teknik destek sağlanıyor mu? Sağlanıyorsa hangi şartlarda sağlanıyor? Örneğin şirkette veya müşterinin yerinde, ücretli/ücretsiz, telefonla destek var mı? Ürün muhtemel platform değişikliklerine uyum sağlar mı? Ürün değişen ortam koşullarına göre güncelleme desteği sağlıyor mu? Güncellemeler hangi sıklıkta yapılıyor? Destek portali var mı? Güncelleme tarihçesi vs. ilişkin portalde bilgi var mı? Güncellemeler profesyonel destek gerektiriyor mu? Ürün kurulum ve yeniden kurulum desteği var mı? Bu destek nasıl ve hangi şartlarda sağlanıyor? 187 Sistem üzerinde değişiklikler (bakım vb.) yapılırken sistemin çalışması bu durumdan etkileniyor mu? Yukarıdaki hususlar müşteri kurum tarafından ürünle ilgili fizibilite çalışması yapılırken dikkate alınmalıdır. Ürün alınırken de şartnamelere / sözleşmelere bu konuda değerlendirme yapabilmek için gerekli maddeler konulmalıdır. 2.2 Güvenilirlik (Reliability) IEEE’ye [3] göre güvenilirlik; bir bileşenin veya yazılımın belirli koşullar altında belirli zaman süreci içinde gerekli fonksiyonelliklerini ne kadar karşıladığıdır. Güvenilirlik kavramının önemini, örnek olarak bir yolcu uçağının yazılımında gerçekleşen çökme durumunun yol açabileceği olumsuz şartları düşünerek tahayyül edebiliriz. Ancak güvenilirliği değerlendirmek kolay bir iş değildir. Bazen yazılımların web siteleri güvenilirlik hakkında ipucu verebilmektedir. Web sitesinde verilen yazılımın geliştirilme ortamı ve durumu, yazılımın son kullanıcıların kullanımına hazır olup olmadığı gibi bilgiler alıcıya yazılımın güvenilirliğini ölçmede kısmen yol gösterebilir [7]. Aynı zamanda bir yazılımın güvenilirliği, üretimi sırasında ne kadar doğru ve yeterli test edildiği ile de direkt olarak alakalıdır. Güvenilirlik yazılımın nasıl kullanıldığıyla sıkı sıkıya ilişkilidir dolayısıyla güvenilirliği ölçmenin en etkin yolu onu gerçek kullanım ortamında kullanarak test etmektir [7]. Müşteri kendi ortamında yazılımı kurup belli bir süre gerçek verilerle, mevcut işleyişine paralel olarak; pilot uygulama yapmalıdır. Örneğin bir aylık bir pilot uygulama sonrasında temel olarak aşağıdaki sorular öne çıkmaktadır [3]: Yazılım tutarlı ve hatasız bir şekilde çalışabiliyor mu? Bir ay içerisinde yazılımda kaç adet hata yakalandı? Yazılım kendi içinde hata önleme ve çökme engelleme mekanizmalarına sahip mi? Bir ay içerisinde yazılımda kaç kere çökme oldu? Çökme durumlarının ne kadarında kurtarma işlemi sağlandı? Yazılım ne kadar sıklıkta çökme ve kayıplara sebep olmakta? Yazılım kendi içinde yedekleme ve geri yükleme mekanizmalarına sahip mi? Bazen de pilot uygulama yerine benzer bir başka bir müşterinin tecrübeleri değerlendirme yapmak için kullanılabilir. 2.3 Performans (Performance) Performans tasarım, kod ve çalıştırma ortamı gibi her türlü durumdan etkilenebilmektedir [6]. Performansı iyi düzeyde olmayan bir yazılıma yapılacak yatırım müşteri için kayıp olacaktır [5]. Sorgu tabanlı çalışan bir sistemde, kullanıcıların sorgu isteklerine çok geç dönebilen bir yazılım, kullanıcıları tatmin etmeyecektir. Bu sistemin bir bankacılık sistemi olduğu düşünülürse bu hususun önemi daha belirgin hale gelmektedir. 188 Bir yazılımın performansını değerlendirmede, müşteri perspektifinden bakıldığında, temel olarak şu kriterler öne çıkabilir: Sorgularda sistemin cevap süresi istenen seviyede mi? [5] Ortalama tepki zamanı beklentileri karşılıyor mu? Sistem en fazla kaç kullanıcıya hizmet verebilmektedir? Yazılımın gerektirdiği en az donanım gereksinimleri nelerdir? (Bunların maliyeti, yazılımın edinim maliyeti hesaplanırken göz önüne alınmalıdır.) 2.4 Kullanılabilirlik (Usability) Kullanılabilirlik bir yazılımın tercih edilmesinde başta gelen kalite nitelikleri arasında yer almaktadır. Bu nedenle kullanılabilirliğin doğru ve tutarlı ölçümü gerçekleştirilmelidir. Kullanılabilirlik kavramının derecesi kullanıcıdan kullanıcıya değişebilmektedir. Kullanılabilirlik şu bileşenlerin bir araya gelmesiyle oluşmaktadır: Öğrenilebilirlik (Learnability): İlk defa karşılaşılan bir programın ne kadar kolay anlaşılabildiğidir. Etkinlik (Efficiency): Anlaşılan bir programda verilen görevlerin ne kadar hızlı yapılabildiğidir. Hatırlanabilirlik (Memorability): Belirli süre kullanılmayan programlara geri dönüş yapıldığında ne düzeyde yeterli olduğudur. Buna göre bir yazılımın kullanılabilirliğini ölçmek için şu soruları yöneltebiliriz [15]: Yazılımın kullanımı sırasında kullanıcının yardıma ihtiyacı var mı? Bu yazılımın kullanılabilmesi için kullanıcıların belirli bir tecrübeye sahip olması gerekiyor mu? Gerekiyorsa ne kadar tecrübeli olmalıdır? Ürünün anlaşılmasını kolay kılacak bir dokümantasyon mevcut mu? Dokümantasyondaki bilgiler ne kadar anlaşılır? Dokümantasyon olmasa ürün kullanılabilir mi? Daha etkin kullanım için tasarımda değişiklik yapılabiliyor mu? Hata raporları kullanıcı tarafından kolaylıkla anlaşılabiliyor mu? Meydana gelen hatalardan hızlı ve kolay bir şekilde kurtulmak mümkün mü? Ürün kimlere hitap ediyor, hangi kesimden insanlar kullanıcı profilindedir? Ürün tecrübesiz veya tecrübesi az olan kullanıcı tarafından da benimsenecek şekilde geliştirilmiş midir? Ürün kullanıcı dostu mu? (Kullanıcı ara yüzündeki öğeler anlaşılır mı?) Ürün bir işlemi gerçekleştirmek için en az sayıda adımı içeriyor mu? Ürünün kullanımı belli bir süre geçtikten sonra hatırlanıyor mu? Kullanılabilirlik her müşteri için farklı olacağından ürünün kullanılabilirlik açısından puanlandırılması farklı gruplara göre ayrı ayrı gerçekleştirilebilir. 189 3 Değerlendirme Yöntemi CMMI’da [1] tanımlanan DAR sürecinin amacı, alternatifleri sistemli bir değerlendirme işlemine tabi tutarak en uygun olanını seçmektir. Önerilen yöntem temel olarak müşteri kurumun alternatif yazılımlardan birini seçmek için DAR sürecini kullanmasını kolaylaştırmayı ve bunu teknik puanlamaya dahil etmesini hedeflemektedir. Şekil 3. Değerlendirmede kullanılacak bilgi edinme yöntemleri DAR sürecini esas alan yöntemin adımları [1] aşağıda verilmiştir: 1. Alternatifleri değerlendirmek için kriterlerin tanımlanması: Kaliteli ve toplam edinim maliyeti düşük olan ürünü seçmek için Bölüm 2’de anlatılan şekilde dört fonksiyonel olmayan özellik ve ağırlıkları belirlenmiştir. Bunların değerlendirme kriterleri ise Bölüm 3’te tanımlandığı gibi belirlenmiştir. Kriterlerin hepsi aynı varsayılan ağırlığa sahiptir. 2. Alternatiflerin belirlenmesi: Değerlendirilecek yazılım ürün alternatifleri müşteri kurum tarafından seçilir. 3. Değerlendirme bilgi edinme yöntem(ler)inin seçilmesi: Her bir kriter değerlendirilirken kullanılabilecek bilgi edinme yöntemleri Şekil 3’te verilmiştir. Bunlardan uygun olanlar müşteri kurum tarafından seçilir. 4. Alternatiflerin puanlanması: Alternatiflere müşteri kurum tarafından, kurumun ihtiyaç ve beklentileri göz önüne alınarak, 1 ile 5 arası puanlar verilir. 5. Seçim kararının verilmesi: Sonuçta en yüksek puan alan alternatifin kurumun ihtiyacını en iyi şekilde karşılayan olması ve tercih edilmesi beklenir. Önerilen yöntem temel olarak bu çalışma kapsamında geliştirilen ve Tablo 2’de verilen puanlama tablosunun bir kısmının hazır olarak sunulmasına diğer kısımlarının da müşteri kurum tarafından uygun şekilde doldurulması için rehberlik sağlanmasına dayanmaktadır. Bu tablo Özellikler ve Değerlendirme Kriterleri, Beklentiler, 190 Değerlendirme Yöntemleri, Ağırlık, Puan ve Toplam Puan sütunlarından oluşmaktadır. Özellikler ve Değerlendirme Kriterleri sütununda süreçte kullanacağımız dört adet fonksiyonel olmayan özellik ve bunların her birinin müşteri kurum tarafından değerlendirmesine yardımcı olacak kriterler listelenmiştir. Her bir özellik aynı zamanda bir sonraki sütunda yer alan kriterleri gruplandırmaktadır. Beklentiler sütunu, müşterinin kontrol listesindeki sorulara karşılık asgari veya azami düzeyde beklentilerini belirtebileceği alanı belirtmektedir. Mesela “Sistem en fazla kaç kullanıcıya hizmet verebilmektedir? ” sorusuna karşılık beklenti bölümüne “asgari 500, azami 1500” gibi bir ifade yazılabilir. Bu ifade ilgili sorunun sonraki aşamada 1 (en kötü) – 5 (en iyi) olarak puanlanmasında yol gösterici olacaktır. Değerlendirme (bilgi edinme) yöntemleri sütunu müşteri kurumun ilgili kriter hakkında bilgi edinmek istediği zaman kullanabileceği yöntemlerden (Şekil 3) bir veya daha fazlasını sırasıyla seçmesini gerektirir. Ağırlık sütununda ise puanlamada kullanılacak olan ve fonksiyonel olmayan özelliklere göre belirlenen katsayılar yazarlar tarafından önceden belirlenmiş olarak verilmektedir. Bu ağırlıklar müşterinin ürün seçiminde hangi kriterlerin daha ağır bastığı gösterir. Bu katsayılar belirlenirken toplam satın alma maliyetinin düşük olması amacıyla bakım yapılabilirlik özelliğine 0,60/1,00; ürün kalitesi grubundaki özelliklere ise toplamda 0,40/1,00 ağırlık verilmiştir. Bu ikinci gruptaki özelliklere yazılım kalite modellerindeki kullanımları [11] göz önünde bulundurularak alt ağırlıklar verilmiştir. Müşteri kurumun biraz tecrübe kazandıktan sonra bu ağırlıkları satın alma hedeflerine göre her bir seferinde değiştirmesi mümkündür. Puan sütununda müşteri kurumun kriterlere göre beklentilerini de göz önüne alarak “Alternatif A” ve “Alternatif B” yazılımlarını puanlaması beklenmektedir. Örneğin “Yazılımın dokümantasyon desteği var mı?” sorusuna varsa 4 veya 5 yoksa 1 şeklinde puan verilebilir. Dokümanın kalitesi puanı belirler. Eğer bir kriter değerlendirme için önemli görülmüyorsa, buna puan verilmez. Ağırlıklı Puan sütunu ise kriterler için ayrı ağırlık verildiyse bunun sonucunu gösterir, aksi halde puanın 5’e bölümüyle elde edilir. Kriterlere verilen ağırlıklı puanlar toplandıktan sonra bu toplam ilgili özelliğin ağırlık sütununda yer alan katsayı ile çarpılarak “Kategori Toplam Puanı” bulunur. Bunların toplamı ise ürünün toplam değerlendirme puanını verir. 191 Şekil 4. Değerlendirilecek ürünlerin web sitelerinden birer kesit 4 Vaka Çalışması Bu kısımda vaka çalışması olarak anonim bir kamu kurumu tarafından sertifika programlarıyla ilgili öğrenci işleri otomasyonu için kullanılabilecek hazır ticari yazılımların değerlendirilmesinde önerilen yöntemin nasıl kullanıldığı anlatılacaktır. Değerlendirilen yazılımlardan birincisi Opensis [4] ikincisi ise Fenix [16] isimli ticari ürünlerdir. İlk incelemede fonksiyonlarına dayalı olarak her iki ürünün de kurumun ihtiyacını karşılayabileceği değerlendirilmiştir, ilk aşama değerlendirme ürünlerin web sitelerinde (Şekil 4) yer alan bilgilerden faydalanılarak yapılmıştır. Yöntemin nasıl çalıştığını açıklamak için değerlendirme tablosunun web sitesinde bulunan bilgiler yorumlandıktan sonraki durumu Tablo 2’de verilmiştir. Her kriterle ilgili puanlamaya esas olan gerekçeler kontrol edilebilirliğini ve objektifliği sağlamak açısından tabloyla birlikte ayrıca verilmelidir. Burada bazı değerlendirmelerimizi özet olarak vereceğiz. Bakım yapılabilirlik kategorisinde; Opensis ürününün ücretsiz destek portali olmasına rağmen Fenix’te böyle bir portal yoktur. Opensis 5, Fenix 1 puan almıştır. (1. ve 2. soru) Opensis ürünün Agile yöntemle geliştirilmesi iyileştirmelerin sıklıkla yapıldığına işarettir. Fenix’te ise güncelleştirme durumu hakkında detaylı bilgi bulunmamaktadır. Opensis 5, Fenix 3 puan almıştır. (4. soru) Opensis ürününün son versiyonu ve yayınlanma tarihi sitede verilmiştir. Güncellemelerin tarihçesi ile ilgili olarak Fenix’te detaylı bilgi olmadığından Opensis 5, Fenix 1 puan almıştır. (6. soru) Ürünlerle ilgili bazı istisnalar da mevcuttur. Mesela Opensis yazılımı cloud ortamına yedek alabilmekte iken Fenix bunu yapamamaktadır. Bu özellik beklentiler arasında belirtilmediği için her iki yazılım da bu kriterden puan almamıştır. (10. soru) 192 Güvenilirlik kategorisinde; Her iki ürün de online olarak demo modunda çalışma imkanı vermektedir. Dolayısıyla 5 puan verilmiştir. (11. Soru) İki yazılımda da hata engelleme ve çökme mekanizmaları ile ilgili bilgi bulunmadığından ve iki yazılımdan da bu mekanizmaların bulunması beklendiğinden ilgili soruya iki yazılım için de 1 puan verilmiştir. (12.soru) Ürünün kullanıcıları community sekmesinde listelenmektedir. Böylece değerlendirme yönteminde yer alan “başka kullanıcılara sor” seçeneğine, müşteri kolayca başvurabilecektir. Performans kategorisinde; Yapılan pilot uygulamalarda sistemin sorgu süreleri beklentiye göre kıyaslanmıştır. Fenix daha tatmin edici bir sürede çalışabildiğinden Opensis’e 3, Fenix’e 4 puan verilmiştir. (14. soru) Yine aynı pilot uygulamalarda yazılımların girdilere karşı verdiği tepki süreleri beklentiye aynı seviyede yakın olduğundan iki yazılıma da tepki süreleri ile ilgili soru için 4 puan verilmiştir. (15. soru) 193 Tablo 2. Alternatif Ürün Değerlendirme Tablosu Fenix’in veritabanı için, sunucu üzerinde asgari 20 GB yer ayrılması gerektiği bilgisi verilmiştir. Diğer hususlarda bilgi yeterli değildir. Opensis için ise bu konuda bilgi edinilememiştir. Dolayısıyla Opensis’e 1, Felix’e 3 puan verilmiştir. (17. soru) Fenix’in günlük desteklediği ortalama işlem sayısının 731.296 işlem/gün olduğu belirtilmiştir. Ancak bu konuda bir beklenti belirtilmediğinden puan verilmemiştir. 194 Kullanılabilirlik kategorisinde; Fenix ürününün sitesi incelendiğinde daha çok yazılım geliştiriciler için bir framework niteliğinde olduğu yani Fenix’in programlama tecrübesi gerektireceği gözlemlenmiştir. Bu yüzden ürünün kullanımı programlama tecrübesi olmayan biri için kolay değildir. Opensis'te ise tecrübesiz kullanıcılar daha uygun bir ortam sunmaktadır. (19. soru) İki ürünün de çoklu dil desteği mevcuttur. Tam puan verilmiştir. (21. soru) İki ürünün de web siteleri incelendiğinde ürün kullanımını anlaşılabilir ve kolay kılacak yeterli dokümantasyon mevcuttur. (22. soru) Geliştirilen yöntemle yazılımlara müşteri kurum tarafından verilen puanlardan elde edilen sonuçlar değerlendirilerek yazılımlar karşılaştırılmıştır. Bu aşamada Opensis ürününün daha yüksek puan alması sebebiyle müşteri beklentilerini daha iyi karşılayacağı anlaşılmıştır. Bu değerlendirme iteratif olarak farklı bilgi kaynaklarından edinilen bilgilerin tabloya yansıtılması suretiyle devam ettirilebilir. Her aşamanın sonuçlarının izlenebilir olması seçim sürecine önemli bir katkı sağlar. Satın alma sürecinde ise bu tablo seçilen fonksiyonel olmayan özelliklerin teknik puanlamasına esas olarak kabul edilecek ve istekli firmaların cevaplarında bu kriterleri adreslemesi istenecektir. 5 Sonuç Literatürde bir yazılımın fonksiyonel olmayan özelliklerine karşılık gelen kriterlerin hep geliştirici perspektifiyle açıklandığı anlaşılmıştır. Bu çalışmada müşteri açısından değerlendirme yapılmasını sağlayan hazır ticari yazılım seçme işini kolaylaştıracak DAR tabanlı bir yöntem tanımlanmıştır. Müşteri kuruma bir yazılım ürününü değerlendirirken kolayca kullanabileceği bu yöntem kriterlerden oluşan kontrol listelerini, değerlendirme yöntemlerini ve puanlama usullerini de içermektedir. Önerilen yöntem örnek iki yazılımın karşılaştırılması için kullanılmış ve olumlu sonuçlar verdiği görülmüştür. Gelecekte daha da geliştirilmesi için çalışma yapılması planlanmaktadır. Kaynaklar [1] M. B. Chrissis, M. Konrad, and S. Shrum, CMMI for Development: Guidelines for Process Integration and Product Improvement. Addison-Wesley Professional; SEI Series in Software Engineering; 3rd edition, 2011. [2] Crouch, Steve (2015). Developing Maintainable Software, URL: http://software.ac.uk/resources/guides/developing-maintainable-software 195 [3] Dr. Rosenberg, L., Hammer, T., & Shaw, J. (1998). Software metrics and reliability. In Proceedings of the 9th International Symposium on Software Reliability Engi- neering (pp. 1–8). [4] OPENSIS, School Management Software, URL: http://opensis.com/ [5] Williams, L. G., Ph, D., & Smith, C. U. (1998). Performance evaluation of software architectures. Proceedings of the 1st International Workshop on Software and Per- formance, (303), 164–177. doi:10.1145/287318.287353 [6] Woodside, M., Franks, G., & Petriu, D. C. (2007). The Future of Software Per- formance Engineering. In Future of Software Engineering (FOSE ’07) (pp. 171– 187). doi:10.1109/FOSE.2007.32 [7] Wheeler, D. (2005). How to evaluate open source software/free software (OSS/FS) programs. URL: Http://www. Dwheeler. Com/oss_fs_eval. Html, 1–24. Retrieved from http://www.dwheeler.com/oss_fs_eval.html [8] Lyu, M. R. (1998). Design, testing, and evaluation techniques for software reliability engineering. In Euromicro Conference, 1998. Proceedings. 24th (Vol. 2, p. XXXIX – XXLVI vol.2). doi:10.1109/EURMIC.1998.708059 [9] ISO/ IEC CD 25010. (2008). Software Engineering: Software Product Quality Requirements and Evaluation (SQuaRE) Quality Model and guide. International Organization for Standardization, Geneva, Switzerland. [10] What is System Maintenance?, frontsources.com, FrontSources Information Tech, URL: http://www.frontsources.com/sysMain.html [11] J. P. Miguel, D. Mauricio, and G. Rodríguez, “A Review of Software Quality Models for the Evaluation of Software Products,” Int. J. Softw. Eng. Appl., vol. 5, no. 6, pp. 31–53, 2014. [12] Wikipedia, IEEE 1219, URL: https://en.wikipedia.org/wiki/IEEE_1219 [13] Object Oriented And Classical Software Engineering 8th Edition, Stephen R. Schach, Part 1.3.2 The Importance of Postdelivery Maintenance, pp. 11 [14] Models, S. L. (2010). Object-Oriented and Classical Software Engineering Lifecycle. Development, 1–38. doi:10.1036/0072554509 [15] Schneider, Daniel K. (2011), Usability and User Experience Surveys, URL: http://edutechwiki.unige.ch/en/Usability_and_user_experience_surveys [16] FENIXEDU, What is Fenixedu?, URL: http://fenixedu.org/ [17] Dubey, S.K & Soumi Ghosh & Ajay Rana. (2012). “Comparison of Software Quality Models: An Analytical Approach,” International Journal of Emerging Technology and Advanced Engineering, Volume 2, Issue 2, pp 111-119 [18] Grady, R. B. (1992). Practical Software Metrics for Project Management and Pro- cess Improvement. Prentice Hall, Englewood Cliffs, NJ, USA [19] Dromey, R. G. (1995). “A model for software product quality,” IEEE Transactions on Software Engineering, 21:146-162 [20] ISO/IEC IS 9126-1. (2001). Software Engineering - Product Quality – Part 1: Quality Model. International Organization for Standardization, Geneva, Switzerland. 196