Yazılım Mimarisinin Kalite Gereksinimleri: Yazılım Güvenilirliği



Benzer belgeler
Yazılım Mimarisinin Kalite Gereksinimleri: Yazılım Güvenilirliği

Eş Zamanlı Yazılımlarda Güvenilirlik Analizi : Literatür Taraması

KONYA İLİ SICAKLIK VERİLERİNİN ÇİFTDOĞRUSAL ZAMAN SERİSİ MODELİ İLE MODELLENMESİ

Metasezgisel Optimizasyon Tekniklerine Spor Tabanlı Yeni Bir Yaklaşım: Lig Şampiyonası Algoritması

Türkiye de Kırmızı Et Üretiminin Box-Jenkins Yöntemiyle Modellenmesi ve Üretim Projeksiyonu

Box-Jenkıns Modelleri ile Aylık Döviz Kuru Tahmini Üzerine Bir Uygulama

ELEKTRİK DAĞITIM BÖLGELERİNDE UYGULANACAK FİYAT EŞİTLEME MEKANİZMASI HAKKINDA TEBLİĞ

TÜRKİYE NÜFUSU İÇİN STOKASTİK ÖLÜMLÜLÜK MODELLERİ

YAPAY SİNİR AĞLARI İLE DOĞALGAZ TÜKETİM TAHMİNİ

4) Seyrek rastlanılan bir hastalık için belli bir zaman araalığında bu hastalığa yakalananların sayısının gözlenmesi,

NL lmk : NU t k : Y t lmk : TEF t : E ijmlk : Q t mlk :

Öğr. Gör. Selçuk ŞİMŞEK İlköğretim Bölümü Sınıf Öğretmenliği Ana Bilim Dalı Eğitim Fakültesi.Pamukkale Üniversitesi

White ın Heteroskedisite Tutarlı Kovaryans Matrisi Tahmini Yoluyla Heteroskedasite Altında Model Tahmini

Bilgisayar Mühendisliğinin Temelleri (COMPE 100) Ders Detayları

Yazılım Ölçümü: Genel Bir Bakış

Güneş Enerjisi ve Isı Pompası Destekli IsıtmaKurutma Sisteminin Modellenmesi. Modeling of Heating-Drying System Assisted Solar Energy and Heat Pump

Makine Öğrenmesi 8. hafta

GEFRAN PID KONTROL CİHAZLARI

PNÖMATİK TAŞIMA SİSTEMLERİ VE OPTİMUM TAŞIMA HIZININ BELİRLENMESİNDE KULLANILAN EŞİTLİKLER

BELİRSİZ FİYAT VE TALEP KOŞULLARI ALTINDA SATINALMA POLİTİKALARI. Ercan ŞENYİĞİT*

İnönü Bulvarı No:27, 06490, Bahçelievler / Ankara-Türkiye hasan.tiryaki@euas.gov.tr, mehmet.bulut@euas.gov.tr. ikocaarslan@kku.edu.

DEĞİŞKENLER ARASINDAKİ GECİKMELİ İLİŞKİLER: Dağıtılmış Gecikme ve Otoregresiv Modeller

BANKA KREDİ PORTFÖYLERİNİN YÖNETİMİNDE ÖDEMEME RİSKİ ANALİZİ: KALMAN FİLTRESİNE DAYANAN ALTERNATİF BİR YÖNTEM ÖNERİSİ

Olasılık ve İstatistik (IE 220) Ders Detayları

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Dolar Kurundaki Günlük Hareketler Üzerine Bazı Gözlemler

The Nonlinear Models with Measurement Error and Least Squares Estimation

DOĞAL GAZ DEPOLAMA ġġrketlerġ ĠÇĠN TARĠFE HESAPLAMA USUL VE ESASLARI. BĠRĠNCĠ KISIM Amaç, Kapsam, Dayanak, Tanımlar ve Ġstenecek Veriler

HOMOJEN OLMAYAN POISSON SÜRECİ: BİR MADEN MAKİNESİNİN GÜVENİLİRLİK ANALİZİ

Markov Zinciri Monte Carlo Yaklaşımı. Aktüeryal Uygulamaları

Araştırma ve Para Politikası Genel Müdürlüğü Çalışma Tebliğ No:09/5

Yazılım Gereksinimleri Mühendisliği (SE 221) Ders Detayları

İŞSİZLİK VE İNTİHAR İLİŞKİSİ: VAR ANALİZİ Ferhat TOPBAŞ *

Bilgisayarda Programlama. Temel Kavramlar

İÇİNDEKİLER GİRİŞ. 1. BÖLÜM 1: ETKİNLİK ÖLÇÜMLERİ ve TANIMLAR Kavramlar ve Metodoloji... 2

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

GÜÇ SİSTEMLERİNDE KADEME DEĞİŞTİRİCİ TRANSFORMATÖRLERİN KAOTİK OSİLASYONLARI

YZM 2108 Yazılım Mimarisi ve Tasarımı

Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri. Ali Özzeybek M. Devrim Tokcan Murat Tuncer

Bölüm V Darbe Kod Modülasyonu

F frame prop acl. F frame. 1.1 Dur ve bekle (stop & wait) kullanım oranı. 1 = olarak ifade edilebilecektir. a = dersek; L R.

Türkiye Cumhuriyet Merkez Bankası Sayı: / 24 Mayıs 2010 EKONOMİ NOTLARI

İç kontrol; idarenin amaçlarına, belirlenmiş politikalara ve mevzuata uygun olarak faaliyetlerin etkili, ekonomik ve verimli bir şekilde

Yazılım Mühendisliği 1

EŞANLI DENKLEMLİ MODELLER

ALLIANZ YAŞAM VE EMEKLİLİK A.Ş. KOÇ İŞTİRAK ENDEKSİ EMEKLİLİK YATIRIM FONU İÇTÜZÜĞÜ

DERS BİLGİ FORMU. IV Türkçe Zorunlu Ders. Haftalık. Ders. Okul Eğitimi Süresi. Saati

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI TERS PERSPEKTİF DÖNÜŞÜM İLE YÜZEY DOKUSU ÜRETİMİ

Yazılım Mühendisliğine Giriş (SE 112) Ders Detayları

Dağıtılmış Gecikme ve Otoregresiv Modeller. Mehmet Vedat PAZARLIOĞLU

Bölüm 3 HAREKETLİ ORTALAMALAR VE DÜZLEŞTİRME YÖNTEMLERİ

OTOKORELASYON OTOKORELASYON

YAPAY SİNİR AĞLARI VE ARIMA MODELLERİNİN MELEZ YAKLAŞIMI İLE ZAMAN SERİLERİNDE ÖNGÖRÜ

Veritabanı Tasarım ve Yönetimi (COMPE 341) Ders Detayları

BİRİM KÖK TESTLERİNDE YAPISAL KIRILMA ZAMANININ İÇSEL OLARAK BELİRLENMESİ PROBLEMİ: ALTERNATİF YAKLAŞIMLARIN PERFORMANSLARI

Yenilenebilir Enerji Kaynaklarına Geçiş Sürecinin Planlanmasında Doğrusal En İyileme Tekniğinin Kullanılması

Türkiye Ekonomisinde Enerji Tüketimi ve Ekonomik Büyüme

Yazılım Mühendisliğinin Temelleri (SE 100) Ders Detayları

MIT Açık Ders Malzemesi İstatistiksel Mekanik II: Alanların İstatistiksel Fiziği 2008 Bahar

İSTATİSTİK ANABİLİM DALI

DEĞİŞKENLER ARASINDAKİ GECİKMELİ İLİŞKİLER: Dağıtılmış Gecikme ve Otoregresiv Modeller

Gereksinim Mühendisliği (SE 560) Ders Detayları

FİNANSAL PİYASA VOLATİLİTESİ VE EKONOMİ

EKLER. EK 12UY0106-5/A1-2: Yeterlilik Biriminin Ölçme ve Değerlendirmesinde Kullanılacak Kontrol Listesi

C L A S S N O T E S SİNYALLER. Sinyaller & Sistemler Sinyaller Dr.Aşkın Demirkol

TÜSİAD - KOÇ ÜNİVERSİTESİ EKONOMİK ARAŞTIRMA FORUMU KONFERANSI. Zafer A. YAVAN - TÜSİAD Yasemin TÜRKER KAYA - BDDK

Giriş: Temel Adımlar YAZILIM GELİŞTİRME YAŞAM DÖNGÜSÜ. Belirtim Yöntemleri. Belirtim Yöntemleri

Yazılım Proje Yönetimi (SE 320) Ders Detayları

Yazılım Kalite Yönetimi (SE 554) Ders Detayları

Türkiye nin Kabuklu Fındık Üretiminde Üretim-Fiyat İlişkisinin Koyck Yaklaşımı İle Analizi

DEMĐRYOLLARINDA TOPLAM FAKTÖR ÜRETĐM ANALĐZĐ

Teknolojik bir değişiklik veya üretim arttırıcı bir yatırımın sonucunda ihracatta, üretim miktarında vs. önemli artışlar olabilir.


Şeyma Çalışkan Çavdar Yildiz Technical University ISSN : scavdar@yildiz.edu.tr Istanbul-Turkey

RİSK ANALİZİ VE AKTÜERYAL MODELLEME MAYIS 2015

MEH535 Örüntü Tanıma

Sistem Modelleme ve Simülasyon (SE 360) Ders Detayları

SORU SETİ 02 (REVİZE EDİLDİ) FİNAL KONULARI

Yazılım Mimarisi (SE 322) Ders Detayları

İşaret ve Sistemler. Ders 9: Sistemlere Giriş

İnersiyal Algılayıcı Tabanlı Hareket Yakalama Inertial Sensor Based Motion Capture

1) Çelik Çatı Taşıyıcı Sisteminin Geometrik Özelliklerinin Belirlenmesi

YER ALTI DOĞAL GAZ DEPOLAMA ŞİRKETLERİ İÇİN TARİFE HESAPLAMA USUL VE ESASLARI. BİRİNCİ KISIM Amaç, Kapsam, Dayanak, Tanımlar ve İstenecek Veriler

Hemşirelerin Kendini Gerçekleştirme Düzeyleri ve Etkileyen Etmenler

Finansal İstikrarın Bankacılık Sisteminin Borç Verme Politikaları Üzerindeki Etkisi: 2008 Küresel Krizi Çerçevesinde Türkiye Üzerine Bir İnceleme

Bilgisayar Oyunları ve Simulasyon (COMPE 376) Ders Detayları

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Rassal Modeller (IE 324) Ders Detayları

ANALOG ELEKTRONİK - II

PRATİK TASARIM METODLARIYLA DÜŞÜRÜCÜ TİP DA-DA DÖNÜŞTÜRÜCÜNÜN GELİŞTİRİLMESİ The Development of DC-DC Buck Converter with Practical Design Methods

Ç A L I Ş M A N O T L A R I. Haberleşme Teknolojileri Dr.Aşkın Demirkol İşaret tipleri

Türkiye nin Sera Gazı Emisyonlarının İzlenmesine Destek için Teknik Yardım Projesi

Yazılım İnşası ve Evrimi (SE 556) Ders Detayları

Ulaştırma Sektöründe Riskten Korunma Stratejileri Küresel Gelişmeler ve Yeni Trendler SMM Bilişim. Tüm Hakları Saklıdır.

ELM201 ELEKTRONİK-I DERSİ LABORATUAR FÖYÜ

FEN BİLGİSİ ÖĞRETMEN ADAYLARININ ÇÖZELTİLER KİMYASINI ÖĞRENMELERİNE İŞBİRLİKLİ ÖĞRENME YÖNTEMİNİN ETKİLERİNİN ARAŞTIRILMASI

C Dersleri Bölüm 3 : Program akışı

FİNANSAL BİLGİ MANİPÜLASYONUNUN TESPİTİNDE YAPAY SİNİR AĞI MODELİNİN KULLANIMI

A. Regresyon Katsayılarında Yapısal Kırılma Testleri

Transkript:

Yazılım Mimarisinin Kalie Gereksinimleri: Yazılım Güvenilirliği Kaan Kurel İzmir Ekonomi Üniversiesi kaan.kurel@ieu.edu.r Şaban Eren Yaşar Üniversiesi saban.eren@yasar.edu.r Özeçe Yazılım güvenilirliği pek çok açıdan yazılım gelişirmede önemli hale gelmekedir. Bu çalışma yazılımcıları yazılım güvenilirliği açısından emel konularda bilgilendirmeyi ve uygulama cesarei kazandırmayı hedeflemekedir. Anahar Sözcükler : Yazılım Güvenilirliği, Yazılım Kaliesi Qualiy Requiremens for Sofware Archiecure: Sofware Reliabiliy Absrac Qualiy Requiremens for Sofware Archiecure: Sofware Reliabiliy. The aim of his paper is o give he reader a beer undersanding of he imporance of sofware reliabiliy. Furhermore i focuses on he basics of sofware reliabiliy, predicion and modeling reliabiliy, collecion of daa and also he relaionship beween he sofware qualiy and sofware reliabiliy. Keywords : Sofware Reliabiliy, Sofware Qualiy 1 Giriş Sayısal abanlı bilgisayarların yarım yüzyıllık varlıklarının sonucunda, hemen herkes doğrudan veya dolaylı olarak bilgisayar sisemleri ile ilişki halindedir. Dünya üzerindeki pek çok faaliyein başarı ile sürmesi, bilgisayarlara ve onun en önemli parçasından biri olan yazılımlara bağlıdır. Donanım ve yazılım ürünleri, başa finans, haberleşme ve ulaşım sisemleri, enerji, sağlık, askeri ve kamu alanları olmak üzere pek çok alanda hayaımıza girmiş ve belirleyici bir konum kazanmışır. Bu durum sisemlere olan bağımlılığı arırmaka ve sürdürülmesini gerekli kılmakadır. 21. yüzyılın iş oramında ve sosyal hayaında yazılım ürünlerine olan alep ararken, yazılım ürünleri de giikçe çeşilenmeke ve karmaşıklaşmakadır. Günümüzde yazılım gelişirme oramı, heerojen iş oramının beklenilerini karşılamak üzere; inerne oramına servis veren dağıık sisemlerden, farklı oramlarda yazılmış, farklı plaformlarda çalışan ara programlardan ve birbirinden bağımsız çalışan çok sayıdaki yazılımdan oluşmakadır. Bu dinamikler nedeniyle, yazılım sisemlerinin kalie fakörüne dikka edilerek üreilmesi, dünya üzerindeki faaliyelerin sürekliliği ve ekonomikliği açısından kriik öneme sahipir. Yazılım endüsrisinin karakerisik özelliği, hızla ve sürekli olarak gelişmesi ve değişmesinin yanı sıra, dünya ölçeğinde pek çok başarısız uyarlamaya sahne olmasıdır. Yazılımın beklenen kalie düzeyinde olmamasının ve dolayısıyla da müşeri beklenilerini kesin ve ne bir şekilde karşılayamamasının neden olduğu maliyeler, ürüne ve ürünü üreen şirkein başarısına yönelik ciddi ehdileri de beraberinde geirmekedir. Bu durum daha kalieli yazılım ürünlerine olan gereksinimi arırmakadır. Yazılım kaliesinin anımlanmasında, yazılım güvenilirliği; işlevsellik, kullanılabilirlik, performans, kullanışlılık, yeerlilik, kurulabilirlik, bakılabilirlik ve dokümanasyonla benzer öneme sahip olmasına karşın diğer yazılım kalie krierlerine göre daha az bilinmeke ve uygulanmakadır. Bunun nedeni de ölçme ve değerlendirmenin sayısal büyüklüklerle yapılıyor olması, yazılım güvenilirliğinin ise yoğun olarak maemaik ve isaisiksel değerlerle ifade edilmesidir. Bu çalışmada yazılım mimarisinin kalie gereksinimleri, yazılım güvenilirliği açısından incelenmişir. Yazılımın öneminin arığı ve yaşamsal hale geldiği bu süreçe, bilgisayar ve

yazılım mühendislerine yazılım güvenilirliği konusunda yararlanabilecekleri bir çalışmayı oraya çıkarmak ana hedef olarak amaçlanmakadır. Böylece yazılım güvenilirliğinin; yazılım gelişiricileri arafından farkındalığının sağlanması, daha güvenilir ve dolayısıyla daha kalieli ve ekonomik ürünler üremelerini sağlayarak rekabe avanajı elde emeleri, ayrıca konu hakkındaki emel bilgileri edinerek uygulama cesarei kazanmaları sağlanmış olacakır. 2 Temel Kavramlar Yazılım güvenilirliği, sisem veya bileşenlerinin, belirli bir oramda, belirli bir zaman dilimi içinde kendilerinden beklenilen işlevleri yerine geirebilme olasılığı olarak anımlanmakadır [1]. Yazılım güvenilirliği mühendisliği ise yazılım ürünlerinde müşeri memnuniyeini sağlamak üzere, güvenilirliğin kesirimi, ölçülmesi ve yöneilmesidir [2]. Yazılım güvenilirliği mühendisliği, müşeri açısından gerekli güvenilirlik ve kalieye yönelik alaki faaliyeleri içermekedir [3] [4]: Müşeri beklenilerini maksimize eden kalie fakörlerini belirlemek. Güvenilirlik hedeflerine karar vermek. Gelişirme sürecine ve haanın anımlanmasına, düzelilmesine yönelik güvenilirlik modellerini kesirmek. Yüksek kalie güvenilirliği sağlamaya yönelik yazılım gelişirme sürecini deseklemek. Tes sraejilerini desekleyen faaliyeleri üremek. Güvenilirlik kesirimine yönelik ölçüleri anımlamak ve bu ölçülerin beklenileri karşılama konusundaki uygunluğunu sınamak. Güvenilir bir yazılımdan söz edildiğinde, ürünün planlama, üreim, es ve bakım aşamalarında arzu edilen güvenilirliği hedeflemesi anlaşılmalıdır. Bu da güvenilirlik çalışmalarında isaisik bilgisinin yanı sıra bir güvenilirlik hedefinin de bulunması gerekliliğini oraya koymakadır. Güvenilirlik hedefi müşeri beklenisi ile doğrudan ilgili olup, bu hedefe nasıl ulaşılacağı ile ilgili verilerin oplanması ve modellenmesini de gerekirmekedir. Yazılım güvenilirliğine ai yukarıdaki her iki anımda da güvenilirlik ile kalie arasındaki yakın ilişki vurgulanmakadır. Diğer bir şekilde, güvenilirlik zamana bağlı olan kalie olarak anımlanmakadır. Bu da yazılım güvenilirliğinin, yazılım kaliesi için önemli bir ölçü olarak değerlendirilmesini gerekirmekedir [5]. Yazılım güvenilirliğinin emel kavramları olan haa, aksaklık ve arızanın anımı aşağıdaki şekilde yapılmakadır [1] [2] [6]: Yanlış (error); hesaplanan, gözlemlenen veya ölçülen değerler arasında fark oluşuğundaki durumu anlamaka kullanılmakadır. Örneğin hesaplanma sonucunda 12 değeri bulunduğu halde, doğru sonuç 10 ise yanlışlıkan bahsedilebilir. Genellikle de programcının veya asarımcının yanlış düşünceden kaynaklanan davranışları sonucunda oraya çıkan doğru olmayan sonuçlar için kullanılmakadır. Örnek olarak da programın doğru olmayan bir parçası veya işlemi verilebilir. Aksaklık (faul); yazılımda doğru olmayan bir adım, süreç veya veriyi anımlamakadır. Aksaklıklar yazılımın kodundaki yanlışların sonucunda oraya çıkar. Örneğin, bir programlama dilinde if deyiminin kullanımı sırasında, dallanmada bir aksaklık oluşabilir ve deyim yanlış bir dala akarılabilir. Böylelikle program isenilen sonucu üreemeyebilir ve bu durum da aksaklığa neden olabilmekedir. Haa (failure); (bozukluk olarak da kullanılmakadır) bir sisemin kendisinden beklenilen işlevi yerine geirememe durumudur. Haa nedeni genellikle bir aksaklık olmakadır. Kusur (defec); Üründeki anomalidir. Haa veya aksaklık için kullanılan genel bir erimdir ve genellikle de olarak anımlanmakadır. Kusur Aksaklık Haa Şekil-1, yanlışların, yazılımdaki aksaklıkları ve sonuça da haayı nasıl eiklediğini gösermekedir [7].

Programcı Yazılım Kullanıcı??? Böylece güvenilirlik ve güvenilmezlik fonksiyonları arasındaki ilişkinin ifadesi: R() 1 F() (1) İnsan haası Yanlış Şekil-1: Yanlış, aksaklık ve haa arasındaki ilişki Araşırmalar programcıların her 1000 saırlık kod için oralama alı yazılım kusuru üreiklerini gösermekedir. Bu da 350000 saırlık bir icari yazılımın yaklaşık 2000 ade yazılım kusurunu barındırabileceği anlamına gelmekedir [8]. Yazılım büyüdükçe olası kusur sayısı da geomerik olarak arış gösermekedir (Şekil 2). Yazılımın kod saır sayısı Şekil-2: Yazılım kusurlarının değişimi Bir yazılım ürününün işler durumda olması olasılığı güvenilirlik olarak anımlanırken, haa üremesi veya çalışamaz durumda olma olasılığı ise güvenilmezlik olarak ifade edilebilir. Güvenilirlik fonksiyonu R() ile göserilirken, güvenilmezlik fonksiyonu ise F() ile ifade edilmekedir. Güvenilmezlik azalırken, güvenilirlik armakadır (Şekil 3). Güvenilirlik R() Yazılım aksaklığı F() Şekil-3: Güvenilirlik ve güvenilmezlik fonksiyonları arasındaki ilişki Yazılım haası Kusur sayısı olarak ifade edilmekedir. Eğer rasgele değişkeni f() olasılık yoğunluk fonksiyonuna (OYF) sahip ise güvenilirlik: R() 1 F() f()d olmakadır. Bu durumda güvenilmezlik ise: F() 1 R() olarak ifade edilmekedir. f() d (2) (3) Üssel dağılış güvenilirliğin modellenmesinde kullanılan emel fonksiyonlardan biridir. Üssel dağılışa üm haaların birbirinden bağımsız olduğu varsayılmaka ve zamanındaki bir haanın olasılık dağılımı f () e (4) şeklinde ifade edilmekedir. Üssel OYF Şekil 4 de göserilmişir [7]. f() λ Şekil-4: OYF f(x)=λe -λ Böylece zamanındaki güvenilirlik: R() e d e (5) formülü ile hesaplanmakadır. Burada λ, haa yoğunluğunu ifade emekedir. Haa yoğunluğu Haa yoğunluğu (failure inensiy, failure densiy veya failure rae) olarak ifade edilmekedir ve belirli bir zaman diliminde karşılaşılan haaların sayısı olarak verilmekedir [1] [3]. Haasayısı HaaYoğunluğu ( ) (6) Toplames süresi

Güvenilirlik Örneğin; herbiri 10 saa süren 5 ade esin sonucunda, 3 esin 3, 7 ve 8. saalerde haa vermesi durumunda haa yoğunluğu 3 λ 3 7 8 2(10) Haa yoğunluğu ölçüü; 1. Oraya çıkmamış haaların kesirilmesinde, 2. Tes süresinin amamlandığına ai kararların verilmesinde, 3. Sandar haa yoğunluğunu sapamada kullanılmakadır [6]. Haa yoğunluğu, güvenilirlik gibi orama bağlı olarak anımlanmakadır. Şekil 5 haa yoğunluğu ile güvenilirlik arasındaki ilişkiyi, haalar giderildikçe haa yoğunluğunun ve güvenilirliğin zaman ile nasıl değişiğini gösermekedir [9]. Şekil-5: Güvenilirlik ve haa yoğunluğu Güvenilirlik analizlerinde yukarıdaki kavramlara ek olarak aşağıdaki emel ifadeler de yaygın olarak kullanılmakadır: Oralama haa süresi-ohs OHS (Mean Time To Failure-MTTF), haaya kadar geçen oralama çalışma süresidir. Haa zamanının beklenen değeri OHS ni vermeke ve (7) nolu isaisik formülü yardımıyla elde edilmekedir [7]. OHS 0 3 38 olarak hesaplanmakadır. Haa yoğunluğu Zaman f() d 0. 0789 Güvenilirlik Haa yoğunluğu (7) 1.0 Buradan; OHS 0 R() d (8) elde edilmekedir ve güvenilirlik fonksiyonunun bilindiği durumda OHS nin maemaiksel olarak hesaplanmasında kullanılmakadır. Haalar arası oralama süre-haos HAOS (Mean Time Beween Failures-MTBF), ürünün haasız olarak çalışmasının oralama süresi olarak anımlanmakadır. Ancak ürün bu süreden sonra da haa üreebileceği gibi, bu süreden önce de haa üremiş olabilir. Dolayısı ile HAOS, güvenilirlik karşılaşırmaları amacıyla kullanılmakadır [5]. HAOS; HAOS( ) Toplamişleimsüresi Haasayısı (9) olarak ifade edilmekedir. (6) ve (9) nolu eşiliklerden haa yoğunluğu; olarak hesaplanmakadır. Oralama haa süresi-ohs 1 (10) HAOS OHS (Mean Time To Failure-MTTF), haaya kadar geçen oralama çalışma süresidir. Haa zamanının beklenen değeri OHS ni vermeke ve (7) nolu isaisik formülü yardımıyla elde edilmekedir [7]. Örneğin; (9) nolu eşiliğe göre 38 HAOS 12, 66saa 3 Bu sonuç ürünün oralama 12.66 saa haasız olarak çalışabileceğini gösermekedir. Örneğin; (10) nolu eşiliğe göre HAOS 1 12, saa 0. 0789 66 olarak hesaplanmakadır.

Bozulma Oranı Bozulma oranı (Hazard Rae) veya anlık haa yoğunluğu, birim zamanda bozulanların oranıdır ve h() f () R() (11) olarak hesaplanmakadır [7] [9]. Üssel dağılım ile modellenen bozulma oranı (4) ve (5) nolu eşiliklere göre; olarak ifade edilmekedir. e h () (12) e 3 Yazılım Güvenilirliğinin Kesirimi Yazılım güvenilirliğinin kesirimi, yazılım güvenilirliği mühendisliğinin uygulama alanlarından biridir. Yazılım güvenilirliği mühendisliğin amacı; yazılım sisemlerinin güvenilirliğe ilişkin nicelikleri, kullanıcıların gereksinimlerini karşılayacak şekilde oraya koymak ve güvenilirliğin hesaplanmasına yönelik verileri oplama, isaisiksel kesirim, ölçülerin espii, yazılıma ai mimari özelliklerin belirlenmesi, asarım, gelişirme ve bunlara yönelik çalışma oramının belirlenmesi ve modellenmesini kapsamakadır [10]. Yazılım güvenilirliği modellemesinde emel olarak rasgele özellik gösermeyen belirleyici (deerminisic) modeller ile olasılıksal (probabilisic) modeller kullanılmakadır [11]. Deerminisik modeller; bir yazılımda birbirinden bağımsız işlemcilerin ve işlenenin yardımıyla, yazılımdaki bilgisayar komularının ve haa sayılarının incelenmesi esasına dayanmakadır. Temel olarak da 1977 de Halsead arafından gelişirilen karmaşıklık ölçüüne ve 1976 da McCabe arafından gelişirilen döngüsel (cyclomaic) karmaşıklık ölçüüne dayanmakadır. Bu çalışmada yazılım güvenilirliği modellemesi olasılıksal modeller açısından incelenmekedir. Yazılım güvenilirliğinin modellenmesinde kullanılan ve olasılık bileşeni içeren modeller, belirli bir haa arihçesine dayanarak, yazılımın haa oranının kesirilmesinde kullanılmaka ve kesirime yönelik paramereleri içermekedir. Temelde, haalar arasındaki sürelerin ve esler arasındaki haa sayılarının kesirimine yönelik olup, genellikle de üssel bir fonksiyon ile göserilmekedir. Modeller, özel bir veri kümesi için doğrulanmaka, böylelikle de kalan haaların veya daha sonra oluşacak olan haaların ne zaman oraya çıkacağı kesirilmeke ve kesirmenin güven aralığının hesaplanması mümkün olmakadır [12]. Yazılım güvenilirliği modelleri bu özelliklerinden dolayı yazılım gelişirmenin erken evrelerinde olan ve yazılım gereksinimlerinin eksik anlaşılması dolayısıyla meydana gelen yanlışlardan daha çok es sürecinde oraya çıkan haalar ile ilişkilidir [13]. Bundan dolayı yazılım güvenilirliğinin modellenmesinde, es sürecindeki haaların anınması, oradan kaldırılması ve çalışma oramını dikkae alan emel fakörler önemlidir. Haa anıma, ürün ve ürünün gelişirme süreci ile ilgilidir. Temel ürün karakerisiği programın büyüklüğü olup, gelişirme süreci ise yazılım mühendisliği eknolojileri ve araçları, gelişiricilerin deneyimi ve gereksinimlerin değişebilirliği ile ilgilidir. Haa giderme, haaların oraya çıkarılması ve düzelilmesi süreçlerini içermeke olup, yapılan işin başarısı, elde edilen kalie sonuçları ile ilişkilidir. Tüm bunlar da çalışılan oramın özellikleri ile ilgilidir. Güvenilirlik açısından haaların belirdiği oram, olasılıksal, çalışma zamanındaki rasgele süreçler ile ifade edilmeke ve aşağıdaki ifadelerin kullanılmasını gerekli hale geirmekedir [3]: 1. Herhangi bir andaki oralama haa sayısı 2. Zaman aralığındaki oralama haa sayısı 3. Herhangi bir andaki haa yoğunluğu 4. Haa yoğunluğunun olasılık dağılımı Haalar arasındaki sürenin kesirimi, f() OYF nu olarak ifade edilmeke ve fonksiyonun paramereleri daha önceden gözlemlenen haalar arasındaki 1, 2,..., i-1 sürelerin değerlerine göre kesirilmekedir. Böylece OYF, bir sonraki haanın zamanının kesiriminde kullanılmış olmakadır. Tese başlanıldıkan sonra haalar arasında i-1 ade sürenin gözlemlenmiş olduğu varsayıldığında ve i. haa ve i- 1. haa arasındaki süre kesirilmeye çalışıldığında, bu rasgele değişkeni ile göserilir ve rasgele değişkeninin beklenen değeri de (2) nolu eşiliken [7]: E ( i ) fi()d (13)

olarak elde edilmekedir. (13) nolu eşilikeki fonksiyonun paramerelerinin hesaplanmasında en büyük olabilirlik (maximum likelihood) veya en küçük kareler yönemi kullanılmakadır. İsaisiksel yazılım güvenilirlik modelleri haanın meydana gelmesine ve aksaklıkların giderilmesine yönelik olasılıksal olaylar olarak sınıflandırılır ve başlıca güvenilirlik modelleri aşağıdaki gibi verilmekedir [11]: Yanlışı belirlemek Haa oranı Eğriye uydurmak Güvenilirlik gelişirmek Markov biçimlendirmesi Zaman serileri Homojen olmayan Poisson süreci İyi bir yazılım güvenilirlik modelinin sahip olması gereken özellikler aşağıda verilmekedir [3][12]: 1. Geleceke oluşacak haalara ai iyi bir kesirime olanak vermesi 2. Yararlı nicelikleri hesaplaması 3. Basi olması 4. Geniş bir uygulama alanının bulunması 5. Kabul edilebilir varsayımları deseklemesi 6. Paramerelerinin kolay hesaplanması Eber ve diğerleri arafından [4] yazılım güvenilirliğinin kesiriminin, modellenmesi ve en iyi modelin seçilmesine yönelik analiz ve karar verme süreci aşağıdaki şekilde anımlanmakadır: 1. Model seçme ve düzenlemeye yönelik faaliyelerin emelinde uygun hedeflerin espi edilmesi bulunmakadır. 2. Haa ve aksaklıkların analiz edilmesi için uygun verilerin anımlanması gerekmekedir. Örneğin, arıza veya haaları önemine göre sınıflandırmak, haalar arası oralama süreyi bulmak, haa nedenlerini araşırmak, haaları bulmaya yönelik es verilerine karar vermek. 3. Belirilen hedeflere yönelik verileri modellemek üzere oplamak. 4. Geçmişe yönelik verilerin zaman bilgilerini de içerecek şekilde elde edilerek yazılım gelişirme sürecine dahil emek. 5. Yazılım gelişirme sürecinin modellenmesi, haa ile karşılaşılıp, es sürecine başlamak ve model doğrulama işlemlerine gerçekleşirmek. 6. Güvenilirlik kesirim modelinin seçilmesini sağlamak. 7. Güvenilirlik modeli arafından kullanılacak olan paramerelerini espi emek. 8. Verilen bir nokayı kullanarak gelecekeki olası haalar hakkında kesirimde bulunmak. 9. Kesirilen haa ve arıza oranları ile gerçekleşen değerleri kıyaslamak. Benzer şekilde Lyu arafından yapılan çalışmada da [14], yazılım güvenilirlik mühendisliğinin süreçleri özelenmekedir (Şekil 6). Güvenilirlik Hedeflerinin Tespii Tesin Sürdürülmesi Güvenilirlik Hedeflerine Ulaşıldı mı? Hayır Eve Operasyonel Özelliklerin Oluşurulması Tesin Gerçekleşirilmesi Haa Verilerini Toplanması Yazılım Güvenilirlik Araçlarının Uygulanması Uygun Yazılım Güvenilirlik Modelinin Seçilmesi Güvenilirlik Modelinin Kullanılarak Güncel Güvenilirliğin Hesaplanması Güvenilirliğin Sınanması Bir Sonraki Sürüm için Geri besleme Şekil-6: Güvenilirlik mühendisliği süreci

4 Veri Toplama Kalieye yönelik üm çalışmalarda olduğu gibi yazılım kaliesinin ölçülmesi, güvenilirlik modellemesi ve kesirimi için her şeyden önce veriye gereksinim duyulmakadır. Veri oplama, organizasyonun amacına yönelik çabayı gerekiren, veri oplamaya yönelik araç ve gereçlerinin ve üm bunları gerçekleşiren çalışanların değişken bir oramda varlığını sürdürdüğü, zor ve geniş kapsamlı emel bir süreçir. Veri oplama süreci, yazılımda bir problem gözlendiğinde, probleme neden olan durumların anlaşılması ve gerekli iyileşirmelerin yapılabilmesi için verilere ai hangi değerlerin oplanması ile de ilgilidir. Bu değerler aşağıdaki şekilde olabilir ve haaların raporlanmasında kullanır [7]: Konum: problem nerede meydana gelmişir? Zaman: ne zaman olmuşur? Beliri: ne gözlemlenmişir? Sonuç: hangi sonucu doğurmuşur? İşleyiş: nasıl meydana gelmişir? Neden: neden meydana gelmişir? Önem: kullanıcıyı ne kadar ekilemişir? Maliye: maliyei nedir? Yazılım güvenilirliğine ai veri oplama işlemine, meydana gelebilecek haaların amaca uygun şekilde sınıflandırılması ile başlanması uygundur. En emel şekliyle haalar şiddeine göre sınıflandırılır [7, s.158]: büyük haalar küçük haalar önemsiz ve ihmal edilebilir haalar belgeleme haaları bilinmeyenler Şiddee göre sınıflandırma, emsil edilen değerlerin nieliksel olmasından dolayı soruna neden olabilmeke ve ayrıca da oluşan yazılım aksaklığının nasıl bir haa üreebileceğinin de kesirilmesi gerekirmekedir. Örneğin, belgeleme haaları, aslında büyük haalara neden olabilir. Bu durumda sınıflandırma açısından ercih edilmesi gereken, yazılımın ai olduğu alana ai hangi haa sınıflandırmalarının (axonomy) bulunduğunun ve bu sınıfların da olası haa üreme değerlerinin bilinmesidir. IEEE Sd 1044 ölçünü arıza iplerini aşağıdaki şekilde sınıflandırmakadır [15]: Manıksal problemler Unuulan durumlar ve adımlar Tekrar eden manıksal durumlar Aşırı durumların ihmal edilmesi Gereksiz fonksiyonlar Yorumlama yanlışlıkları Durum eslerinin alanması Yanlış değişkenlerin denelenmesi Döngülerin yanlış ekrarlanması Hesaplama problemleri Eşiliklerin yeersiz veya doğru olmaması Duyarlılık noksanlıkları İşare kural haaları Arabirim/zamanlama problemleri İşin kesilmesinin doğru yöneilememesi I/O zamanlama yanlışlıkları Alprogram ve modül uyuşmazlığı Veri işleme problemleri Başlangıça verilerin düzgün olmaması Veri erişimlerinde ve saklamada yanlışlıklar Verilerin birim ve ölçeklendirme yanlışlıkları Veri boyulandırma haaları Veri ipilerinde yapılan haalar Veri problemleri Veri haalı veya düzgün değil Veri yapılarındaki gömülü verilerde sorunlar Dışarıdan gelen veriler yanlış veya alanmış Çıkı verileri yanlış veya alanmış Girdi verileri yanlış veya alanmış Dokümanasyon problemleri Doküman kalie problemleri Gelişirme Program gereksinimlerinin değişmesi Açıklamaların gelişirilmesi Kod verimliliğinin arırılması Yazınsal değişikliklerin gerçekleşirilmesi Kullanışlığın arırılması

Veri oplama, yazılım gelişirmenin zihinsel ve yüksek bilgi gerekiren şarlarının ersine gözlem ve raporlama esasına dayanmakadır ve üç emel yönemle gerçekleşmekedir [16]. Bunlar: Form aracılığıyla elle yapılan veri oplama Oomaik veri oplama Görüşme yolu ile veri oplama Elle yapılan veri oplamada, yöneicilerin, sisem analislerin, programcıların, esi gerçekleşirenlerin ve kullanıcıların verileri formlar aracılığı ile oplaması sureiyle gerçekleşmekedir. Bu formlar çeşili şekillerde asarlanmasına rağmen, formların hazırlanmasında basilik ve yalınlık, hızla analiz edilebilirlik ve arızanın oluşuğu anda verinin oplanmasını sağlamaya yönelik beklenileri karşılaması gereklidir. Ayrıca, veriyi oplayan kişilerin verinin oplanmasının amaç ve yönemlerini de iyi anlamış olması gereklidir. Bu işlem kasılı veya bilinçsizce yapılan önyargılı eylemlerden dolayı haaları, gecikmeleri ve ihmalleri içermekedir [7]. Oomaik veri oplama işlemi bazı veri grupları için kod çözümleyicisi yazılımlar veya derleyiciler aracılığı ile yapılmakadır. Ticari yazılım uygulamalarında da özellikle programlama dilinin isisna işleme konusundaki özellikleri kullanılarak veriler elde edilmekedir. Özellikle gerçek zamanlı yazılımlarda, yazılımın çalışma sürecinde verilerin oomaik olarak elde edilmesi zorunludur. Görüşme yolu ile veri elde eme yönemi kişisel bakış açısını yansımasından dolayı ercih edilmemesine rağmen özellikle projeye ai verilerin oplanmasında kullanılmakadır. Verinin ne zaman oplanacağı, güvenilirliğin planlama süreci ile ilgilidir ve genellikle de yazılımın es poliikası arafından belirlenmekedir. Gerek üreilen yazılımların gerekse de yapılan değişikliklerin hemen es sürecine dahil edilmesi, benimsenen yazılım gelişirme meodolojisine bağlı olduğu gibi üreilen yazılımın doğuracağı sonuçların müşeri açısından önemine de bağlıdır. Yine de es poliikası ve verilerin oplanması ile ilgili zamanlama ve işin sürdürülebilirliği büyük ölçüde proje büçesi ile ilgilidir. 5 Yazılım Kaliesi ile Güvenilirlik İlişkisi Yazılım güvenilirliği, yazılım kalie gelişirme çalışmalarındaki en ekili unsurlardan biridir. Yazılım gelişiricilerinin ürünlerinin güvenilirlik değerlerini bilmek isemelerinin başlıca nedeni, sıfır haa ile üreilen bir yazılımın en kalieli yazılım olduğu yönündeki yaygın kanıdır. Yazılım kaliesi ile güvenilirlik arasındaki bu ilişki doğru olmakla beraber, özellikle icari yazılım pazarındaki üreicilerin bir kaçı dışında ürünlerini sıfır haa veya amamen güvenilir üreiklerini söylemek zordur. Benzer şekilde kullanıcıların da fiyalamanın doğru olması ve ürün özelliklerinin yeerli olması durumunda, bundan kaygılanmadıkları ve olası haa, kusur ve bozuklukları dikkae almadıkları kolaylıkla gözlemlenmekedir [17]. Yazılım gelişiren şirkeler, özellikle de yaşamsal önemi olan yazılım sisemleri başa olmak üzere yazılım güvenilirliği ile ilgili çalışmaları ürünleri için yapmak zorundadırlar. Bunun başlıca nedeni, yazılım güvenilirliği ile ilgili çalışmalarının sonucunda sayısal bir değerin elde edilmesi ve böylece yazılım projelerinin gelişirilmesine yönelik kaynakların daha verimli kullanılmasını sağlamakadır. Bunun diğer bir yararı da ürünlerin pazara sunulmadan önce olası haa oranı hakkında bilgi sahibi olunarak, ilerideki bakım, onarım gibi faaliyelerin büçelenebilmesidir. Güvenilirlik konusu, kalie konrol, es sürecinin düzenlenmesi ve sonlandırılmasına ilişkin çalışmalarda da yol gösericidir. Yazılım esi gibi kesiriminde güçlük bulunan bir konu da, es süresine ve içeriğine yönelik süreç ve işlerin espi edilmesini ve de dolayısı ile kesiriminde, güvenilirlik ölçülerinin önemi büyükür. Böylelikle es süresinin sonlandırılarak, ürünün pazara sürülme zamanına karar verilmesi veya pazara sürülme zamanı esas alınarak, buna uygun es planlamasının yapılması, ürünün saış sonrasındaki çalışma zamanındaki en iyi ve köü senaryolar hakkında ön bilgilerin elde edilmesi sonucunu doğurmakadır ki bu açıdan elde edilecek bilgiler, yönesel kararları önemli ölçüde deseklemekedir. Yazılım kaliesinin sağlanmasına yönelik aşağıdaki model ve sandarlarda da güvenilirlik mühendisliğinin prensipleri kullanılmakadır. Yazılım Mühendisliği Ensiüsü (Sofware Engineering Insiue) arafından

6 Sonuç gelişirilmiş olan Yeenek Olgunluk Modeli (Capabiliy Mauriy Model, CMM), yazılım süreçlerinin anahar elemanlarını anımlayan, süreçlerin olgunluğunun değerlendirmesinde kullanılan ve bunu olgun olmayan bir süreçen, olgun ve ekin bir sürece giden evrimsel bir yol izleyerek gerçekleşiren modeldir ve maliyelerin denelenmesinde, süreç iyileşirmelerinin ölçümlenmesinde ve değerlendirilmesinde güvenilirlik önemli bir rol oynamakadır [18]. ISO/IEC 9126 yazılım kalie ölçünlerinde, yazılım kaliesinin anımlanması için ürün karakerisikleri ve bunlara bağlı al karakerisikler anımlanmakadır [19]. Güvenilirlik, emel kalie sandarları arasında yer almakadır ve yazılım ürününün ölçülmesinde kullanılmakadır. IEEE Sd 1061 Yazılım Kalie Ölçüleri Meodolojisi, yazılımın arzu edilen kalie seviyesine ulaşmasını sağlamak üzere kullanılacak yazılım ölçülerini anımlamakadır [20]. Aynı dokümanda kalie fakörü, yazılımın sorumluluklarını yerine geirmesine yönelik fonksiyonlara kakıda bulunan nielikler olarak anımlanmakadır. Böylece IEEE 1061 ölçüününde önemli bir kalie ölçüü olarak sunulmakadır. Bu çalışmada yazılım güvenilirliği konusunun önemi vurgulanmış, konu hakkındaki emel eserler ve sandarlar aranarak, yazılım güvenilirliğine ai önemli kavramlar açıklanmış, kolaylıkla anlaşılması için örneklenmişir. Benzer şekilde yazılım güvenilirliğinin kesirilmesi ve kesirime ilişkin süreçler anlaılmış, veri oplama ve yazılım güvenilirliğinin yazılım kaliesi ile olan ilişkileri, yazılım güvenilirliği konusunda ilk kez çalışmayı düşünen gelişiriciler için emel bilgileri içerecek şekilde sunulmuşur. Böylece konunun programcıları, yazılım proje yöneicilerini bilgilendirici, cesarelendirici ve eşvik edici olması sağlanmış ve yazılım güvenilirliğine yönelik emel bilgilendirmeler yapılmışır. Kaynakça [1] IEEE Sd. 610.12-1990, Sandard Glossary of Sofware Engineering Terminology, New York, IEEE Sandards Board. [2] Vouk, M.A., 2000. Sofware Reliabiliy Engineering, 2000 Annual Reliabiliy and Mainainabiliy Sym. [3] Musa, J.D., 1987. Sofware Reliabily Engineering, McGraw-Hill. [4] Eber, C., Dumke, R., Bundschuh, M., Schmieendorf, A., 2005. Bes Pracices in Sofware Measuremen, Berlin: Springer-Verlag. [5] Summerville, N., Basic Reliabiliy, An inroducion o Reliabiliy Engineering, Auhor House, 2004. [6] IEEE Sd 982.1-1988, Sandard Dicionary of Measures o Produce Reliable Sofware, New York, IEEE Sandards Board, 1988. [7] Fenon, N.E., Pfleeger, S.L., 1997. Sofware Merics: A Rigorous and Pracical Approach, 2. ed., Boson: PWS Publishing. [8] Pham, H., Zhang, X., 1999. A sofware cos model wih warrany and risk cos, IEEE Transacions on Compuers 48 (1), 71-75. [9] Musa, J.D., Iannino, A., Okumoo, K., 1987. Sofware Reliabiliy, Singapore: McGraw-Hill. [10] Dalal, S.R., 2003. Sofware Reliabiliy Models: A Selecive Survey and New Direcions, Handbook of reliabiliy engineering, Hoang Pham (ed.), Springer- Verlag. [11] Pham, H., 2006. Sysem Sofware Reliabiliy, Springer-Verlag. [12] Wallace, D., Coleman, C., 2001. Hardware and Sofware Reliabiliy (323-08), NASA Sofware Assurance Technology Cener. [13] Suzke, M.A., Smids, C.S., 2001. A sochasic model of faul inroducion & removal during sofware developmen, IEEE Transacions on Reliabiliy 50 (2), 184-193. [14] Lyu, M.R., 2007. Sofware Reliabiliy Engineering: A Roadmap, Fuure of Sofware Engineering. [15] IEEE Sd. 1044-1993, IEEE Sandard Classificaion for Sofware Anomalies, New York, IEEE Sandards Board. [16] The Sofware Engineering Program, 2005. Sofware Measuremen Guidebook, NASA Naional Aeronauics and Space Adminisraion, NASA-GB- 001-94. [17] Hucheson, M.L., 2003. Sofware Tesing Fundamenals, Wiley. [18] Ahern, D.M., Clouse, A., Turner, R., 2004. CMMI Disilled: A Pracical Inroducion o Inegraed Process Improvemen, 2. ed. Addison Wesley. [19] Jung, H., Kim, S., Chung, C., 2004. Measuring Sofware Produc Qualiy: A Survey of ISO/IEC 9126, IEEE Sofware, 88-92, Sepember/Ocober 2004. [20] IEEE Sd. 1061-1988, Sandard for a Sofware Qualiy Merics Mehodology. Piscaaway, NJ,: IEEE Sandards Dep.