<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Emniyet Kritik Yazılım Geliştirme Projelerinde Karşılaşılabilecek Etik Problemler</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Savunma Teknolojileri ve Mühendislik A.Ş.</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mühendislik ve Sertifikasyon Müdürlüğü</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ankara</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Türkiye</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Umut PİŞKEN</string-name>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Anahtar Kelimeler. Emniyet Kritik Yazılımlar, Etik, Etik Problemler</string-name>
        </contrib>
      </contrib-group>
      <fpage>562</fpage>
      <lpage>570</lpage>
      <abstract>
        <p>Özet. Hatalı çalışmaları durumunda can kaybına, ciddi yaralanmalara veya çevrenin ciddi zarar görmesine yol açabilecek olan sistemler emniyet kritik sistemler olarak sınıflandırılmaktadırlar. Bu sistemlerde kullanılan yazılımlar da emniyet kritik yazılım olarak nitelendirilmektedirler. Günümüzde emniyet kritik sistemlerde kullanılan yazılım miktarı geçmiş dönemlere göre ciddi şekilde artmıştır. Hava trafik kontrol birimleri, demiryolu sinyalizasyon sistemleri, nükleer santraller ve fly-by-wire sistemler gibi birçok emniyet kritik sistem, ciddi oranda yazılım içermektedir. Bu yazılımların ilgili geliştirme standartlarına uygun şekilde ve azami özen gösterilerek geliştirilmesi gerekmektedir. Ancak projelerin uymaları gereken takvim ve bütçe gibi bazı kısıtlar, projelerde emniyet konusunda bazı etik problemlerin yaşanmasına yol açabilmektedir. Dolayısıyla emniyet kritik yazılım geliştirme projelerinde çalışan mühendislerin karşılaşabilecekleri etik problemler konusunda bir farkındalıkları olması ve bu tarz durumlarla karşılaştıklarında nasıl bir hareket tarzı sergilemeleri gerektiğinin bilincinde olması gerekmektedir. Bu çalışmada emniyet kritik yazılım geliştirme projelerinde karşılaşılabilecek etik problemler incelenecek ve bu problemleri önlemeye yönelik öneriler sunulacaktır.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Giriş</title>
      <p>
        Hatalı çalışmaları durumunda can kaybına, ciddi yaralanmalara veya çevrenin ciddi
zarar görmesine yol açabilecek olan sistemler emniyet kritik sistemler olarak
sınıflandırılmaktadırlar. Bu sistemlerde kullanılan yazılımlar da emniyet kritik
yazılım olarak nitelendirilmektedirler. Günümüzde emniyet kritik sistemlerde
kullanılan yazılım miktarı geçmiş dönemlere göre ciddi şekilde artmıştır. Aviyonik
sistemlerden örnek vermek gerekirse, 1987’de üretilen Airbus A320 uçağında
yaklaşık olarak 800.000 satır kod mevcutken, 1994’te üretilen Boeing 777 uçağında
yaklaşık 4 milyon satır kod bulunmaktadır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. 2009 yılında üretilen Boeing 787
uçağında ise yaklaşık 7 milyon satır kod bulunmaktadır [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Bu verilerden anlaşılacağı
üzere emniyet kritik sistemlerde kullanılan yazılım miktarı gittikçe yükselmektedir.
Aviyonik sektörü özelinde, her 10 yılda bir, aviyonik sistemlerde kullanılan yazılım
miktarının ikiye katlandığı öne sürülmektedir [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Yazılım hataları, yazılım geliştirme esnasında ortaya çıkan sistematik hatalardan
kaynaklanmaktadırlar [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Yazılım hataları, fiziksel parçalarda görülebilen ve
kullanıma bağlı yıpranma-aşınma kaynaklı oluşan rastsal hatalardan(Random Failure)
farklıdırlar. Emniyet kritik yazılım geliştirme standartları da bu durumu göz önüne
alarak, sistematik hataları önlemek üzere yazılım geliştirme süreçlerine yönelik belirli
gereksinim ve kısıtlamaları tanımlayacak şekilde geliştirilmiştir [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Bu yaklaşıma
göre, öncelikle sistem emniyet analizleri yapılarak yazılımın içinde çalışacağı sistem
açısından emniyet kritiklik seviyesi belirlenmekte, sonrasında ise bu kritiklik
seviyesini sağlamak üzere kullanılacak olan standardın istediği yazılım
yaşamdöngüsü süreçleri işletilmektedir.
      </p>
      <p>Emniyet kritik yazılımların ilgili standardın istediği yazılım yaşamdöngüsü
süreçlerine göre geliştirilip geliştirilmediğine ilişkin kontrol sertifikasyon otoriteleri
tarafından gerçekleştirilmektedir. Ancak projelerin büyüklükleri sebebiyle, bu
kontroller proje büyüklüklerine göre görece küçük örneklemler kullanılarak ve
projede çalışan mühendisler ile mülakatlar yapılarak gerçekleştirilmektedir.
Dolayısıyla bu süreçte projede çalışan mühendislerin iyi niyet sergilemesi ve
sertifikasyon otoritesi ile işbirliği sağlaması büyük önem arz etmektedir. Aksi halde,
zaman kısıtı ve örneklem boyutu sebebiyle, kontrolü gerçekleştiren otoritenin
gözünden bazı eksiklikler kaçabilir ve yazılım ilgili standartların istediği tüm yazılım
yaşamdöngüsü amaçlarını sağlamadığı halde başarılı şekilde kontrollerden geçebilir.
Bu tarz bir durumda ortaya çıkacak yazılım ürünü kullanıldığı sistem içerisinde
hatalara sebebiyet vererek can kaybı, yaralanma veya çevrenin ciddi zarar görmesi
gibi istenmeyen olaylara yol açabilecektir. Bu sebeple, emniyet kritik yazılım
geliştiren ekiplerde görev alan mühendislerin etik sorumluluklarının farkında olması
ve sadece çalıştıkları firmanın çıkarlarını değil, toplumun genelinin de faydasını göz
önüne almaları gereklidir.</p>
      <p>Bu çalışmanın ikinci kısmında emniyet kritik yazılımlar ve bu yazılımların
geliştirilmesine ilişkin kullanılan standartlar hakkında genel bilgiler verilecektir.
Çalışmanın üçüncü kısmında etik ve etik problemlerden bahsedildikten sonra,
dördüncü kısımda emniyet kritik yazılım geliştirme projelerinde karşılaşılabilecek
etik problemler incelenecektir. Çalışmanın son bölümünde ise sonuç ve önerilere yer
verilecektir.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Emniyet Kritik Yazılımlar</title>
      <p>
        Emniyet kritik sistemlerin bir parçası olan ve hatalı çalışmaları durumunda sistem
emniyetine etki eden yazılımlar emniyet kritik yazılımlar olarak adlandırılmaktadır
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Yazılım insanlığın ürettiği en karmaşık ürünlerden birisi olarak
sınıflandırılmaktadır [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Özellikle büyük sistemlerde yer alan yazılımları olası bütün
girdileri deneyerek test etmek olanaklı olmamakta, bu sebeple ne kadar test yapılırsa
yapılsın yazılımın hata içermediği garanti altına alınamamaktadır [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Günümüzde
emniyet kritik sistemlerde kullanılan yazılım miktarı da gittikçe artmakta, bu sebeple
üretilen yazılımların istenilen emniyet seviyesini sağladığının garanti altına alınması
daha da önem kazanmaktadır. Mekanik sistemler için gerçekleştirilen sistem hata ve
güvenilirlik analizleri ne yazık ki karmaşık yapısından ötürü yazılımlara
uygulanamamaktadır [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Yazılım, mekanik sistemlerden farklı olarak fizik yasalarına
göre hareket etmemekte, dolayısıyla yazılımın hangi koşullar altında hatalı çalışacağı
tahmin edilememektedir [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Yazılımların güvenirliği testler veya güvenilirlik analizleri ile tespit etmek
mümkün olmadığı için, tasarım teminatı kavramı ortaya atılmıştır [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Tasarım
teminatı ile gereksinim, tasarım ve geliştirme aşamalarında ortaya çıkabilecek
hataların sistem emniyeti açısından kabul edilebilir seviyeye indirildiğini garanti
altına almak için uygulanan planlı ve sistematik aktiviteler kastedilmektedir[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
Tasarım teminatı yaklaşımı, yazılım geliştirme esnasında uygulanacak süreçler ne
kadar titiz ve sıkı olursa yazılımda o derece az hata kalacağı varsayımına
dayanmaktadır[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Bu yaklaşımda, yazılımın kritiklik seviyesi yükseldikçe, uygulanan
geliştirme ve doğrulama aktiviteleri nicelik ve nitelik açısından artmaktadır.
      </p>
      <p>Emniyet kritik yazılımlar için, farklı alanlarda farklı geliştirme standartları
mevcuttur. Aşağıdaki tabloda bu standartlardan bazıları ve kullanıldıkları alanlar
verilmiştir:</p>
      <sec id="sec-2-1">
        <title>Standart Adı</title>
        <sec id="sec-2-1-1">
          <title>EN 50128 - Railway Applications:</title>
          <p>Software for Railway Control and
Protection Systems
DO-178C - Software Considerations in
Airborne Systems and Equipment
Certification
IEC 62138 Nuclear Power Plants
Software Aspects for Computer-based
Systems Performing Category B or C
functions
IEC 62304 Medical Device Software –
Software Life Cycle Processes</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Kullanıldığı Alan</title>
        <sec id="sec-2-2-1">
          <title>Demiryolu</title>
        </sec>
        <sec id="sec-2-2-2">
          <title>Kontrol</title>
        </sec>
        <sec id="sec-2-2-3">
          <title>Hızlı Tren, Yazılımları</title>
        </sec>
        <sec id="sec-2-2-4">
          <title>Aviyonik Yazılımlar</title>
        </sec>
        <sec id="sec-2-2-5">
          <title>Nükleer Santral Yazılımları</title>
        </sec>
        <sec id="sec-2-2-6">
          <title>Medikal Cihazlardaki Yazılımlar</title>
          <p>Tablo 1. Emniyet Kritik Yazılım Geliştirme Standartları</p>
          <p>
            Emniyet kritik yazılım geliştirme standartlarında, sistem seviyesi emniyet
analizlerinden gelen yazılım tasarım teminatı seviyelerine ilişkin yazılım
yaşamdöngüsü boyunca karşılanması gereken amaçlar belirlenir [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ]. Örnek vermek
gerekirse, DO-178C standardında tasarım teminatı seviyesi DAL A olarak belirlenmiş
olan yazılımlar için, geliştirilen kodun yazılım tasarımı ile uyumlu olup olmadığının
kontrolünün bağımsız bir şekilde (kod geliştiricilerden farklı kişiler tarafından)
yapılması gerekirken, tasarım teminatı seviyesi DAL B olarak belirlenen yazılımlarda
bu işlemin bağımsız şekilde yapılmasına gerek yoktur, bir başka ifadeyle kodu
geliştiren kişilerin bu kontrolü yapması yeterlidir[
            <xref ref-type="bibr" rid="ref6">6</xref>
            ]. Benzer şekilde EN 50128
standardına göre tasarım teminatı seviyesi SIL 3 ve SIL 4 olan yazılımlar için sınır
değer testlerinin yapılması gerekirken, SIL 1 ve SIL 2 olan yazılımlar için yapılması
şart değildir [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ].
3
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Etik</title>
      <p>
        Etik, bir kişinin ya da grubun davranışlarına rehberlik eden doğrunun veya yanlışın,
iyi veya kötünün standartlarını oluşturan moral ilkelerin kodu olarak
tanımlanmaktadır[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Etiğin amacı çeşitli eylem alternatifleri arasında bir seçim
yapmada insanlara yardımcı olan davranış ilkelerini oluşturmaktır [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Etik, teorik etik
ve uygulamalı etik olarak iki ana bölümde sınıflandırılmaktadır [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Teorik etik daha
kuramsal ve genellik taşıyan bir yapıya sahipken, 20. yüzyılın son çeyreğinde,
dünyada hayatın her alanında giderek artan somut ahlâki problemlerin bir sonucu
olarak ortaya çıkıp birtakım münferit konularda problem çözmeyi ve dolayısıyla
vizyonumuzu geliştirmeyi amaçlayan uygulamalı etik için bu durum geçerli
değildir[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Meslek etikleri, uygulamalı etik kapsamına girmektedir. Meslek etiği,
belirli bir meslek grubunun, mesleğe ilişkin olarak oluşturup koruduğu, meslek
üyelerine emreden ve onları belirli bir şekilde davranmaya zorlayan, kişisel
eğilimlerini sınırlayan, yetersiz ve ilkesiz üyeleri meslekten dışlayan, meslek içi
rekabeti düzenleyen ve hizmet ideallerini korumayı amaçlayan mesleki ilkeler
bütünüdür [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Mesleki etik kapsamında ilke ve standartlar belirlenirken dayanak
noktası olarak etik kuramlar kullanılmaktadır[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Bu kuramlardan başlıcaları
şunlardır:
 Teleolojik Yaklaşım: Bu yaklaşıma göre bir eylem kendi başına iyi veya kötü
değildir, o eylemi iyi ya da kötü yapan şey sonuçlarıdır. Dolayısıyla bir eylem
istenen sonucu ortaya çıkarıyorsa, o zaman ahlaki açıdan doğru ve iyi kabul
edilmelidir. Faydacı anlayış da bu yaklaşıma girmektedir. Faydacı anlayışa göre,
bir eylemin ahlaki bakımdan doğru sayılabilmesi için eylemin sağladığı toplam
faydanın, bireyin yapacağı başka bir eylemin sağlayacağı toplam faydadan büyük
olması gerekir.
 Deontolojik Yaklaşım: Bu yaklaşıma göre eylemler, eyleme temel olan, eylemi
ortaya koyan düşünüşün niteliğine göre değerlidir veya değildir. Ödev etiği olarak
da adlandırılmaktadır. Eylemlerin ahlaki olup olmadığı eylemin sonucunda değil
niyetinde aranmalıdır.
      </p>
      <p>
        Etik dışı davranış, bireylerin, grupların veya örgütlerin, toplumun ve/veya mesleğin
iyi, güzel ve doğru saydığı etik kuralları, ilkeleri terk etmesi ve bu kural ile ilkelere
aykırı davranış göstermesidir [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Etik dışı davranışın bireysel nedenleri olarak
aşağıdaki unsurlar sıralanabilir:
 Etik ikilemler
 Etik standartlardaki farklılıklar
 Bencil davranma
 Mesleki bilgi yetersizliği
      </p>
      <p>
        Etik ikilemler: Etik ikilemler, yöneticilerin veya işgörenlerin karar vermesini
engelleyen, net olmayan karmaşık durumlardır [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Kişi farklı alternatifler arasında
karar vermek zorunda olduğunda, bir etik çıkmaz oluşmaktadır [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Etik standartlardaki farklılıklar: Bireyler, toplumca benimsenen değerleri
öncelikle ailelerinden, daha sonra ise okuldan öğrenmeye başlamaktadırlar. Farklı aile
yapıları ve eğitim olanakları, kişilerin etik standartlarının farklılaşmasına neden
olabilmektedir [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Bireyler etik dışı davranışlarını rasyonelleştirmek için aşağıdaki
gibi birtakım savunma mekanizmaları geliştirebilirler [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>─ Herkes yapıyor
─ Eğer işimi kaybedersem kimseye yararı olmaz</p>
      <p>
        Bencillik: Bencillik kişinin insancıl eğilimlerini ve duygularını geriye iterek,
sadece çevresini kendi çıkarlarına uygun bir sömürü ortamına dönüştürmeye yönelik
bir çıkar güdüsü olarak ifade edilebilir [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Kişiler yaptıkları davranışın uygunsuz
olduğunu bilseler bile, çıkarları için bu davranışı sürdürebilirler [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>Mesleki yetersizlik: Gerek çalışan, gerekse yöneticilerin, çalıştıkları örgütte,
mesleğini yerine getirebilmek için birtakım yetkinliklere sahip olması gerekir.
Bireyler gerekli mesleki bilgi, tecrübe ve yeterliliğe sahip olmadığında hem nicelik
hem de nitelik olarak işin gereğini yerine getiremezler.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Emniyet Kritik Yazılım Geliştirme Projelerinde</title>
    </sec>
    <sec id="sec-5">
      <title>Karşılaşılabilecek Etik Problemler</title>
      <p>
        Emniyet kritik yazılımlar, genellikle bir sertifikasyon otoritesi veya belgelendirme
yetkisine sahip bir kuruluş tarafından değerlendirilmektedir [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Bu değerlendirme
neticesinde ilgili yazılımın gerekli emniyet seviyesini sağlayıp sağlamadığına ilişkin
karar verilmektedir. Tasarım teminatı yaklaşımı sebebiyle, bu değerlendirmeler ürün
odaklı olmaktan ziyade, süreç odaklı olmakta ve emniyet kritik yazılım geliştirme
yaşamdöngüsü süreçleri incelenmektedir [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Bu incelemeler esnasında proje
çalışanları ile mülakatlar yapılmakta, yaşamdöngüsü boyunca karşılanması gereken
amaçlara yönelik olarak çıktılar incelenmektedir. Ancak yazılım projelerinin
büyüklükleri sebebiyle, tüm çıktıların incelenmesi zaman ve kaynak bakımından
mümkün olamadığı için örneklemlere bakılmaktadır. Dolayısıyla değerlendirmeyi
yapan otoritelerin yaşamdöngüsü süreçlerinden olabilecek olası sapmaların tamamını
tespit etmeleri her zaman mümkün olamamaktadır.
      </p>
      <p>
        Bu noktada emniyet kritik yazılım geliştiren ekiplerin etik açıdan uygulanması
gereken standardı benimsemeleri ve sadece otorite istediği için değil, yazılımın
gerçekten emniyetli olması ve kullanım esnasında can kaybı veya ciddi yaralanma
gibi istenmeyen olaylara sebebiyet vermemesi için gereken tüm çabayı göstermeleri
gerekmektedir. Ancak ne yazık ki, emniyet kritik yazılım geliştirme projelerinde
verilen kararların birçoğu emniyet odaklı olmaktan öte ekonomik odaklı olmaktadır
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        Konuya ilişkin olarak, radyoterapi tedavilerinde kullanılan ve yazılım içeren
Therac-25 cihazının kullanımı esnasında yaşanmış olan istenmeyen olay örnek
verilebilir. Therac-25 cihazı içerdiği yazılım hatasından dolayı dört kişinin
radyoterapi esnasında doz aşımı nedeniyle ölümüne yol açmıştır [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Yapılan
incelemelerde kazaya sebep olan Therac-25 cihazının içindeki yazılım geliştirilirken,
temel yazılım mühendisliği prensiplerine uyulmadığı, testlerin yetersiz seviyede
olduğu, gerekli dokümantasyonun üretilmediği ve kalite güvence süreçlerine
uyulmadığı tespit edilmiştir [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        Emniyet kritik yazılım projelerinde, takvim ve bütçe tahminlerinde yapılacak olası
hatalar, projelerin yaşamdöngüsü esnasında zaman baskısı ve kaynak eksikliğine
sebebiyet vermekte, bu durum ise yöneticiler ve çalışanlar açısından etik ikilemlerin
doğmasına yol açmaktadır. Zaman baskısı sebebiyle, ilgili geliştirme standardında
istenilen amaçlar beklenen seviyede gerçekleştirilemeyebilmektedir. Dodd ve Habli
tarafından yapılan çalışmada, havacılık sektöründe sertifikasyon otoritesi adına
denetlemeleri gerçekleştiren kişilerle yapılan mülakatlarda, firmaların denetime hazır
olmadıkları halde, denetleme talep etmeleri ve denetimden başarılı şekilde geçmeyi
umuyor olmaları bir problem olarak ifade edilmiştir [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Bu durum zaman baskısından
kaynaklı etik problemlere güzel bir örnek teşkil etmektedir. Firmada çalışan
mühendisler, denetime hazır olmadıklarının farkında olmalarına rağmen zaman
baskısı sebebiyle denetime girip geçmeyi ummaktadırlar. Denetimlerin amacı emniyet
kritik yazılımların beklenen tasarım teminatı seviyesini karşıladığının garanti altına
alınmasıdır. Bu sebeple firmaların ve mühendislerin etik açıdan, topluma karşı olan
sorumlulukları gereği hazır olmadıkları halde sertifikasyon denetimlerine girmeyi
talep etmeleri uygun değildir.
      </p>
      <p>Projelerde gene zaman baskısı sebebiyle ilgili standartların istediği aktiviteler
istenilen nitelikte gerçekleştirilemeyebilmektedir. Örneğin, gözden geçirme süreçleri,
zaman baskısı sebebiyle, gözden geçirme katılımcılarına yeterli süre tanınmadan
gerçekleştirilebilmektedir. Bu tarz durumlarda, gözden geçirmeye konu olan yazılım
yaşamdöngüsü çıktıları (gereksinim, tasarım, kod vs.) standardın istediği seviyede
incelenmemekte ve hatalar tam olarak giderilmemektedir. Bu durum da etik
problemlere örnek olarak gösterilebilir. Mühendislerin, kendilerine işlerini standardın
istediği seviyede yapamayacakları bir süre verildiği zaman, duruma itiraz etmeleri, ek
süre istemeleri, verilmediği takdirde ilgili aktiviteye katılmamaları veya konuyu ilgili
otoriteye iletmeleri etik bir sorumluluktur.</p>
      <p>
        Emniyet kritik yazılım geliştirme projelerinde kullanılacak yöntem ve araç
seçimlerinde de mutlaka yapılacak seçimin yazılım emniyetine olan etkisi göz önüne
alınmalıdır. Örneğin nesne yönelimli programlama dillerinin uygun olmayan şekilde
kullanımı yazılımın deterministik olmayan davranışlar sergilemesine ve sistem
emniyetini tehlikeye sokmasına sebep olabilmektedir [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Bu sebeple, kullanılacak
programlama dili seçilirken, karara katılan mühendisler mutlaka bu durumun yazılım
emniyetine yapabileceği olası olumsuz etkileri de göz önüne almalıdırlar. Bu tarz
seçimlerin, sadece geçmiş kullanım alışkanlıklarına veya firmanın mevcut yazılım
geliştirme ortamına bakılarak yapılması firma açısından verimlilik sağlıyor gibi
gözükse de etik açıdan uygun olmayacaktır.
      </p>
      <p>
        Benzer şekilde, formal yöntemler gibi yazılım sektöründe çok yaygın olarak
kullanılmamasına rağmen yazılım emniyetine ciddi şekilde katkı sağlayan ve
standartlar tarafından kullanımları tariflenen yeni yöntemlerin de mühendisler ve
firmalar tarafından benimsenmesi ve uygulanması etik bir sorumluluktur. Bu tarz yeni
yöntemlere karşı, mühendisler ve firmalar bilgi eksikliği sebebiyle sıcak bakmamakta,
öğrenme süresinin proje takvimine olumsuz yansıyabileceği ve konuya ilişkin
eğitim/danışmanlık gibi ek masraflar sebebiyle bütçe üzerinde de olumsuz etkileri
olacağını düşünmektedirler[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Konuya etik açıdan bakıldığında ise, bu yöntemler
yazılım emniyetine katkı sağladığı için, yol açtıkları masraftan bağımsız olarak
uygulanmaya çalışılmalıdır.
      </p>
      <p>
        Emniyet kritik yazılım geliştirme projelerinde çalışan mühendislerin, projede
uygulanacak standarda hâkim olmaları gerekmektedir. Standarda hâkim olmamaktan
kaynaklanacak problemler de mühendislerin etik açıdan sorumluluğuna girmektedir
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Projede uygulanacak olan standarda tam olarak hâkim olmayan mühendisler,
standardın istediği yazılım yaşamdöngüsü amaçlarını yanlış yorumlayabilir ve tam
olarak gerçekleştiremeyebilirler. Bu tarz durumlarda, konuyla ilgili yeteri kadar
bilgim yoktu şeklindeki mazeretler etik açıdan sorumluluğu ortadan
kaldırmamaktadır. Mühendislerin uygulanacak standarda ilişkin her türlü bilgiyi
edinmeye çalışmaları ve gerekiyorsa çalıştıkları firmadan bu konuda eğitim almayı
talep etmeleri gerekmektedir. Firmaların da gerekli eğitimleri mühendislerine
sağlamaları etik açıdan bir gerekliliktir.
      </p>
      <p>Son olarak emniyet kritik yazılım geliştirme projelerinde, mühendislik kararlar
alınırken emniyete olan etkilerin performans, kullanılabilirlik veya ekonomik
etkilerden daha öncelikli olarak göz önüne alınması etik açıdan bir gerekliliktir.
Kullanılabilirliği veya performansı yükseltmek adına sistem emniyetinden taviz
vermek etik açıdan uygun değildir.
5</p>
    </sec>
    <sec id="sec-6">
      <title>Sonuç ve Öneriler</title>
      <p>Bu çalışmada, emniyet kritik yazılım geliştirme projelerinde karşılaşılabilecek etik
problemler ortaya konulmaya çalışılmıştır. Günümüzde emniyet kritik sistemlerde
kullanılan yazılım miktarı gittikçe arttığı için, bu sistemlerdeki yazılımların can kaybı,
ciddi yaralanma gibi istenmeyen olaylara sebebiyet verme olasılığı da
yükselmektedir. Bundan dolayı, diğer yazılım geliştirme projelerinden farklı olarak,
emniyet kritik yazılım geliştirme projelerinde etik konularda daha titiz davranılması
gerekmektedir. Mühendislerin karşılaşabilecekleri etik problemlerin farkında
olmaları, bu tarz problemlerle projelerin yaşamdöngüsü esnasında karşılaştıklarında,
daha hızlı ve etik açıdan doğru kararlar vermelerine katkı sağlayacaktır. Etik
konularda farkındalığı arttırmak adına, üniversitelerin mühendislik bölümlerinde
meslek etiğine yönelik dersler eklenmesi faydalı olacaktır.</p>
      <p>Firmaların emniyet kritik yazılım geliştirme projelerinde çalışan yöneticilere ve
mühendislere rehberlik etmesi açısından, etik kodlar belirlemeleri gerekmektedir.
Böylece, proje esnasında karşılaşılabilecek etik problemlerin çözümüne ilişkin
izlenecek genel politikalar belirlenmiş olacaktır. Çalışanlar bu politikalara ve etik
kurallara dayanarak belirli noktalarda itirazlarını daha rahat dile getirebilecekler,
bunun sonucunda da etik açıdan doğru kararların alınması mümkün olacaktır.</p>
      <p>Firmalar emniyet kritik yazılım geliştirme projelerinde çalışan yönetici ve
mühendislerin etik sorumlulukları konusunda farkındalıklarını arttırmak amacıyla,
düzenli periyotlarla firma içi eğitimler düzenleyebilirler. Bu hem çalışanların etik
konusundaki farkındalığını arttıracak, hem de çalışanlara firmanın etik sorumluluklar
konusuna önem verdiği konusunda net bir mesaj iletecektir.</p>
      <p>Emniyet kritik yazılım geliştiren firmaların emniyet kültürü geliştirmeleri ve bunu
firma geneline yaymaları etik problemlerin daha oluşmadan önlenmesini sağlayabilir.
Emniyet kültürü ile, proje esnasında alınacak her türlü kararın diğer tüm etmenlerden
öncelikli olarak emniyet açısından bakılarak alınması anlatılmak istenilmektedir. Bu
sayede önceki bölümlerde örnekleri verilen etik problemlerin oluşması önlenmiş
olacaktır.</p>
      <p>Emniyet kritik yazılımlar, her ne kadar belirlenen standartlara uygun şekilde
geliştirilseler de, hata içerebilirler. Burada önemli olan nokta, geliştirme esnasında
firmaların ve mühendislerin etik açıdan doğru hareket etmeleri ve ellerinden gelen en
iyi çabayı ortaya koymalarıdır. Aksi halde, oluşabilecek istenmeyen kazalarda
firmaların ve mühendislerin etik olmayan davranışlarının da payı olacaktır.</p>
      <p>Gelecekte bu konuya ilişkin olarak, emniyet kritik yazılım geliştirme projelerinde
çalışan mühendislerin etik algılarını ölçmeye yönelik saha çalışmalarının yapılması
faydalı olacaktır. Böylece konuya ilişkin problemler daha net olarak ortaya
konulabilir. Ayrıca emniyet kritik yazılım geliştirme projelerine özel bir etik kod
setinin belirlenmesi de, bu konuda çalışan mühendis ve firmalara yol göstermek adına
faydalı olacaktır.</p>
    </sec>
    <sec id="sec-7">
      <title>Kaynaklar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Ian</given-names>
            <surname>Moir</surname>
          </string-name>
          , Allan G. Seabridge, “
          <source>Civil Avionics Systems” John Wiley &amp; Sons, 2nd Edition</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Burak</given-names>
            <surname>Ata</surname>
          </string-name>
          , Özgür Babur, “
          <article-title>Emniyet Kritik Aviyonik Yazılımlarda Tespit Edilememiş Hataların Yol Açtığı İstenmeyen Durumlar ve Kazalar”, 5</article-title>
          .
          <string-name>
            <given-names>Ulusal</given-names>
            <surname>Yazılım Mühendisliği Sempozyumu 2011 Bildiriler Kitabı</surname>
          </string-name>
          ,
          <source>Sayfa 149-152</source>
          ,
          <fpage>26</fpage>
          -
          <lpage>28</lpage>
          Eylül
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Ian</given-names>
            <surname>Dodd</surname>
          </string-name>
          , Ibrahim Habli, “
          <article-title>Safety Certification of Airborne Software:An Empirical Study”</article-title>
          ,
          <source>Reliability Engineering and System Safety</source>
          ,
          <volume>98</volume>
          , Sayfa 7-
          <issue>23</issue>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Leanna</given-names>
            <surname>Rierson</surname>
          </string-name>
          , “
          <article-title>Developing Safety-Critical Software”</article-title>
          ,
          <source>CRC Press, 1st Edition</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. SAE ARP4754A,
          <article-title>“Guidelines for Development of Civil Aircraft</article-title>
          and Systems”,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. RTCA, “DO-178C
          <source>Software Considerations in Airborne Systems and Equipment Certification”</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. CENELEC, “
          <article-title>EN 50128 - Railway applications: software for railway control</article-title>
          and
          <source>protection systems”</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Alptekin</given-names>
            <surname>Sökmen</surname>
          </string-name>
          , Serdar Tarakçıoğlu, “Mesleki Etik”,
          <source>Detay Yayıncılık</source>
          ,
          <volume>1</volume>
          . Baskı,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Ahmet</given-names>
            <surname>Cevizci</surname>
          </string-name>
          , “Felsefe”,
          <source>Anadolu Üniversitesi Yayınları</source>
          ,
          <volume>1</volume>
          . Baskı,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Çiğdem</surname>
            <given-names>Kırel</given-names>
          </string-name>
          , “
          <article-title>Örgütlerde etik davranışlar, yönetimi ve bir uygulama çalışması</article-title>
          ,
          <source>Anadolu Üniversitesi Yayınları</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Adil</surname>
            <given-names>İzveren</given-names>
          </string-name>
          , “ Toplumsal törebilim: sosyal ahlâk”, Ankara İktisadi ve Ticari İlimler Akademisi Yayınları,
          <year>1980</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Sunil</surname>
            <given-names>Nair</given-names>
          </string-name>
          , Jose Luis de la Vara, Mehrdad Sabetzadeh, Lionel Briand, “
          <article-title>An Extended Systematic Literature Review on Provision of Evidence for Safety Certification”</article-title>
          ,
          <source>Information and Software</source>
          Technology Vol.
          <volume>56</volume>
          ,
          <string-name>
            <surname>Sayfa</surname>
          </string-name>
          689-
          <issue>717</issue>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Jonathan</surname>
            <given-names>Bowen</given-names>
          </string-name>
          , “
          <article-title>The Ethics Of Safety-Critical Systems”</article-title>
          ,
          <source>Communications Of The Acm</source>
          , Vol.
          <volume>43</volume>
          , No. 4,
          <string-name>
            <surname>Sayfa</surname>
            <given-names>91</given-names>
          </string-name>
          <source>-97</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Douglas</surname>
            <given-names>Birsch</given-names>
          </string-name>
          , “
          <article-title>Moral Responsibility for Harm Caused by Computer System Failures”</article-title>
          ,
          <source>Ethics and Information Technology</source>
          , Vol.
          <volume>6</volume>
          ,
          <string-name>
            <surname>Sayfa</surname>
            <given-names>233</given-names>
          </string-name>
          <source>-245</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Nancy</surname>
            <given-names>G</given-names>
          </string-name>
          . Leveson, Clark S. Turner, “
          <article-title>An Investigation of the Therac-25 Accidents”</article-title>
          , Vol.
          <volume>26</volume>
          , No. 7,
          <string-name>
            <surname>Sayfa</surname>
            <given-names>18</given-names>
          </string-name>
          <source>-41</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>