Kuis Akhir Evolusi Perangkat Lunak
Alif Adrian Anzary - 5025201274
SOAL
1.
Sebutkan dan jelaskan alasan mengapa
perangkat lunak harus mengalami proses evolusi?
2.
Apa yang dimaksud dengan evolusi perangkat
lunak, meliputi apa saja prosesnya?
3.
Untuk dapat menjaga kualitas dari
perangkat lunak tersebut dalam melakukan evolusi perangkat lunak, maka
dibuatlah ”Laws” dari perangkat lunak tersebut. Menurut Lehman apa saja Laws
nya!
JAWABAN
1. Proses evolusi perangkat lunak merujuk
pada serangkaian perubahan dan pengembangan yang dialami oleh perangkat lunak
selama siklus hidupnya. Ada beberapa alasan mengapa perangkat lunak harus
mengalami proses evolusi:
·
Perbaikan Bug:
Setiap perangkat lunak tidak dapat dihindari memiliki bug atau kesalahan.
Melalui evolusi, pengembang dapat mengidentifikasi, melaporkan, dan memperbaiki
bug tersebut untuk meningkatkan kinerja dan keandalan perangkat lunak.
·
Peningkatan Kinerja:
Perangkat lunak yang baik harus terus berkembang untuk menjawab tuntutan dan
harapan pengguna. Evolusi membantu pengembang untuk meningkatkan kinerja,
efisiensi, dan responsivitas perangkat lunak agar tetap relevan di lingkungan
yang selalu berubah.
·
Penyesuaian dengan Teknologi Baru:
Lingkungan teknologi terus berkembang, dan perangkat lunak harus dapat
beradaptasi dengan teknologi baru. Proses evolusi memungkinkan pengembang untuk
mengintegrasikan teknologi terkini, memanfaatkan perkembangan baru, dan
mengikuti standar industri terbaru.
·
Pembaruan Keamanan:
Ancaman keamanan terus berkembang, dan perangkat lunak yang tidak diperbarui
rentan terhadap serangan. Melalui evolusi, pengembang dapat menyusun pembaruan
keamanan, memperbaiki kerentanannya, dan menjaga integritas serta kerahasiaan
data pengguna.
·
Penambahan Fitur Baru:
Perangkat lunak yang terus berkembang harus dapat memenuhi kebutuhan dan
keinginan pengguna. Dengan melakukan evolusi, pengembang dapat menambahkan
fitur baru, meningkatkan fungsionalitas, dan memberikan nilai tambah kepada
pengguna.
·
Optimasi Performa:
Melalui evolusi, pengembang dapat mengidentifikasi dan mengoptimalkan
bagian-bagian perangkat lunak yang memerlukan perbaikan performa. Hal ini dapat
membantu mengurangi penggunaan sumber daya, mempercepat waktu respons, dan
meningkatkan pengalaman pengguna.
·
Kepatuhan Regulasi:
Perangkat lunak seringkali harus mematuhi peraturan dan regulasi tertentu.
Proses evolusi memungkinkan pengembang untuk menyesuaikan perangkat lunak
dengan persyaratan hukum dan regulasi yang berubah, sehingga tetap dapat
digunakan tanpa melanggar aturan.
·
Perubahan Kebutuhan Pengguna:
Kebutuhan dan preferensi pengguna dapat berubah seiring waktu. Dengan
mengumpulkan umpan balik dari pengguna dan menganalisis tren pasar, pengembang
dapat melakukan penyesuaian dan perubahan yang diperlukan agar perangkat lunak
tetap relevan.
2. Evolusi perangkat lunak adalah proses yang
berkesinambungan, dan pengembang terus menerus memantau, mengevaluasi, dan
meningkatkan perangkat lunak untuk memastikan bahwa itu tetap relevan, andal,
dan aman sepanjang waktu. Proses evolusi melibatkan sejumlah tahapan yang dapat
mencakup hal-hal berikut:
·
Perencanaan dan Analisis:
Tahap awal evolusi melibatkan perencanaan dan analisis kebutuhan. Pengembang
mengevaluasi kinerja perangkat lunak saat ini, mengidentifikasi kelemahan, dan
merencanakan perubahan yang diperlukan untuk meningkatkan atau menyesuaikan
fungsionalitas.
·
Pengembangan Baru atau Pembaruan:
Berdasarkan hasil analisis, pengembang dapat memutuskan apakah perlu
mengembangkan versi baru dari perangkat lunak atau melakukan pembaruan pada
versi yang sudah ada. Pembaruan ini mungkin mencakup penambahan fitur baru,
perbaikan bug, atau peningkatan keamanan.
·
Desain dan Implementasi:
Tahap ini melibatkan proses desain ulang dan implementasi perubahan. Pengembang
merancang struktur baru atau memodifikasi yang sudah ada sesuai kebutuhan, dan
kemudian menerapkan perubahan tersebut ke dalam kode sumber perangkat lunak.
·
Uji dan Verifikasi:
Setelah perubahan diimplementasikan, perangkat lunak harus diuji untuk
memastikan bahwa perubahan tersebut tidak menyebabkan bug baru atau masalah
kinerja. Uji ini melibatkan pengujian fungsional, pengujian integrasi, dan
pengujian kinerja untuk memastikan bahwa perangkat lunak berfungsi dengan baik.
·
Pengujian Pengguna dan Umpan Balik:
Perangkat lunak yang telah diperbarui atau dikembangkan kemudian diuji oleh
pengguna beta atau kelompok pengguna terbatas. Umpan balik dari pengguna ini
sangat berharga untuk mengidentifikasi masalah atau perubahan yang mungkin
diperlukan sebelum merilis secara luas.
·
Rilis dan Implementasi:
Setelah semua perubahan diuji dan mendapatkan persetujuan, perangkat lunak
dapat dirilis secara resmi. Proses ini melibatkan implementasi perangkat lunak
baru atau pembaruan ke sistem atau infrastruktur yang relevan.
·
Pemeliharaan:
Setelah rilis, perangkat lunak memasuki tahap pemeliharaan. Ini melibatkan
pemantauan kinerja, perbaikan cepat terhadap bug yang ditemukan setelah rilis,
dan pembaruan keamanan secara berkala.
·
Siklus Kembali ke Tahap Perencanaan:
Siklus evolusi tidak berhenti setelah satu iterasi. Perubahan kebutuhan,
perkembangan teknologi, dan umpan balik pengguna dapat memicu siklus kembali ke
tahap perencanaan untuk memulai iterasi evolusi berikutnya.
3. Maurice H. Halsted, seorang profesor
komputer yang juga bekerja sama dengan Meir M. Lehman dalam penelitian
perangkat lunak, mengusulkan beberapa "Laws of Software Evolution"
atau Hukum Evolusi Perangkat Lunak. Meskipun ada beberapa formulasi dari hukum
ini, Lehman's Laws of Software Evolution biasanya disajikan dalam enam hukum
yang terkenal:
·
Hukum Perubahan Berkelanjutan (Continuing
Change): Perangkat lunak harus secara
berkelanjutan berkembang seiring waktu untuk tetap berguna. Jika tidak ada
perubahan, perangkat lunak akan menjadi semakin tidak efektif atau ketinggalan
zaman.
·
Hukum Kompleksitas Berkembang (Increasing
Complexity): Saat perangkat lunak berkembang,
kompleksitasnya cenderung meningkat. Pengembang perangkat lunak harus aktif
berusaha mengelola dan mengurangi kompleksitas tersebut untuk mencegah
penurunan produktivitas dan peningkatan risiko kesalahan.
·
Hukum Pertumbuhan Konsisten (Conservation
of Familiarity): Ketika perangkat lunak berkembang,
pengetahuan atau keahlian dalam sistem tersebut tetap ada di antara tim
pengembang. Upaya yang diperlukan untuk memahami dan memodifikasi perangkat
lunak meningkat seiring waktu.
·
Hukum Besaran Berkembang (Continuing
Growth of Functionality): Fungsi baru harus terus
ditambahkan ke perangkat lunak untuk menjaga kepuasan pengguna. Jika tidak ada
penambahan fitur baru, perangkat lunak akan dianggap usang dan tidak berguna.
·
Hukum Biaya Kendali Berkembang (Continuing
Growth of Costs): Biaya untuk memelihara perangkat lunak
cenderung meningkat seiring waktu. Oleh karena itu, diperlukan upaya yang cukup
besar untuk mengelola dan mengontrol biaya pemeliharaan.
·
Hukum Deklinasi Sistem (Declining
Quality): Kualitas perangkat lunak cenderung
menurun seiring waktu kecuali jika upaya khusus dilakukan untuk mempertahankan
atau meningkatkannya.
Hukum-hukum ini menggambarkan sifat evolusi perangkat
lunak dan menunjukkan pentingnya manajemen evolusi perangkat lunak yang
efektif. Menerapkan prinsip-prinsip ini membantu organisasi dalam merencanakan,
mengelola, dan memahami dampak dari perubahan dalam siklus hidup perangkat
lunak.
Comments
Post a Comment