Yazarlar:
(1) Gaurav Kolhatkar, SCTR'nin Pune Bilgisayar Teknolojisi Enstitüsü, Pune, Hindistan ([email protected]);
(2) Akshit Madan, SCTR'nin Pune Bilgisayar Teknolojisi Enstitüsü, Pune, Hindistan ([email protected]);
(3) Nidhi Kowtal, SCTR'nin Pune Bilgisayar Teknolojisi Enstitüsü, Pune, Hindistan ([email protected]);
(4) Satyajit Roy, SCTR Pune Bilgisayar Teknolojisi Enstitüsü, Pune, Hindistan ([email protected]).
Özet —Kullanıcı destanlarının veya hikayelerinin sözde kod veya kodda uygun temsillerine dönüştürülmesi, endüstriyel bir projede zamanın büyük bir bölümünü alabilen, zaman alıcı bir iştir. Bu araştırma makalesiyle, endüstriyel projede harcanan genel süreyi azaltmak amacıyla küçük işlevlere ilişkin belirli bir çevik kullanıcı hikayesinden sahte kod oluşturmaya yönelik bir metodoloji sunmayı amaçlıyoruz. Sözde kod, bir bilgisayar programında yer alan adımların herhangi bir programlama diline kolayca dönüştürülebilen, agnostik bir programlama dili temsilidir. Doğal Dil İşlemenin potansiyelinden yararlanarak, Çevik Yazılım Geliştirme Modelini kullanan kuruluşlarda geliştirme sürecini basitleştirmek istiyoruz. İngilizce dilinde anlatılan bir problemi sözde koda dönüştürmek için bir metodoloji sunuyoruz. Bu metodoloji, Metinden Sözde Kod'a dönüştürme görevini iki aşamaya veya alt göreve ayırır ve bunların her biri ayrı bir makine çevirisi görevi gibi ele alınır. Aşama 1, Metni Koda Dönüştürme ve Aşama 2, Kodu Sahte Kod'a Dönüştürmedir. CodeT5 modelinin yukarıda belirtilen iki alt görev üzerinde ayrı ayrı eğitildiğinde BLEU puanı açısından en iyi sonuçları verdiğini görüyoruz. BLEU puanı, makine tarafından çevrilmiş bir metin ile bir dizi referans çeviri arasındaki benzerliği ölçmek için kullanılan bir ölçümdür.
Dizin Terimleri —Metinden kod oluşturmaya, Koddan Sahte kod oluşturmaya, Transformers
Modern organizasyonlarda ve işletmelerde işin verimliliği en büyük öneme sahiptir. Günümüzde işyerlerinin çoğunluğu yazılım geliştirme için Çevik Modeli kullanıyor. Çevik, görevlerin daha küçük yinelemelere veya sprintlere bölündüğü yinelemeli geliştirmeye dayalı bir yazılım geliştirme yaklaşımıdır. Agile proje yönetiminde Jira gibi araçlar, kullanıcı gereksinimlerini destanlar veya kullanıcı hikayeleri biçiminde belgelemek için kullanılır. Geliştiricilerin bu gereksinimleri anlaması ve bunun için kod yazması gerekir. Bununla birlikte, özellikle daha önce çözülmüş basit veya tekrarlayan problemler için, kod/sözde kod oluşturma sürecinin otomatikleştirilmesiyle, geliştirme süresinden ve çabasından önemli miktarda tasarruf sağlanabilir. Araştırma makalemizin motivasyonu, geliştiricilerin daha karmaşık görevlere odaklanabilmeleri ve süreçte yazılım geliştirme yaşam döngüsünü optimize edebilmeleri için çalışmalarını basitleştirmektir.
Jira, sorun takibi ve proje yönetimi için kullanılan bir yazılım uygulamasıdır. Çevik geliştirme ekipleri tarafından hataları, hikayeleri, destanları ve diğer görevleri takip etmek için yaygın olarak kullanılır. Destanlar, bir dizi küçük göreve (hikâye adı verilen) bölünebilen büyük çalışmalardır. "Kullanıcı hikayeleri" olarak da adlandırılan hikayeler, son kullanıcının bakış açısıyla yazılan kısa gereksinimler veya isteklerdir. Amacımız destanları/hikâyeleri sözde koda dönüştürmek.
Çevik Modelin avantajlarına rağmen yazılım geliştirmek, özellikle kullanıcı gereksinimlerinin işlevsel koda dönüştürülmesi söz konusu olduğunda hâlâ zor ve uzun süren bir süreç olabilir. Geliştiriciler, çok fazla zaman ve çalışma gerektirebilen bu sürecin bir parçası olarak genellikle kullanıcı destanlarını veya hikayelerini manuel olarak koda çevirir.
Çalışmamız, bu zorluğun üstesinden gelmek amacıyla kullanıcı hikayelerinden kod ve sözde kod üretme sürecini otomatikleştirmek için makine öğrenimi yöntemleri ve doğal dil işlemeden yararlanma potansiyelini araştırmayı amaçlamaktadır. Bunu yaparak geliştiricilerin görevlerini kolaylaştırmayı, yazılım geliştirme yaşam döngüsünü geliştirmeyi ve tüm endüstriyel projenin etkinliğini artırmayı umuyoruz.
Doğal dil işleme alanındaki son gelişmeler, daha önce manuel olarak yapılan çeşitli işlemlerin otomatikleştirilmesini mümkün kılmıştır. Özellikle derin öğrenmedeki son gelişmeler, metin girişinden bağlam ve anlam çıkarabilen karmaşık doğal dil modellerinin oluşturulmasını mümkün kılmıştır. Bu modelleri kullanarak, kullanıcı öykülerinden hızlı ve verimli bir şekilde kod veya sözde kod oluşturabilir ve geliştiricilerin üzerindeki baskıyı hafifletebiliriz.
Çalışmamız, kullanıcı hikayelerinden kod veya sözde kod üretmek için kural tabanlı sistemler, istatistiksel modeller ve derin öğrenme teknikleri dahil olmak üzere halihazırda kullanılan çeşitli metodolojileri inceleyecektir. Her metodolojinin faydalarını ve dezavantajlarını değerlendireceğiz ve avantajlarından en iyi şekilde yararlanacak yeni bir strateji önereceğiz.
Genel olarak araştırma makalemiz, kullanıcı hikayelerinden kod/sözde kod oluşturma sürecini otomatikleştirerek yazılım geliştirmeyi daha verimli ve etkili hale getirmeyi amaçlamaktadır. Bunu yaparak, geliştiricilere daha karmaşık görevlere odaklanma, hata riskini azaltma ve sonuçta kullanıcılara daha iyi yazılım ürünleri sunma konusunda zaman kazandırmayı umuyoruz.
Bu makale arxiv'de CC 4.0 lisansı altında mevcuttur .