Debugging, Tıp ve Uzaylı Kaçırması

5 Kasım 2009 - 17:12 | Yiğit İREZ yazdı | 74 kere okundu | Yorum Yapılmamış | Sizin İçin Seçtiklerimiz // Tekno Haber

Üçünün de çok benzer yanları olduğunu biliyor muydunuz?

Şöyle bir düşününce, kod ayıklama (türkçe yazayım dedim, normali tabii ki debugging) ve uzaylı kaçırmaları arasında bir benzerlik var gibi gözüküyor. İkisinde de zamanın sanki yok olduğu büyük zaman boşlukları var.
Modern tıbbın da debugging’e benzeyen yanları var. İşlerinin en zor kısmının ne olduğunu sorduğunuzda çoğu doktor hastalık teşhisinin zorluğundan bahsediyor. Çoğu kişi net ve basit sorunlarla gelirken bazen birisi birçok hastalığın belirtilerinin bir arada olduğu ve kesin bir teşhis koymanın çok zor olduğu bir durumda doktordan yardım isteyebiliyor. Asıl hastalığı bulmak için birçok testler ve yöntemler devreye sokuluyor. Önemli semptomplara odaklanılarak hastalık teşhis edilmeye çalışılıyor ve işin kötü tarafı, birden fazla hastalık da olabilir.
Dikkatlice okuduğunuzda, bu durumun gömülü sistemlerde program debuglamaya ne kadar benzediğine şaşırmamak elde değil. Ürün de bir böcek (bug-türkçede koşmayı duydum ya artık bug da böcektir diye varsaydım 8-) birden fazla soruna sebep olabilir. Düğmeye basarsınız ama tık yok. Kablolar doğru mu bağlandı? Devrelerde bir sorun mu var? Belkide yazılıma gerekli sinyal gelmiyor olabilir. En muhteşemi güç ünitesini fişe takmayı unutmuş olabilirsiniz.

Gömülü sistemlerde sinir bozucu olan bir başka durum ise bu böceklerin (bug) birden fazla soruna sebep olma ihtimalinin yanısıra, bir kaç böceğin tek ve artık kendi çapında bir mantık sistemine dönüşen devasa bir probleme sebep olma ihtimalide bulunuyor. Ayrıca problemler bir anda yok olup, günler, belki haftalar sonra rastgele tekrar ortaya çıkabiliyor. Bu bile tıpta benzeri olan bir durum.

embedded baby

Tıp ile gömülü sistemlerin çok sert bir çizgiyle ayrılan kısmı, çoğu hastalığın geldiği yerlerin ve sebeplerinin belli olmasıdır. Yani semptomlar netleştirildiğinde, belirtilerin yazdığı devasa tıp kitapları (artık search yapıyorlar bilgisayar programı aracılığıyla…gözlerimle gördüm) karıştırılarak hastanın semptomlarına karşılık gelen hastalık tespit edilir ve o hastalığa karşılık gelen tedavi yöntemleri uygulanmaya başlanır. Gömülü sistemlerde sistem çöktüğü zaman bakılabilecek kitap, hatta arama yapılabilecek bir sorun veritabanımız bile yoktur. Bir sistem o kadar çok fazla şekilde çökebilir ve buna sebep olacak o kadar çok sorun kombinasyonu vardır ki dudaklar uçuklamak yerine dükkan kapatır. Aslında mantık olarak çok garip geliyor değil mi? Trilyonlarca hücrenin uyum içerisinde bir arada varolmasının ürünü olan insan, en büyük ve karmaşık gömülü sistemden milyonlarca kat daha karmaşıktır.
Gömülü sistemcilerin avantajı, problemi bulana kadar hastamızın parçalarını gönlümüzce değiştirebilir ve söküp takabiliriz. O büyük yeşil tuşa bastığımızda hastamız hayata döner.

Debugging hem sanat hem de bilimdir. Sanattır, çünkü uzun yıllar süren “hands on” (elleyerek? pratik?) tecrübe gerektirir. Debug ile çözüme ulaşmaya çalışırken geçmiş tecrübelerimiz ve karşılaştığımız olaylara göre hareket ederiz. Heykeller ve resimler sanatsa, bir gömülü sistemi böceksizleştirmekte bir sanattır. Kitaplarında yardımı olmakta ancak çıraklık dönemi, büyük önem taşımaktadır.

Debugging ayrıca bilimdir çünkü problem neredeyse hiçbir zaman rastgele hamleler karşısında çözülmez. Böceksizleştirmek ( 8-) ) için sorunu tespit etmek, sorumluları gözaltına almak, çözüm önermek, çözümü denemek ve çözüme ulaşılmamışsa en baştan başlamak gerekir ( tam tabiriyle “lather, rinse and repeat”).

Donanım veya yazılımla uğraşan çoğu kişinin başına gelmiştir; problemler üstüste yığılmış ve çözüm ulaşılmaz gibi gözükmektedir. Herşey denenir, nice debuglar uygulanır programcılar yada donanımcılar perişan olur. Ancak (benim başıma en az 2 kere geldi) birisi gelip bir yere bir virgül koyar yada “hmm şu kablo tam girmemiş sanki diye hafifçe ittirir ve sorun yok olur. Alınan aspirinler, oturmaktan neredeyse kalıcı olacak kare … sendromları 8-) ve sinir krizleri bir virgül yada konuyla alakasız birinin bir kabloyu ittirmesiyle yokolur. Bu yüzden kendi tecrübelerime göre, bir soruna bodoslama dalmadan ve breakpointleri çılgınca yerleştirmeden önce, doktorları örnek alıp hastayı dinlemeye çalışıyorum. Nedir kardeşim senin derdin diyorum? O da garip rakamlar ve yanık donanımlar ile cevap veriyor. Bazende hiç cevap vermiyor ve farkediyorum ki güç kablosu takılı değil 8-)

Teknovole.com bu bilgiyi size ücretsiz olarak sunmaktadır. Unutmayınız ki dünyadaki en pahalı şey bilgidir. Teknovole.com'un özgür ve özgün yayın yapabilmesi için siz de bu bilgiyi paylaşın!

Yazar Foto
Yiğit İREZ

E-posta

'86 doğumlu '08 DAU Bilgisayar Mühendisliği mezunu.'09 yılına kadar J2SE, ve özellikle J2EE teknolojilerine yoğunlaşmış, daha sonra gömülü sistemler üzerine çalışmalara başladığından C/C++/EC++ ve uygulamaların üzerinde çalıştığı RTOS konularında belirli bir bilgi birikimini oluşturmuştur. Bunların yanında oyun oynamayı şiddetle seven ancak çok sert kriterleri olduğundan çoğu oyunu yüklerken sıkılmaktadır. Hobiler her cv'de standard olan yüzme, tenis ve ekstra olarak kayak, electro olarak gösterilebilir. Blues Harmonica aramaktadır:D.

» Toplam 118 yazı yazmış olan yazarın diğer yazıları için tıklayınız
 

Yorumunuzla Katkıda Bulunun!

 

 

 

 

 

 

Bizi Sosyal Ağlarda Takip Edin

Facebook Twitter Friendfeed Youtube

RSS Kaynakları

Tekno TV

Masaüstü Duvar Kağıtları

Ortaya Karışık

Son 10 Yorum

Kutuları Aç

Günün En Çok Okunanları

Haftanın En Çok Okunanları

En Çok Yorumlananlar

En Çok İndirilenler

OKUMANIZI TAVSiYE EDiYORUZ