Apa itu Evolusi Perangkat Lunak?

Evolusi perangkat lunak adalah proses di mana program komputer komersial memerlukan pembaruan, pemeliharaan, dan peningkatan terus-menerus dari waktu ke waktu agar tetap menjadi produk yang layak. Dalam hal ini, evolusi perangkat lunak didorong oleh bisnis eksternal dan kebutuhan konsumen yang berubah seiring dengan kemajuan perangkat lunak dan teknologi lain di sekitarnya. Namun, faktor pendorong di balik evolusi perangkat lunak seringkali merupakan faktor internal yang berfokus pada tim teknik yang menghasilkan produk dan perusahaan yang bergantung pada keberhasilannya untuk mendapatkan keuntungan. Imperial College of London, Inggris, pertama kali mengumumkan tiga hukum dasar evolusi perangkat lunak pada awal 1970-an, yang sejak itu telah diperluas menjadi total delapan hukum pada 2011. Upaya lain juga telah dilakukan untuk mengukur proses yang menggunakan model seperti Model Sekuensial Linier dan Model Prototipe, tetapi paradigma yang tampaknya paling sesuai dengan siklus hidup entropi perangkat lunak adalah paradigma yang menyerupai evolusi Darwin untuk makhluk hidup.

Faktor pendorong dasar di balik perubahan dalam arsitektur perangkat lunak menyerupai kekuatan yang sama yang memotivasi bisnis untuk meningkatkan mesin industri atau prosedur operasi standar saat kebutuhan masyarakat berubah. Karena perangkat lunak semakin banyak digunakan, kebutuhan atau fungsi baru untuk itu menjadi jelas yang harus dikerjakan pada rilis produk selanjutnya. Semua perangkat lunak juga dirilis dengan kesalahan yang sebelumnya tidak diketahui, sehingga patch berkala dan prosedur pemeliharaan harus dilakukan untuk memperbaiki situasi seperti celah keamanan yang dapat membuat perusahaan rentan terhadap serangan melalui perangkat lunak itu sendiri. Kunci evolusi perangkat lunak juga adalah kenyataan bahwa program-program tersebut harus semakin disesuaikan untuk bekerja pada berbagai jenis peralatan komputer yang muncul dan dalam berbagai arsitektur sistem operasi sehingga program tersebut memiliki daya tarik yang lebih luas.

Memenuhi semua kebutuhan ini sangat penting untuk menentukan apakah program perangkat lunak tetap layak, dan, karena aset perangkat lunak merupakan aspek penting dari ekonomi informasi pada 2011, evolusi perangkat lunak telah menjadi aspek mendasar dari adaptasi dan pertumbuhan bisnis. Meir Lehman, seorang ilmuwan komputer di Imperial College of London, dikreditkan dengan menciptakan Hukum Lehman, yang secara ringkas mendefinisikan proses evolusi perangkat lunak dan membimbing pengembang dalam pemikiran ke depan dari visualisasi perangkat lunak. Hukum Lehman didasarkan pada premis bahwa perangkat lunak berkembang sebagai umpan balik pada peningkatan kinerjanya dan bahwa kecenderungannya yang tak terhindarkan adalah menjadi semakin kompleks.

Lehman telah menyatakan bahwa sifat evolusi perangkat lunak mencerminkan perubahan alami seperti mutasi pada lalat buah, cara kota berkembang dari waktu ke waktu, dan bagaimana struktur militer secara bertahap meningkatkan sistem senjata. Tiga hukum pertama dari proses meniru tren ini dalam merinci Perubahan Berkelanjutan, Peningkatan Kompleksitas, dan apa yang dikenal sebagai Evolusi Program Besar. Perubahan Berkelanjutan mengacu pada fakta bahwa program harus disesuaikan untuk memenuhi kondisi bisnis dunia nyata saat ini, dan ini mencerminkan Kompleksitas yang Meningkat karena program harus memenuhi keragaman kebutuhan tak terduga yang terus berkembang. Evolusi Program Besar mengacu pada kebutuhan untuk koreksi kesalahan dan rilis baru dari program yang terikat tak terhindarkan dengan tuntutan pasar.

Dari lima hukum yang tersisa dalam evolusi perangkat lunak, nomor empat adalah Stabilitas Organisasi dan mengacu pada fakta bahwa pertumbuhan suatu program berlangsung dengan sendirinya terlepas dari tingkat sumber daya yang sengaja dikhususkan untuk itu, dan nomor lima adalah Konservasi Keakraban yang menyatakan bahwa pertumbuhan program secara bertahap tidak dapat dihindari. Nomor enam dalam delapan Hukum Lehman adalah Pertumbuhan Berkelanjutan, yang diperlukan untuk memenuhi permintaan konsumen, dan nomor tujuh adalah Penurunan Kualitas, yang menekankan fakta bahwa semua perangkat lunak pada akhirnya menghadapi batasan fungsionalitas yang tidak dapat dipenuhinya. Hukum Lehman terakhir untuk evolusi perangkat lunak adalah Sistem Umpan Balik itu sendiri, yang mengikat semua kekuatan yang mempengaruhi kelangsungan hidup program perangkat lunak untuk mendorongnya dengan cepat menuju kesuksesan yang lebih besar atau keusangan dan kematian yang tak terhindarkan.