Blog

Yapay Zeka Kod Üretimi ve UMTSM: Pragmatik Bir Karşılaştırma

Yayınlanma tarihi "2026-06-03"

Bir meslektaşım yakın zamanda bana artık UMTSM gibi araçlara ihtiyaç duymadığını, çünkü kod üretmek için yapay zeka kullandığını söyledi. Bunu birden fazla kez duydum. Haklı bir meydan okuma ve dürüst bir yanıt hak ediyor — savunmacı bir değil.

O yanıtı vermeye çalışayım.


Yapay Zekanın Gerçekten İyi Olduğu Şeyler

Başka türlü söylemeyeceğim. Claude veya GPT-4'ten C++ dilinde basit bir durum makinesi uygulamasını yazmasını isterseniz, saniyeler içinde makul bir şey elde edersiniz. Kurulum yok, öğrenme eğrisi yok, lisans maliyeti yok. 5 durumlu bir trafik ışığı kontrolcüsü veya hızlı bir prototip için bu yeterlidir.

Geliştirici davranışı doğal dilde açıklar, model kodu üretir, geliştirici ayarlar. Hızlı, esnek, sürtünmesiz.

Küçük, bağımsız, kritik olmayan sistemler için bu gerçekten yeterlidir. İnkâr etmek dürüstsüzlük olur.


Karşılaştırmanın Bozulduğu Nokta

Sistem bir prototipten fazlasına büyüdüğü an tablo değişir.

Doğruluk Garantisi Yok

Yapay zeka tarafından üretilen durum makinesi kodu doğru görünür. Çoğu zaman doğru da olur. Ancak "çoğu zaman" ile "her zaman" aynı şey değildir; gömülü sistemlerde — özellikle savunma, otomotiv ve endüstriyel kontrol alanlarında — "çoğu zaman doğru" kabul edilebilir bir spesifikasyon değildir.

UMTSM, kodu biçimsel bir modelden üretir. Aynı .umt dosyası, aynı üretici aracıyla çalıştırıldığında her seferinde bayt bayt özdeş çıktı üretir. Davranış, DSL semantiği tarafından tanımlanır; o günkü modelin güven düzeyiyle değil. Deterministik bir kod üreticisinde halüsinasyon olmaz.

Yapay Zekanın Sessizce Başarısız Olduğu Yer: Bakım

Bugün yapay zekaya bir durum makinesi ürettin. Altı ay sonra bir gereksinim değiştiğinde geri dön ve kodu güncellenmesini iste.

Model önceki konuşmayı hatırlamaz. Hangi tasarım kararlarının kasıtlı, hangilerinin tesadüfi olduğunu bilmez. Yeni bir şey üretecektir. İki yapay zeka çıktısını karşılaştırıp neyi koruyacağına karar vermen gerekecek. Bu yazılım mühendisliği değil — arkeoloji.

UMTSM'de tasarım .umt dosyasında yaşar. Modeli değiştir, kodu yeniden üret. Fark deterministik ve anlamlıdır. Modelde neyin değiştiği, çıktıda tam olarak odur. Sürüm kontrolü, kod incelemesi ve izlenebilirlik amaçlandığı gibi çalışır.

Gereksinim değişikliği sonrası yapay zeka iş akışı:
  Değişikliği doğal dilde açıkla
  → Yapay zeka yeni kod üretir
  → Önceki yapay zeka çıktısıyla karşılaştır
  → Kasıtlı ile tesadüfi farkları elle uzlaştır
  → Her şeyi yeniden test et
  → Hiçbir şeyin bozulmadığını um

Gereksinim değişikliği sonrası UMTSM iş akışı:
  .umt dosyasını düzenle
  → Üreticiyi çalıştır
  → Fark temiz ve anlamsal olarak tutarlı
  → Etkilenen yolları yeniden test et

Ekipler Yapay Zeka Üretimi Kodla Büyüyemez

Yapay zeka kullanan bir geliştirici verimli olabilir. Birbirinden bağımsız olarak ilgili durum makineleri üretmek için yapay zekaya yönelen beş geliştirici; beş farklı kodlama stili, eşzamanlılık konusunda beş farklı varsayım, beş farklı hata işleme stratejisi üretecektir.

UMTSM, tüm kod tabanında tekdüzen bir yapı zorlar. Her durum makinesinin aynı üretilmiş iskeleti, aynı yaşam döngüsü API'si, aynı iş parçacığı modeli vardır. Projeye ilk gün katılan bir geliştirici sistemdeki herhangi bir durum makinesini okuyup yapısını hemen anlayabilir; çünkü yapı her zaman aynıdır.

Sertifikasyon "Yapay Zeka Yazdı" Kabul Etmez

IEC 61508, ISO 26262, DO-178C veya eşdeğer güvenlik standartları kapsamında geliştirilen sistemlerde geliştirme araç zincirinin nitelendirilmiş olması gerekir. Gereksinimden koda kadar her dönüşüm izlenebilir ve denetlenebilir olmalıdır.

"Yapay zeka asistanı kullandık" nitelendirilmiş bir araç değildir. Araç nitelendirme raporu üretemez. Belirli bir girdinin her zaman belirli bir çıktı ürettiğini gösteremez. Güvenlik davası kanıtı olarak sunulamaz.

UMTSM başından beri nitelendirme gözetilerek tasarlanmıştır. Üretici deterministiktir. DSL semantiği biçimsel olarak tanımlıdır. Modelden koda dönüşüm denetlenebilirdir. Bu, yapay zekanın kopyalayabileceği bir özellik değil — temelden farklı bir araç kategorisi.


Gerçek Karşılaştırma

KonuYapay Zeka Kod ÜretimiUMTSM
Başlangıç hızıÇok hızlıÖğrenme eğrisinden sonra hızlı
Doğruluk garantisiYokYapısı gereği deterministik
TekrarlanabilirlikGaranti edilmezBayt bayt özdeş
6 ay sonra bakımZorModeli düzenle, yeniden üret
Ekip tutarlılığıZorlanmazTasarım gereği tekdüzen
İzlenebilirlikYokModel → kod, tam izlenebilir
Sertifikasyon uygunluğuUygulanamazBunun için tasarlandı
Paralel ortogonal bölgelerZayıf desteğiBirinci sınıf dil özelliği
Geçmiş durumlarNadiren doğruDerin, sığ, kalıcı
Test iskeletiManuelOtomatik üretilir
Çevrimdışı / hava boşluklu çalışmaEvetEvet
MaliyetAbonelikAraç lisansı

Aslında Rekabet Etmiyorlar

Dikkatle düşündüğümde beni şaşırtan kısım bu oldu.

Yapay zeka ile UMTSM'nin rakip olması gerekmiyor. Geliştirici yine de sistemin davranışı hakkında düşünmek zorundadır. Hangi durumların var olduğuna, hangi olayların geçişleri tetiklediğine, koruma koşullarının ne olduğuna, girişte hangi eylemlerin yürütüleceğine karar vermek zorundadır.

Yapay zeka bu düşünme sürecine yardımcı olabilir. Geliştiricinin bir .umt modeli taslağı çıkarmasına, eksik geçişleri önermesine, ulaşılamaz durumları belirlemesine veya belirli bir tasarımın belirli bir senaryoyu neden düzgün işlemediğini açıklamasına yardımcı olabilir.

UMTSM olmadan:
  Geliştirici → Yapay Zeka → C++ kodu (yapılandırılmamış, garanti yok)

UMTSM ile:
  Geliştirici → (Yapay Zeka yardımcı olur) → .umt modeli → UMTSM → garantili C++ kodu

Yapay zeka, modelleme görevi için bir asistan olur. UMTSM, modelden koda dönüşümü üstlenir. Sonuç, tek başına yapmaktan daha hızlı ve yapay zekanın son kodu doğrudan üretmesinden daha güvenlidir.


Genç Geliştiriciler Hakkında Bir Not

Duyduğum itirazlardan biri UMTSM'nin bir öğrenme eğrisi olduğudur. Bu doğru. Ama alternatifi düşünün.

Eşzamanlı bir gömülü sistem için durum makinesi üretmek amacıyla yapay zekayı kullanan genç bir geliştirici, çalışıyor gibi görünen kod üretecektir. Temel testleri geçecektir. Birkaç bin saatlik işlemde yalnızca bir kez ortaya çıkan bir yarış koşulunda sahada başarısız olacaktır.

UMTSM kullanan genç bir geliştirici, davranışı açıklayan bir .umt dosyası yazacak, üreticiyi çalıştıracak ve otomatik olarak doğru eşzamanlı altyapıyı alacaktır. Öğrenme eğrisi, durum makinesi kavramlarını anlamakta — geliştirilmesi gereken gerçek beceri budur — mutex ve iş parçacığı yönetimini elle doğru yapmakta değil.

UMTSM düşünme gereksinimini ortadan kaldırmaz. Aynı tekrarlayan kodu her seferinde doğru biçimde yeniden uygulamak zorunda kalmayı ortadan kaldırır.


Sonuç

Yapay zeka kod üretimi gerçekten yararlı bir araçtır. Ben kullanıyorum. Çoğu mühendis kullanıyor. Ancak "prototipleme ve keşif için yararlı" ile "ölçekte üretim gömülü yazılım geliştirmeye uygun" aynı şey değildir.

UMTSM gibi araçlara artık ihtiyaç duymadığını söyleyen meslektaşım, bugün inşa ettiği şey için muhtemelen haklıdır. Sistemleri küçük kalır ve hiçbir zaman sertifikasyon gerektirmezse, yapay zeka süresiz olarak yeterli olabilir.

Ancak yıllar içinde bakımı yapılması ve uluslararası standartlara göre sertifikalandırılması gereken karmaşık, eşzamanlı, güvenlik açısından kritik gömülü sistemler inşa eden ekipler için karşılaştırma yakın değildir. Determinizm, izlenebilirlik, ekip tutarlılığı ve nitelendirme isteğe bağlı özellikler değildir. Bunlar işin ta kendisidir.

UMTSM tam da bu kısıtlamaların gerçek olduğu ve bunları ciddiye alan mevcut araçların ya aşırı pahalı, ya kötü tasarlanmış ya da her ikisi de olduğu için inşa edildi.


*Fehmi Demiralp, gömülü C++ geliştirme için bir durum makinesi DSL'i ve kod üretim çerçevesi olan UMTSM'nin yaratıcısıdır.*