Yazılım Sorunlarından Nasıl Kaçınılır?
Çeşitli / / November 29, 2021
Bu dijital çağda, Facebook ve Twitter gibi sosyal medya devlerini ve Alibaba ve Amazon gibi e-ticaret platformlarını mutlaka duymuşsunuzdur. Bu çevrimiçi web siteleri, çalışmaları için çeşitli yazılım paketlerine güvenir. Bu programlar açıkçası çalışma, düşünme ve yaşama şeklimizi değiştirdi.
Ayrıca, daha önce tamamen mekanik olan birçok cihaz artık yazılım tarafından kontrol ediliyor. Örneğin, termostatlar bir zamanlar elektromekanik cihazlardı. Ancak, artık operasyon için büyük ölçüde yazılıma güveniyorlar.
Yine de, yazılım hataları özellikle günlük aktiviteler için onlara artan güvenimizle, oldukça sorunlu olabilir. Aslında, yazılımın amaçlanan amacının gerisinde kaldığı ve hoş olmayan sonuçlara yol açtığı birkaç durum olmuştur.
Bu yazıda, yazılım performansının hedefini büyük ölçüde kaçırdığı 4 durumdan ve bu tür yazılım sorunlarından nasıl kaçınılacağından bahsedeceğiz.
1. ABD Çok Eyaletli 911 Kesintisi
911, bireylerin gerektiğinde acil durum personeli ile iletişim kurmasını sağlayan kritik bir hizmettir. Bazen, acil durum görevlileriyle 911 aracılığıyla iletişime geçmek, kelimenin tam anlamıyla yaşam ve ölüm arasındaki farkı yaratabilir.
Bu nedenle, 9 Nisan 2014'te oldukça felaketti, 911 çağrı yönlendirme başarısız oldu Kaliforniya, Florida, Minnesota, Kuzey Karolina, Pensilvanya, Güney Karolina ve Washington dahil olmak üzere ABD'nin yedi eyaletinde.
Bu kesintiye, Colorado'da Intrado'nun sahibi olduğu bir acil çağrı yönetim merkezinde meydana gelen önlenebilir bir kodlama hatası neden oldu.
2. United Airlines Filosunun Karaya Çekilmesi
Temmuz 2015'te United Airlines, tüm filosunu yere indir Bir yazılım arızası nedeniyle uçağın Bu, dünya çapında 4.900'den fazla uçuşu etkiledi ve birçok yolcuyu havaalanlarında mahsur bıraktı ve açıkçası hüsrana uğradı.
Havayolunun birçok yolcuyu rahatsızlıktan dolayı tazmin etmesi gerekeceğinden, muhtemelen ekonomik bir etkisi de vardı. Ayrıca, topraklama nedeniyle aksayan birkaç önemli iş toplantısı da vardı.
3. Toyota Camry Hızlandırıcı Pedalı Arızası
Eylül 2007'de Jean Bookout, Oklahoma'daki Interstate Highway 69'da yolcu Barbara Schwarz ile seyahat ederken zorlukla karşılaştı. Toyota Camry'sini kontrol etmek.
Ayaklarını gazdan kaldırmaya çalıştı ama araba hızlanmaya devam etti. Fren pedalı arabayı durduramadı ve acil durum frenini kullanmak zorunda kaldı.
Ne yazık ki, bu arabayı bir setin içine attı. Sonuç olarak Schwarz öldü ve Bookout kritik yaralanmalar nedeniyle beş ay hastanede kaldı.
Kazanın, Camry'nin CPU'sundaki bir görevin çökmesine neden olan birkaç kodlama yetersizliği nedeniyle meydana geldiği tahmin ediliyordu. Bu CPU, ateşleme, gaz kelebeği kontrolü ve hız sabitleyici dahil olmak üzere çok sayıda işlevi kontrol eder.
Toyota'nın kodu, eski kodların üzerine birkaç yıl boyunca yeni kodlar yığıldıktan sonra karışık bir karmaşa haline geldi. Bu genellikle 'spagetti kodu' olarak adlandırılır.
Ancak Bookout'un kazası bu konuyu gün ışığına çıkardı ve Toyota'nın yazılım sürecindeki kusurlarını vurguladı. Hatta 10 milyondan fazla yol olduğu bulundu. potansiyel olarak meydana gelebilecek istenmeyen hızlanma, Toyota'nın kodunun yapılandırılma şekline göre.
Yuva Termostat Arızası
Nest bir şirkettirAlfabeye ait, akıllı termostatlar yapar. Bu termostatlar oldukça şık ve kullanıcıların evlerindeki sıcaklığı akıllı telefonlarından kontrol etmelerine izin veriyor.
Geçen kış, Nest termostatları bir aksaklık yaşadı pillerinin bitmesine neden olan hatalı bir yazılım güncellemesi şeklinde. Ne yazık ki, bu hata kışın ortasında meydana geldi ve birkaç kullanıcıyı geçici olarak ısısız bıraktı. Bu kesinlikle yılın bu zamanında olmasını istemediğiniz bir şey.
Yazılım Sorunlarının Kısa Bir Analizi
Model tabanlı tasarım ve TLA+ gibi yaklaşımlar, geliştiricilerin yazılımlarının nasıl çalıştığına dair daha büyük bir genel bakış elde etmelerini sağlar.
Tanınmış bir bilgisayar araştırmacısı olan Brett Victor, bağlantı kesilmesi programcılar ve kodlarla çözmeye çalıştıkları problemler arasında.
Bu bağlantı kesilmesi nedeniyle, programcıların kodlara ne koymaya çalıştıklarını tasavvur etmeleri zorlaşıyor. Victor, bunun yazılımların hatalarla dolu olmasına katkıda bulunan faktörlerden biri olduğunu düşünüyor.
Ancak, umut var. gibi yaklaşımlar model tabanlı tasarım ve TLA+ geliştiricilerin yazılımlarının nasıl çalıştığına dair daha büyük bir genel bakış elde etmelerini sağlar.
Model tabanlı tasarım, adından da anlaşılacağı gibi, görsel modeller aracılığıyla yazılımların geliştirilmesine olanak tanır. Temporal Logic of Actions'ın kısaltması olan TLA+, bir bilgisayar programının özelliklerini yazmak için tasarlanmış bir dildir. TLA+'nın harika yanı, yazılımın duyurulmadan önce kapsamlı bir şekilde test edilmesine ve doğrulanmasına izin vermesidir.
Hem model tabanlı tasarım hem de TLA+, tuzlarını zaten kanıtladılar. Esterel teknolojileri, bir yazılım geliştirme firması, güvenlik açısından kritik yazılımlar oluşturmak için model tabanlı tasarım kullanırken, TLA+ benzerleri tarafından kullanılmıştır. Microsoft olası bir Xbox hatasını düzeltecek ve Avrupa Uzay Ajansı tarafından bir uzay aracına inen bir sondanın kodlarını yeniden yazacak. kuyruklu yıldız.
Kod yazma süreci, programcılar tarafından büyük saygı görmektedir. Birçoğu oldukça basit bir şekilde kod yazma süreciyle ilgileniyor. Bu nedenle, bazı programcıların model tabanlı tasarım ve TLA+ gibi yaklaşımları kabul etmesini sağlamak zorlu bir iştir. Bu yaklaşımlar genellikle gerçek dünyada uygulanabilirliği olmayan katı bir şekilde akademik olarak algılanır. Ancak, bir görüş değişikliği mümkün olduğunca erken gelmelidir.
Son düşünceler
Yazılım, yerleşik güvenlik önlemleri gerektiren uygulamalarda giderek daha fazla kullanılmaktadır. Yazılım tasarlamanın daha iyi yöntemleri, bu tür uygulamalar hayatımızda hayati önem taşıdığından, yönetim kurulu genelinde tanıtılmalıdır.
Otomasyon gibi süreçler bugünlerde büyük ölçüde yazılıma dayanıyor, ancak bir kod satırındaki bir hata, yukarıdaki örneklerin gösterdiği gibi bizi büyük aksiliklere götürebilir.
Şimdi, bu uygulamalara Yapay Zeka (AI) gibi bir şeyin dahil edildiğini hayal edin. yapay zeka kendi başına yeterince korkutucu yazılım hataları olmadan. Karışıma böcekler ekleyin ve ne olabileceğine dair hiçbir şey söylenemez.
Ancak burada bir gümüş astar var. Biraz çalışma ve bazı yeni araçlarla, daha sağlam bir şekilde tasarlayıp saplamalarına göre test ederek daha iyi yazılım ve yapay zeka yapabiliriz.
Umalım ki, yazılımı tam potansiyeliyle, ancak yalnızca daha güvenli ve daha akıllı bir gelecek inşa etmek için kullanabilmemiz için bu kritik konunun ilgili yetkililer tarafından ciddiye alındığını umalım.