Pengembangan perangkat lunak mengacu pada serangkaian aktivitas ilmu komputer khusus untuk proses pembuatan, perancangan, penerapan, dan dukungan perangkat lunak.
Perangkat lunak itu sendiri adalah serangkaian instruksi atau program yang memberi tahu komputer apa yang harus dilakukan. Perangkat lunak tidak bergantung pada perangkat keras dan membuat komputer dapat diprogram. Terdapat tiga jenis dasar:
Perangkat lunak sistem untuk menyediakan fungsi inti seperti sistem operasi, manajemen disk, utilitas, manajemen perangkat keras, dan kebutuhan operasional lainnya.
Perangkat lunak pemrograman untuk memberi alat bagi pengembang seperti editor teks, compiler, linker, debugger, dan alat lain untuk membuat kode.
Perangkat lunak aplikasi (aplikasi atau app) untuk membantu pengguna melakukan tugas. Contohnya, rangkaian produktivitas kantor, perangkat lunak manajemen data, pemutar media, dan program keamanan. Aplikasi juga merujuk pada aplikasi web dan seluler seperti yang digunakan untuk berbelanja di Amazon.com, bersosialisasi dengan Facebook, atau memposting foto ke Instagram.1
Jenis keempat adalah perangkat lunak tersemat. Perangkat lunak sistem tersemat digunakan untuk mengontrol mesin dan perangkat selain komputer, misalnya jaringan telekomunikasi, mobil, robot industri, dan lain-lain. Perangkat tersebut dan perangkat lunaknya dapat dihubungkan sebagai bagian dari Internet of Things (IoT).2
Pengembangan perangkat lunak terutama dilakukan oleh pemrogram, insinyur perangkat lunak, dan pengembang perangkat lunak. Peran-peran tersebut saling berinteraksi dan tumpang tindih, dan dinamika di antaranya sangat bervariasi di seluruh departemen dan komunitas pengembangan.
Pemrogram, atau pembuat kode, menulis kode sumber untuk memprogram komputer untuk tugas-tugas khusus seperti menggabungkan database, memproses pesanan online, merutekan komunikasi, melakukan riset, atau menampilkan teks dan grafis. Pemrogram umumnya menafsirkan instruksi dari pengembang dan insinyur perangkat lunak dan menggunakan bahasa pemrograman seperti C++ atau Java untuk menjalankannya.
Insinyur perangkat lunak menerapkan prinsip rekayasa untuk membangun perangkat lunak dan sistem untuk memecahkan masalah. Mereka menggunakan bahasa pemodelan dan alat lain untuk merancang solusi yang dapat diterapkan ke masalah secara umum, tidak hanya memecahkan masalah spesifik per instance atau klien tertentu. Solusi rekayasa perangkat lunak mematuhi metode ilmiah dan harus berfungsi di dunia nyata, seperti untuk jembatan atau lift. Tanggung jawab mereka telah berkembang karena produknya telah menjadi makin cerdas dengan penambahan mikroprosesor, sensor, dan perangkat lunak. Tidak hanya lebih banyak produk bergantung pada perangkat lunak untuk pembeda di pasar, tetapi pengembangan perangkat lunak mereka juga harus dikoordinasikan dengan pekerjaan pengembangan mekanik dan listrik produk.
Pengembang perangkat lunak memiliki peran yang kurang formal dibandingkan insinyur dan dapat terlibat langsung dalam area proyek tertentu, termasuk penulisan kode. Selain itu, mereka juga menjalankan siklus pengembangan perangkat lunak keseluruhan, termasuk pekerjaan di tim fungsional untuk mengubah persyaratan menjadi fitur, mengelola tim dan proses pengembangan, dan melakukan pengujian serta pemeliharaan perangkat lunak.3
Pekerjaan pengembangan perangkat lunak tidak terbatas pada pembuat kode atau tim pengembangan. Para profesional seperti ilmuwan, pembuat perangkat, dan pembuat perangkat keras juga menciptakan kode perangkat lunak meskipun mereka bukan pengembang perangkat lunak utama. Pekerjaan ini juga tidak terbatas pada industri teknologi informasi tradisional seperti bisnis perangkat lunak atau semikonduktor. Bahkan, menurut Brookings Institute (tautan berada di luar ibm.com), bisnis tersebut "mencakup kurang dari setengah perusahaan yang melakukan pengembangan perangkat lunak."
Yang menjadi perbedaan penting adalah antara pengembangan perangkat lunak kustom dan pengembangan perangkat lunak komersial. Pengembangan perangkat lunak kustom adalah proses merancang, menciptakan, menerapkan, dan mengelola perangkat lunak untuk pengguna, fungsi, atau organisasi khusus. Sebaliknya, perangkat lunak komersial siap pakai (COTS) dirancang untuk persyaratan yang luas, memungkinkannya dikemas, dipasarkan, dan didistribusikan secara komersial.
Baca bagaimana desktop sebagai layanan (DaaS) memungkinkan perusahaan mencapai tingkat performa dan keamanan yang sama dengan penerapan aplikasi on premises.
Daftar untuk panduan tentang cloud hybrid
Proses mengembangkan perangkat lunak biasanya meliputi langkah-langkah berikut:
Langkah-langkah proses pengembangan perangkat lunak sesuai dengan manajemen siklus aplikasi (ALM). Solusi IBM Engineering Management adalah rangkaian unggulan ALM yang memungkinkan manajemen pengembangan mekanik, listrik, dan perangkat lunak secara paralel.
Langkah-langkah proses pengembangan perangkat lunak dapat dikelompokkan menjadi fase siklus, tetapi siklus ini penting karena berdaur ulang untuk memungkinkan perbaikan berkelanjutan. Contohnya, masalah pengguna yang muncul di fase pemeliharaan dan dukungan dapat menjadi persyaratan di awal siklus berikutnya.
Pengembangan perangkat lunak juga penting karena cakupan penggunaannya luas. Seperti yang dikatakan wakil presiden IBM sekaligus blogger Dibbe Edwards: "Perangkat lunak telah muncul sebagai pembeda utama dalam banyak produk, mulai dari mobil hingga mesin cuci, hingga termostat, dengan Internet of Things yang menghubungkannya."
Beberapa contoh:
Menggunakan pengembangan perangkat lunak untuk membedakan merek dan mendapatkan keuntungan kompetitif memerlukan kecakapan teknik dan teknologi yang dapat mempercepat penerapan, kualitas, dan efisiensi perangkat lunak.
Solusi yang terbukti untuk aktivitas pemodelan dan desain yang membantu Anda menghasilkan perangkat lunak dan sistem berkualitas tinggi lebih cepat.
Kontrol versi perangkat lunak tingkat lanjut, manajemen ruang kerja, kontrol sumber terdistribusi, dan dukungan pengembangan paralel untuk individu dan tim meningkatkan produktivitas dengan melacak perubahan artefak secara otomatis. Perangkat lunak ini memungkinkan fitur jeda-dan-lanjutkan yang nyaris tak terbatas untuk menangani gangguan kerja.
Memberikan koneksi antara alat IBM Engineering Lifecycle Management dan alat pihak ketiga seperti Git, GitLib, dan GitHub untuk mengelola kontrol versi perangkat lunak.
Kode, konten, komunitas, dan lainnya.
Daftar untuk topik yang paling penting.
Penuhi kebutuhan bisnis yang kompleks dengan kecepatan dan ketangkasan dengan menghubungkan Anda ke alat pengembangan perangkat lunak.
Riset ilmu komputer kami saat ini berfokus pada penemuan terobosan otomatisasi, pemrosesan informasi, dan komputasi.
1 Software, Techopedia (tautan berada di luar ibm.com)
2 Embedded software, Wikipedia (tautan berada di luar ibm.com)
3 Software Engineer vs. Software Developer – What’s the Difference? Fullstack Academy (tautan berada di luar ibm.com)
4 The Forrester Wave™: Low-Code development Platforms for AD&D Pros, Q4 201 John R. Rymer, Forrester Research, Inc. 23 Oktober 2017 (tautan berada di luar ibm.com)