Kecerdasan buatan akan memperbarui perangkat lunak usang untuk Anda

Alat IBM AI memungkinkan para insinyur untuk mengeksplorasi cara menggunakan perangkat lunak perusahaan yang lama.



Tahun lalu, IBM mendemonstrasikan bagaimana AI dapat melakukan pekerjaan berulang untuk memelihara perangkat lunak dengan memperbarui kode lama. Perusahaan kini telah memperkenalkan teknik berbasis AI untuk pengkodean ulang aplikasi lama agar berjalan pada platform komputasi modern.







Proyek IBM terbaru disebut Mono2Micro dan Application Modernization Accelerator(AMA) memberi arsitek aplikasi alat untuk memperbarui dan menggunakan kembali aplikasi lama. Menurut Nick Fuller , direktur layanan cloud hybrid di IBM Research, inisiatif ini membantu mendekatkan AI ke titik di mana AI dapat secara otomatis bermigrasi dari COBOL ke Java.



Tetapi Fuller mencatat bahwa pendekatan berbasis AI canggih ini saat ini hanya dapat memecah kode mesin lama dari program monolitik menjadi layanan mikro terpisah. Satu langkah lagi tetap untuk menyelesaikan terjemahan penuh dari satu bahasa pemrograman ke bahasa lain, karena toolkit AMA, meskipun dirancang untuk memodernisasi COBOL, saat ini hanya menyediakan langkah lain dalam proses ini. “Menerjemahkan dari satu bahasa ke bahasa lain adalah tantangan mendasar bagi AI, yang sedang kami kerjakan untuk membuat beberapa fungsi kode warisan ini dalam bahasa pemrograman modern,” tambahnya.



Sementara itu, alat bertenaga AI canggih dari IBM menawarkan beberapa kemampuan baru. Adapun Mono2Micro, alat ini pertama-tama menganalisis kode lama untuk mengungkapkan koneksi tersembunyi di dalamnya, misalnya, berbagai komponen dalam logika bisnis yang mendasari yang berisi banyak panggilan dan koneksi satu sama lain. Akan sangat sulit dan memakan waktu bagi seorang arsitek aplikasi untuk menyelesaikan tugasnya sendiri.



Mono2Micro menggunakan teknik pengelompokan berbasis AI untuk mengelompokkan kode serupa ke dalam grup, yang secara lebih jelas menunjukkan bagaimana grup kode berinteraksi. Mono2Micro pertama-tama menerima kode, kemudian mem-parsing kode sumber dan objek secara statis (dengan menganalisis program sebelum dijalankan) dan secara dinamis (dengan menganalisis program saat sedang berjalan).



Alat tersebut kemudian mengubah program monolitik berbasis Java dan logika bisnis terkait serta antarmuka pengguna menjadi layanan mikro. Memfaktorkan ulang monolit menjadi layanan mikro terpisah dengan fungsionalitas tertentu meminimalkan koneksi yang ada di perangkat lunak ketika itu adalah program monolitik dengan mengubah struktur aplikasi tanpa mengubah perilaku eksternalnya.



Tujuan dari toolkit AMA adalah untuk menganalisis dan merefaktor ulang aplikasi yang dikembangkan sebelumnya yang ditulis dalam bahasa lama (COBOL, PL / I). Adapun AMA toolkit menggabungkan analisis statis kode sumber dengan pemahaman tentang struktur aplikasi untuk membuat grafik yang mewakili aplikasi lama. Saat digunakan bersama dengan teknik pembelajaran mendalam, pendekatan berbasis grafik ini memfasilitasi persistensi data.





Gambar: IBM Research

Image dari antarmuka Mono2Micro




Strategi AI IBM mengatasi tantangan utama dalam pembelajaran mesin di mana input adalah kode dan parameter untuk analisis adalah volume dan berbagai nilai. Aplikasi warisan kritis biasanya berisi ratusan ribu hingga jutaan baris kode. Dalam konteks ini, menerapkan teknik pembelajaran mesin (ML) ke data dalam jumlah besar dapat dibuat lebih efisien dengan konsep penyematan.



Lapisan penyematan ini adalah cara untuk mengubah data menjadi nilai numerik. Keuntungan dari metode embedding adalah memungkinkan Anda untuk menetapkan ekspresi numerik ke sejumlah besar kode dengan banyak kemungkinan nilai. Hal yang sama terjadi, misalnya, saat menerjemahkan bahasa alami manusia ke dalam nilai numerik menggunakan embeddings kata vektor. Ini juga dilakukan dalam konteks grafik, seperti yang berkaitan dengan analisis kode.



“Menyematkan lapisan itu luar biasa karena tanpanya akan sulit mendapatkan apa pun yang tampak seperti sistem pembelajaran mesin yang efisien,” kata Fuller.

Dia menambahkan bahwa dalam kasus analisis kode, sistem pembelajaran mesin setiap kali menawarkan layanan mikro dengan lebih baik untuk aplikasi lama yang difaktorkan ulang dengan mereplikasi konten fungsional aplikasi.



Catatan Fuller: "Pada titik ini, Anda belum bisa bernapas, tetapi 70% pekerjaan ada di belakang Anda, yang berarti Anda semakin dekat untuk melakukan refactoring aplikasi penting ke dalam arsitektur layanan mikro."



All Articles