Tersine Mühendislik

0
459

Bir sistem, cihaz ya da nesnenin üretim aşamalarını da içerecek şekilde tasarım ve işlevsel özelliklerinin tahlil edilmesine ‘Tersine Mühendislik (Reverse Engineering)’ olarak adlandırılmaktadır. Bu tanımlama; eldeki mevcut mamulden hareketle ve imalat prosesindeki işlem sırasında geriye doğru gidilmek suretiyle, operasyonların tümünün çözümlenmesi çalışmalarının bütününü ifade eder.

Kullandığımız her mamulün bir üretim aşaması vardır. Bir ekmeğin üretim sürecini düşünün. Toprağa ekilen buğday tohumunun yetişip hasat edilmesinden tutunda, buğdayın öğütülerek hamura ve sonrasında fırınlanarak ekmek haline getirilmesine kadar hemen herkes bu aşamaları bilir. Ancak bu safhalarını hiç bilmeyen birisi, o ekmeğin nasıl üretildiğini bilmeden bu aşamaları nasıl çözümleyebilir?

Tersine mühendislik; bir makinenin motoruna uygulanabileceği gibi, bilgisayar yazılımı üzerine de uygulanabilir. Hatta insan beyninin çalışma prensibi bile tersine mühendislikle çözümlenebilir. Bazı ihtiyaçlara yönelik olarak ortaya çıkmış olan bu yöntem, çözümleyici becerileri nedeniyle farklı alanlarda da kullanılabiliyor. Bunları şu şekilde sıralamak mümkün;

  • Yeni bir ürün geliştirmek için harcanan zaman ve emeğin oldukça fazla olması ve maliyetinin de rekabet edilecek düzeyde olmaması,
  • Esas üreticinin ilgili ürünün üretimini durdurmuş olması veya talep edilen ücretin fazla olması,
  • Bir ürünün üzerinde yapılacak değişiklik veya geliştirmelerin bir modele aktarılarak çözümlenmesi,
  • Özellikle medikal uygulama alanlarındaki karmaşık ve özgün tasarımların modellerinin elde edilmesi,
  • Teknik bilgilerde ve belgelerde eksikliğin bulunması,
  • Elde sadece fiziki örneği bulunan ürünün tasarımının iyileştirilmesi veya analiz edilmesi amacıyla bilgisayar ortamına aktarılmasıdır.

Bilgisayar destekli tasarımın kullanımı arttıkça tersine mühendislik; 3D bilgisayar destekli tasarım (CAD), bilgisayar destekli üretim (CAM), bilgisayar destekli mühendislik (CAE) ve diğer yazılımlarda kullanılmak üzere mevcut parçaların 3D sanal modellerinin yaratılması için kullanılabilir bir yöntem haline gelmiştir. Yöntem sayesinde, 3D tarayıcılar aracılığıyla model, CAD ortamına aktarılır ve kumpas, mikrometre gibi ölçü aletleri ile ölçülmesi mümkün olmayan parça CAD ortamında yeniden modellenebilir. Böylece parçanın şekli ne olursa olsun yüksek hassasiyette CAD modelleri elde edilebilir. Bununla birlikte modelleme süresi epeyce kısalırken modelleme esnasında yapılabilecek hatalar da en aza indirilebilir.

Makine mühendisliği alanında ürün ve sistemler üzerine uygulanırken belli bir sistem izlenir. Bunlar sırasıyla;

• Üç boyutlu sayısallaştırma/tarama araçlarının kullanılmasıyla fiziki modelin dijital ortamda elde edilmesi. Bu araçlar ihtiyaca göre optik-lazer tarama ya da koordinat ölçüm cihazı kullanılarak istenen geometrinin nokta bulutu – kesit eğrileri ve STL formatında muhafaza edilmesi sağlanır.

• Oluşturulacak son modelin fiziki modele en yakın yapıda olması için gerekli düzeltmelerin yapılması.

• Düzeltilmiş nokta bulutu ve kesit eğrileri veri topluluğunun tersine mühendislik yazılımlarının ve CAD yazılımlarındaki tersine mühendislik modüllerinin kullanılmasıyla yüzeyler elde edilmesidir. Elde edilen yüzeyler kesin bir CAD modeli oluşturur. Bu CAD modeli, örneğin talaşlı imalat ile bir CNC programlamayla ilk fiziki model elde edilir.

Bu sistem içerisinde eğer parça ve sistemlerin mühendislik analizleri de gerekir ise CAE yazılımları ile analizleri yapılabilir.

Model üzerinden tersine mühendislik uygulanmış ürünlere en güzel örnek “Çin Malı” veya “Replica” olarak tabir ettiğimiz ürünlerdir. Bu sistem sayesinde Çin, sanayisini geliştirmiş ve standartların üzerinde ürün imalatı gerçekleştirebilir hale gelmiştir.

Yazılım alanında tersine mühendislik ise; çalışan bir yazılımın kaynak kodlarına erişimin olmaması durumunda bazı akılcı yöntemlerle sistemin çalışma prensibini çözmeyi ve kaynak koda erişme sürecini kapsar. Başarılı bir yöntemle yazılımın çalışma mantığı çözülerek kaynak kodu yeniden oluşturulabilir ve yazılım aynı yönergeleri yerine getirecek şekilde tekrar yapılandırılabilir. Yazılım üzerine tersine mühendislikte öncelikle yazılımın yönergeleri ve gerçekleştirdiği işlemler belirlenir. Sonra bu işlemlerin hangi kod yapılarıyla sağlanmış olabileceği üzerine çıkarımlarda bulunulur ve benzer yönergeleri oluşturabilecek kod dizileriyle yazılım yeniden oluşturulur. Böylelikle yazılımın kaynak kodu açık olmasa bile özgün bir hali yeniden elde edilebilir.

Tersine mühendislik; yazılım ve bilgisayar dünyasında markaların kendini geliştirmek için kullandıkları en popüler yöntemlerden biridir. Mesela ilk defa Snapchat’in sunduğu canlı filtre özelliği, kısa zamanda kullanıcıların en beğendiği özelliklerden biri haline gelmişti. Tersine mühendislikle birlikte yazılımcılar bu sistemin nasıl çalıştığı konusunda analizler yapıp, algoritmayı ve sistemi çözerek kendi kodlarıyla kaynak kod meydana getirip, bu özelliği başka yazılımların içinde kullanabildiler. Buna en önemli örnek olan Facebook, uyguladığı tersine mühendislik ile Snapchat’in filtre sistemini yeniden inşa etmiş ve Facebook’a entegre bir şekilde çalışmak üzere yapılandırmıştır. Sonuçta Facebook sadece sistemi kopyalamakla kalmamış, çok daha iyi hale getirmek için çalışmalar gerçekleştirmiştir.

Bilgisayar destekli üretim alanında kullanıcılara yönelik tersine mühendislik yazılımları mevcut. Ancak web teknolojileri ve yazılım açısından baktığımızda tersine mühendislik yazılımları yoktur ya da var olanlar hiçbir işe yaramamaktadır. Yazılım dilini, usta bir yazılımcının ‘tüme varım, tümden gelim’ gibi yöntemleri kullanarak çözümlemesi çok daha doğru sonuçlar verecektir.

Ülkemizde tersine mühendislik kavramı çok fazla bilinmemekle birlikte, bilen kesim tarafından da etik görülmemektedir. Yıllardır teknolojiyi yalnızca satın alıyor ve satın aldığımız taraf bize ne sunduysa onunla yetiniyoruz. Oysa tersine mühendislik konusuna yeterince eğilirsek, modelini çözümlediğimiz her ürünün çok daha gelişmiş halini bile üretebilmek mümkündür. Böylece direkt olarak satın aldığımız teknolojiye muhtaç olmadan, kendi güvenli teknolojimizi oluşturabilir ve böylelikle ekonomik fayda da sağlayabiliriz.

CEVAP VER

Please enter your comment!
Please enter your name here