AI yazılımın geliştirilmesinde: abartılmış

Adanali

Active member


  1. AI yazılımın geliştirilmesinde: abartılmış

Her şeyden önce: kod üretmeye yardımcı olur. Bu şüphesiz önemli bir ilerleme ve çok değişecektir. Herkes çok sayıda aracı deneyebilir ve kendilerini bu araçların ne kadar güçlü olduğuna ikna edebilir.







(Resim:

Eberhard Wolff

)))



Eberhard Wolff, Swaglab'ın mimarisinin başkanıdır ve yirmi yıldan fazla bir süredir, genellikle iş ve teknoloji arasındaki arayüze mimar ve danışman olarak çalışmaktadır. Mikro hizmetler de dahil olmak üzere çok sayıda makale ve kitabın yazarıdır ve uluslararası konferanslarda konuşmacı olarak düzenli olarak performans gösterir. Teknolojik odağı, bulut, alan adı ve mikro hizmetler tarafından yönetilen tasarım gibi modern mimari ve geliştirme yaklaşımlarıdır.







Yazılımın geliştirilmesi kod üretmiyor!


Ancak başlangıçta paradoksal gibi görünse bile: kod üretmek, yazılımın geliştirilmesinde temel sorun değildir. Asıl sorun, hangi kodun yazılması gerektiğini bulmaktır. Teknik gereksinimler bunun için bilinmelidir. Bununla birlikte, pratikte, onlardan yazılımları başarıyla geliştirmek için gereksinimler genellikle çok belirsizdir. Açık görünmelerine rağmen, çoğu zaman daha sonra yanlış anlaşılmalar olduğu ortaya çıkıyor. Bu şekilde, yerli uzmanlarla etkileşim merkezi bir rol oynamaktadır. Geliştiriciler, teknik sorular için doğru yazılımı geliştirebilecek alan adında çok şey öğrenmelidir.

Gereksinimler de değişir. Yazılımın geliştirilmesi yoluyla, yeni yazılımın kullanımı ve ilgili tartışmalar, kullanıcılar ve alan uzmanları yazılımın kullanımı üzerinde düşünür ve bu nedenle yeni gereksinimlere sahiptir. Geliştiriciler, neyin geliştirilmesi gerektiğini anlamak için bu süreçlere de katılmalıdır. Ayrıca, gereksinimlerin uygulanması özellikle kolay mı yoksa zorunlu veya zorunlu olarak değişiklikler yapılması veya uygulanmasını önemli ölçüde basitleştiren geri bildirim sağlamak da mümkündür.

Sorun: İnsanlar


Gereksinimlerle insan faktörünün anlamını zaten görebilirsiniz. Aynı zamanda merkezidir: Yazılımın gelişimi her zaman ekipte gerçekleşir. Bu ekip genellikle birkaç geliştiriciden, aynı zamanda UX uzmanları, mimarlar veya POS gibi diğer rollerden de oluşur. Bu, iletişimin gelişimde merkezi bir rol oynadığı anlamına gelir: faaliyetler dağıtılmalı ve organize edilmelidir. Organizasyon ayrıca yazılımı da etkiler: Conway Law, yazılım mimarisinin ekibin iletişim raporlarına karşılık geldiğini belirtir. Sosyal yapının kalkınma üzerinde güçlü bir etkisi varsa, bu alandaki temel zorluklar da temel zorluklardır. Ve bu nedenle projelerdeki sorunların çoğunun da insan düzeyinde nedenleri vardır. IA burada olmadan yapamaz.

IA'nın verimliliği o kadar artırması mümkün olacaktır ki, bir kişi bir ekip yerine bir yazılım projesi için yeterlidir ve bu nedenle daha az önemli hale gelir. Olası görünmüyor. Ve gereksinimleri netleştirmek için insanlarla etkileşim hala gereklidir. Buna ek olarak, AI araçlarından önce verimlilikte de ilerleme kaydedilmiştir. Ancak bu daha küçük takımlara yol açmadı. Yazılım ekiplerinin boyutu, daha da karmaşık sistemler uygulamak ve yazılımla daha fazla alanı desteklemek için öznel olarak artar. Eğilim devam ederse, AI ile daha da karmaşık sistemler de oluşturacağız ve biraz daha küçük değil.






GitHub Copilot ve ChatGPT ile yapay zekaya dayalı araçları doğru kullanırsanız daha verimli bir şekilde programlayabilirsiniz, sınırları bilin ve riskleri tartın. 29 Kasım 2023'te Rainer Stropek, laboratuvarında GitHub Copilot ve Chatgpt ile Github Copilot gibi, aşağıdaki algoritmalara ve verilere dayanan, sınırların olduğu ve daha iyi olduğunda Chatgpt'e başvurduğunu açıkladı.







Ki: Sadece yeni bir soyutlama seviyesi


Üretim kodunun basitleştirilmesi yeni değil. Aksine: Yazılım geliştirmeyi basitleştirmek için uzun bir teknik yaklaşım geçmişi vardır. Genel olarak, bu yaklaşımlar gelişimi yeni bir soyutlama seviyesine çıkarır. Yazılımın geliştirilmesi, ikili kodun doğrudan bilgisayar belleğine yazılmış olması ile başladı. Montaj daha sonra parça kodlarına karşılık gelen kontrolleri tanımladı, ancak hatırlanması ve anlaşılması daha kolay. Yani ikili kod soyuttu. Yüksek diller, soyut montajların ve algoritmaların ve mantığın daha kolay ifade edilebileceği kavramları tanıtmaktadır. Aynı zamanda, görevler altyapıyı artırdı ve bu nedenle geliştirme ekipleri içindi: İşletim sistemleri ve veritabanları süreçlerin kalıcılığı, hafızası ve yönetimi için çözümler sunuyor. Kütüphaneler ve çerçeve, kod düzeyinde tipik kısmi işlevsellik için bitmiş çözümler sunar. Ve bulut, veritabanları veya bilgisayarlar gibi mevcut birçok altyapı öğesi aracılığıyla bir soyutlama sunar, böylece projeler için altyapı daha kolay uygulanabilir.

IA bu şekilde başka bir adımdır. Aslında, ilerleme o kadar etkileyici ki, kesinlikle yeni bir soyutlama seviyesi hakkında konuşmalıyız. GPT mühendisleri gibi belirli bir uygulamaya dayalı bir uygulamayı oluşturan prototipli araçlar ve gereksinimler net değilse (video) sorular vardır. Yukarıda belirtildiği gibi: Net gereksinimlere sahip yazılımın geliştirilmesi sorun değildir. Bu nedenle, yazılımın gelişiminin daha az sorunlu kısmı, çekirdek tarafından değil yapay zeka ile basitleştirilir.

Kod AI sadece görünüşte daha iyidir ve tehlikelidir


Yapay zeka da tehlikelere yol açar: bir çalışma, güvenlik için önemli bir kod yazarken geliştiricilerin davranışlarını değerlendirmiştir ve daha güvenli çözümlerinin sınıflandırılmasına destek verdiği sonucuna varmıştır. Sadece gerçekte tam tersidir: kodları daha az güvenlidir. Ve bu açıkça tehlikelidir: bu bir kod üretme meselesi değil, bir sorun çözülmelidir. Güvenlik sorunlarıyla ilgili güvenlik sorunları olan ilgili yazılım aslında yeni sorunlar yaratıyor. Sübjektif değerlendirme ve nesnel gerçeklik arasındaki fark yıkıcı olabilir: yazılımın güvenli olduğuna inanılıyor. Ama bu doğru değil. Ne yazık ki, güvenlik boşlukları teknik hatalar veya performans sorunları belirgin değildir ve bu nedenle hasar gizlice ortaya çıkabilir. Yapay bir zeka, örneğin güvenle nitelikler sunan bu riskleri ve tasarım çözümlerini de çözemez. Au!

Kodu okuyun: Üretimden daha önemli


Bir sonraki sorun: Genellikle kod üretme meselesi değil, değişme meselesidir. Bu aynı zamanda geliştiricilerin bunları makul değiştirmek için mevcut kodu okuması ve anlamaları gerektiği anlamına gelir. Açıkçası, kod başlangıçta yazılır, ancak daha sık değişir ve bu nedenle de okunur. Dolayısıyla, daha büyük optimizasyon potansiyeli benzersiz üretildiğinde değil, çok daha sık gerçekleşen okudukları, anladıkları ve değiştikleri zamandır. Ancak KI bu alanda da yardımcı olabilir: aslında ChatGpt'ten kodu açıklamasını isteyebilirsiniz. Bunlar daha küçük kod parçalarından daha fazlasıdır. Ancak potansiyel kesinlikle olağanüstü: özellikle eski kod için, bir sistem üzerinde özel olarak eğitilmiş yapay bir zeka, sistemin anlayışını geliştirmek ve bu nedenle değişiklikleri basitleştirmek için ilginç bir araç olabilir.

TL; Dr.


Yazılım geliştirme sorunu kod üretmek değil, ne uygulanması gerektiğini anlamaktır. IA yoluyla üretkenliğin avantajları bu sorunu çözmez. Yapay zeka yazılımın gelişimini önemli ölçüde değiştirecektir, ancak ana sorunu çözmeyecektir.


(RME)
 
Üst