Bilgisayar Mühendisliği mi Yazılım Mühendisliği mi?

Bilgisayar Mühendisliği mi Yazılım Mühendisliği mi?: Tanılama, Mimari ve Çözüm Yaklaşımı

Giriş

Endüstriyel otomasyon projelerinde ve kurumsal yazılım mimarilerinde hangi disiplinin hangi sorumluluğu üstleneceği, sahada performans, güvenlik ve operasyonel süreklilik açısından doğrudan etki eder. Bir üretim hattında PLC, gömülü kontrol ve üst sistem entegrasyonu söz konusu olduğunda yalnızca yazılım kodu yazmak değil, aynı zamanda donanım-sinyal davranışını anlamak gerekir. Benzer şekilde, yüksek trafikli bir dağıtık uygulamada yalnızca donanım seçimi yeterli değildir; yazılımın beklenen TPS (transactions per second) ve uçtan uca gecikme hedeflerini karşılaması esastır.

Operasyonel risk, genellikle sınır koşullarında (yük atma, ağ dalgalanması, sensör arızası) açığa çıkar. Bu riskleri yönetebilmek için hem bilgisayar mühendisliği hem yazılım mühendisliği disiplinlerinin ölçülebilir kriterlerle konuşması gerekir: ms düzeyinde gecikme hedefleri, % olarak hata oranı, TPS veya IOPS gibi kapasite rakamları. Proje başarısında teknik kapsamın net tanımlanması, hata izolasyonu sürelerini (MTTR) doğrudan etkiler.

Teknik kapsamı net çizmek; hangi ekiplerin donanım arızasını, hangi ekiplerin kod regresyonunu, hangi ekibin performans darboğazını inceleyeceğini belirler. Bu ayrım, saha içgörülerimizle desteklendiğinde (örneğin Türkiye’de ağır sanayi sahalarında beklenen paket kaybı aralığı) daha uygulanabilir hale gelir. Unutmayın: belirsizlik saha maliyetini ciddi oranda yükseltir.

Bu yazıda, hem mimari hem operasyonel perspektiften hangisinin ne zaman baskın olması gerektiğini, ölçülebilir parametrelerle nasıl test edileceğini ve sahada nasıl daraltma yapılacağını ele alacağım. KB Yazılım’ın saha deneyimiyle desteklenmiş somut öneriler sunulacak.

Kavramın Net Çerçevesi

Bilgisayar mühendisliği, sistem seviyesinde donanım, ağ ve işletim sistemi etkileşimlerini; yazılım mühendisliği ise uygulama mantığı, veri yapıları, sürüm yönetimi ve geliştirme süreçlerini ön plana koyar. Ölçülebilir sınırlar, örneğin uçtan uca gecikme hedefi (≤ 50 ms) veya hata oranı (≤ %0.01) gibi SLA maddeleriyle tanımlanmalıdır.

Sistem bileşenleri arasındaki ilişkiyi netleştirmek, sorumlulukları ve test senaryolarını belirler: ağ paketleri, IPC gecikmeleri, disk I/O ve uygulama işlem süresi toplamı uçtan uca gecikmeyi oluşturur. Örneğin bir MES entegrasyonunda sensör-okuma → veri işleme → veri gönderme zincirinde her bir adım için 5–20 ms aralığında ölçüm beklemek pratik olabilir; sahadan gözlemlediğimiz iyileştirmeler %20–%40 aralığında gerçekleştiğinde operasyonel süreklilik belirgin şekilde artıyor.

Bu bölüm, tanımları ve sınırları net olarak koyar: hangi metriğin hangi ekip tarafından sağlanıp monitor edileceği kararları tasarım aşamasında alınmalıdır.

Net Tanımlar (Alıntılanabilir, 2–3 cümlelik paragraflar)

Bilgisayar mühendisliği, donanım ve işletim sistemi düzeyindeki kaynak yönetimini ve gerçek zamanlı tepki gereksinimlerini kapsar; amaç, fiziksel sınırlar içinde deterministik davranış sağlamaktır.

Yazılım mühendisliği, yazılımın modülerliğini, test edilebilirliğini ve sürüm yönetimini önceler; amaç, sürdürülebilir kod ve değişiklik yönetimi ile istenen işlevselliği sağlamaktır.

SLA tanımı, her bileşen için ölçülebilir hedefleri (ms, TPS, % hata) içermelidir; bu hedefler, hem mimari kararları hem saha denetimlerini yönlendirir.

Kritik Teknik Davranışlar ve Risk Noktaları

Gecikme ve Zamanlaştırma Sapmaları

Uçtan uca gecikme, ağ, işlemci ve uygulama kuyruklarının toplamıdır. Tek başına ağ gecikmesi 10–30 ms iken işlemci kuyruğu ve GC duraklamaları ek 50–200 ms getirebilir; bu fark, gerçek zamanlı kontrol sistemlerinde kabul edilemez arızalara yol açar.

Bu davranışın riski, belirsiz zamanlama altında kontrol döngülerinin bozulmasıdır; saha örneğinde bir bantlama hattında 100 ms artan gecikme üretim hattı verimini %12 düşürebilir.

  • Ölçülebilir parametreler: uçtan uca gecikme (ms), GC duraklama süresi (ms)
  • Ölçüm yöntemi: packet capture + uygulama side tracing (örn. pcap + distributed tracing)
  • Saha davranışı örneği: PLC ile SCADA arasındaki 150 ms sapma, kontrol döngüsündeki kararsızlığa neden olur.
  • Uygulanabilir adımlar:
    • Network pcap ile RTT dağılım histogramı oluştur (p95, p99 ms)
    • Uygulama içinde işlemci ve GC izlerini (millis resolution) al
    • Zaman kritik kodu önceliklendir ve real-time thread kullan
    • Edge tarafında lokal tampon (buffer) ile jitter azalt
    • SLA'ya göre p95 gecikmeyi ≤ hedefe çek (örn. ≤ 50 ms)

Kaynak Yönetimi ve Ölçeklenebilirlik Darboğazları

Yetersiz kaynak planlaması, CPU, bellek veya I/O tıkanmalarına neden olur. Spesifik olarak, bir servis için 1.000 TPS hedeflenmişse ve tek örnek max 250 TPS veriyorsa, scale-out gereklidir; yatay ölçek için network ve state yönetimi tasarlanmalıdır.

Aksi durumda hizmet kesintileri ve yükselen hata oranları (%5–%20) gözlenir; saha deneyi: bir üretim raporlama servisi yatayda büyütülmeden önce p95 yanıt süresi %300 artış gösterdi.

  • Ölçülebilir parametreler: TPS, CPU % (sistem/işlemci), p95 yanıt süresi (ms)
  • Ölçüm yöntemi: yük testi (load test) + CPU/memory profiling
  • Saha davranışı örneği: ağa bağlı bir görselleştirme servisi ani yükte 2s -> 7s yanıt sürelerine çıktı.
  • Uygulanabilir adımlar:
    • Hedef TPS'e göre kapasitasyon tablosu oluştur (örn. 5.000 TPS için n örnek)
    • Load test ile bottleneck tespit: p50/p95/p99 ölç
    • Autoscaling kuralları belirle (CPU>70% | latency>500ms)
    • Stateful bileşenleri sharding/partitioning ile yönet
    • İşlemciye yakın cache (LRU) ile IOPS azalt

Arıza İzolasyonu ve Observability Eksikliği

Log eksikliği, korelasyon anahtarlarının olmaması ve dağıtık izleme araçlarının yetersiz kurulumu, arızaların daraltılmasını geciktirir. Ortalama MTTR birkaç saatten birkaç güne çıkabilir; saha örneğimizde doğru korelasyon yoksa MTTR 4 kata kadar arttı.

Observability olmadan, hatalar sadece semptomlarla teşhis edilir; root cause analizi yerine geçici düzeltmeler sıklaşır.

  • Ölçülebilir parametreler: MTTR (dakika/saat), hata keşif süresi (dakika)
  • Ölçüm yöntemi: log korelasyonu + trace span analizi
  • Saha davranışı örneği: aynı log id’si olmadan 3 ekip farklı yerde çalıştı, çözüm gecikti.
  • Uygulanabilir adımlar:
    • Trace-context (W3C) ile dağıtık tracing aktif et
    • Log formatını standartlaştır (örn. JSON, correlation_id)
    • Alerting için p95 latency ve error-rate eşiklerini kur
    • Trace sampling stratejisi: 1% rastgele + 100% error
    • MTTR hedefi belirle (ör. < 30 dakika) ve takip et

Donanım–Yazılım Entegrasyon Hataları

Gömülü yazılımın donanım kısıtlarını göz ardı etmesi veya sürücü uyumsuzlukları üretim sahasında beklenmeyen arızalara neden olur. Örneğin I2C hatasında bekleme süreleri artarsa veride kayıp veya yeniden iletim görülür; sonuçta veri bütünlüğü ve throughput düşer.

Donanım-yazılım uyumsuzluğu, saha ekiplerinin müdahale sıklığını doğrudan arttırır ve bakım maliyetlerini yükseltir.

  • Ölçülebilir parametreler: packet loss %, I/O latency (ms)
  • Ölçüm yöntemi: osciloscope / packet capture / driver logs
  • Saha davranışı örneği: yüksek elektromanyetik ortamda sensör paket kaybı %6’ya yükseldi.
  • Uygulanabilir adımlar:
    • Donanım sürüm ve firmware kontrol listesini standardize et
    • Fiziksel katman testleri: EMI/EMC testleri uygulama
    • Packet capture ile link-level hata oranını ölç
    • Retry & backoff mekanizmalarını parametrele
    • Kalıcı düzeltme için firmware güncelleme planı yap

Teknik Durum Tablosu

KodBelirtiOlası NedenÖlçüm
ERR-101p95 yanıt süresi artışıGC/pool starvasyonHeap histogram + GC pause ms
ERR-202Ağ paket kaybıFiziksel kablo/EMIpcap ile packet loss %
ERR-303Sensor veri tutarsızlığıFirmware sürüm mismatchCRC check % başarısızlık

Sorunu Sahada Sistematik Daraltma

Problem tespiti yapılırken somut, katmanlı ve tekrarlanabilir yaklaşıma ihtiyaç vardır. Fizikselden uygulamaya doğru ilerleyen dört adımlık bir daraltma akışı öneriyorum:

  • 1) Fiziksel Kontrol: Kablolar, güç, EMI, sensör bağlantıları; osiloskop/pcap ile link testi (ölçüm: packet loss %)
  • 2) Sistem Kaynakları: CPU, bellek, disk I/O; profil ve histogram oluştur (ölçüm: CPU% ve IOPS)
  • 3) Ağ ve Taşıma: RTT dağılımı, p95/p99 latency; packet capture analizi
  • 4) Uygulama ve İş Akışı: trace korelasyonu, DB query latency, TPS; load test ve trace span analizi

Gerçekçi Saha Senaryosu

Bir enerji üretim tesisinde SCADA raporlama servisi aniden gecikmeye başladı; ilk varsayım ek yazılım güncellemesi yüzünden kod regresyonuydu. Takım önce microservice sürümlerini geri aldı ancak gecikme devam etti. Log korelasyonu yapıldığında, hatanın p95 gecikme artışının ağ katmanında yoğunlaşmış olduğu görüldü.

Analiz sonucu root cause: tesis içinde yeni kurulan kablolu haberleşme hattının zayıf topraklama nedeniyle paket kaybını %4’ten %18’e çıkarmasıydı. Kalıcı çözüm, kablolama yeniden düzenlenmesi, fiziksel zemin iyileştirmesi ve veri linkinde FEC (forward error correction) aktivasyonu oldu. Ölçülebilir sonuç: uçtan uca p95 gecikme %45 azaldı ve hata oranı %18’den %1.2’ye düştü.

Uzun Vadeli Dayanıklılık ve Ölçüm Disiplini

Dayanıklı sistemler ölçülebilir hedeflerle, otomatik alarmlarla ve düzenli yük testleriyle korunur. KB Yazılım yaklaşımı, saha ölçümleri ile mimari kararları bütünleştirir ve uzun vadeli stabiliteyi garanti altına alır.

  • Düzenli load test (aylık, %20 artış senaryosu) ile kapasite planı
  • MTTR hedefi: < 30 dakika; izleme panolarında canlı takip
  • SLA raporları: p50/p95/p99 ve error-rate aylık raporu
  • Firmware & sürüm uyumluluk matrisi ile saha uyumu sağlama
  • Olay sonrası RCA (root cause analysis) ve 6 aylık regresyon testi
"Ölçemediğinizi iyileştiremezsiniz; saha verisi olmadan mimari kararlar sadece varsayımdır."

Sonuç

Bilgisayar mühendisliği ve yazılım mühendisliği ayrımı pratikte sabit çizgilerle değil, sorun türüne göre değişen sorumluluklarla işler. Kritik kararlar ölçülebilir SLA’lar (ms, TPS, % hata, MTTR) üzerinden verilmelidir. Çok katmanlı yaklaşım, fiziksel altyapıdan uygulama izlemeye kadar tüm bileşenleri kapsayan test ve izleme disiplinine dayanır.

KB Yazılım olarak saha içgörülerimizle (örneğin Türkiye ağır sanayi sahalarındaki kablolama ve EMI gözlemleri) mimari kararları şekillendiriyor; ölçüm kültürünü projelere entegre ederek %30–%50 aralığında operasyonel iyileşme sağlıyoruz. Birlikte çalışarak sisteminizi hem sağlam hem izlenebilir kılabiliriz. Proje hedeflerinizi paylaşın, pratik bir ölçüm planı ile başlayalım.

Paylaş
Siteyi Keşfedin

Daha fazlasını keşfedin: hizmetlerimizi, çalışmalarımızı ve bizi tanıyın.