Evolusi Perangkat Lunak - Kuis Akhir

1. Sebutkan dan jelaskan alasan mengapa perangkat lunak harus mengalami proses evolusi?
  • Proses evolusi perangkat lunak merupakan  kebutuhan  mendasar dalam dunia teknologi.
Alasan mengapa perangkat lunak perlu melalui proses evolusi meliputi: Memperbaiki bug dan kerentanan keamanan: Dalam pengembangan perangkat lunak, bug  yang mungkin muncul setelah rilis awal Anda dapat mengidentifikasi dan memperbaiki kesalahan.
  • Keamanan perangkat lunak juga dapat ditingkatkan dengan mengidentifikasi dan menyelesaikan kerentanan keamanan baru.
  • Peningkatan Kinerja: 
Perangkat lunak  dapat meningkatkan kinerjanya melalui pengembangan lebih lanjut, baik dari segi kecepatan, efisiensi penggunaan sumber daya, dan peningkatan fungsionalitas.
  • Menambahkan Fitur Baru: 
Pengguna sering kali memerlukan atau mengharapkan penambahan fitur baru untuk memenuhi kebutuhan yang berubah seiring waktu.
Fitur-fitur baru ini  meningkatkan nilai perangkat lunak dan membuatnya lebih relevan.
  • Kepatuhan Standar : 
Pengembangan perangkat lunak dapat membantu memastikan bahwa perangkat lunak Anda tetap mematuhi standar, undang-undang, dan peraturan industri yang terus berkembang.
  • Beradaptasi dengan perangkat dan lingkungan baru: 
Perubahan pada perangkat keras atau sistem operasi Anda mungkin memerlukan penyesuaian pada perangkat lunak Anda untuk menjaga kompatibilitas dan berfungsi dengan baik.
  • Pembaruan Teknologi: 
Peningkatan teknologi seperti: Misalnya, perkembangan baru dalam paradigma komputasi, kecerdasan buatan, dan pengembangan perangkat lunak dapat mendorong peningkatan perangkat lunak secara berkelanjutan.
  • Umpan Balik Pengguna: 
Umpan balik  pengguna adalah sumber informasi berharga untuk meningkatkan pengalaman pengguna, menyesuaikan antarmuka, atau menyelesaikan masalah apa pun yang mungkin Anda temui.
  • Persaingan di Pasar: 
Dalam dunia bisnis, persaingan antar perusahaan memerlukan perbaikan produk perangkat lunak secara terus menerus agar tetap kompetitif di pasar.
  • Kemajuan ilmu pengetahuan dan teknologi: 
Perkembangan ilmu pengetahuan dan teknologi secara umum mendorong diperkenalkannya inovasi baru dan peningkatan fungsi perangkat lunak.
  •  Ketidakpastian dalam persyaratan pengguna: 
Persyaratan pengguna dapat berubah seiring waktu, dan pengembangan perangkat lunak memungkinkan Anda beradaptasi dengan perubahan ini. Melalui proses evolusi memungkinkan perangkat lunak  tetap relevan dan kuat, memenuhi kebutuhan lingkungan yang dinamis yang terus berkembang.

2. Apa yang dimaksud dengan evolusi perangkat lunak, meliputi apa saja prosesnya

Evolusi perangkat lunak merujuk pada serangkaian perubahan dan pengembangan yang dilakukan terhadap perangkat lunak sepanjang waktu. Proses evolusi ini melibatkan berbagai tahapan yang bertujuan untuk meningkatkan kualitas, kinerja, dan fungsionalitas perangkat lunak. Beberapa aspek utama dari evolusi perangkat lunak melibatkan:

  1. Analisis Kebutuhan:

    • Proses dimulai dengan pemahaman yang mendalam tentang kebutuhan pengguna dan pemangku kepentingan. Ini melibatkan identifikasi kekurangan atau perubahan yang diperlukan dalam perangkat lunak.
  2. Perencanaan Evolusi:

    • Setelah kebutuhan diidentifikasi, langkah selanjutnya adalah merencanakan evolusi perangkat lunak. Ini mencakup alokasi sumber daya, penjadwalan, dan pengembangan rencana yang jelas untuk mengimplementasikan perubahan.
  3. Perubahan Fungsional:

    • Peningkatan fungsionalitas adalah bagian integral dari evolusi perangkat lunak. Ini melibatkan penambahan fitur baru, modifikasi, atau penghapusan fitur yang tidak lagi diperlukan.
  4. Pembaruan Kode Sumber:

    • Pembaruan kode sumber melibatkan peninjauan, pemahaman, dan modifikasi kode perangkat lunak. Pembaruan ini dapat mencakup perbaikan bug, optimisasi kinerja, atau penyesuaian dengan perubahan teknologi.
  5. Pengujian:

    • Setelah perubahan dilakukan, pengujian menyeluruh diperlukan untuk memastikan bahwa perubahan tersebut tidak menyebabkan masalah baru atau mempengaruhi kinerja yang ada. Pengujian termasuk pengujian fungsional, pengujian keamanan, dan pengujian kinerja.
  6. Pengelolaan Konfigurasi:

    • Sistem pengelolaan konfigurasi digunakan untuk melacak perubahan yang dilakukan pada perangkat lunak. Ini membantu dalam memahami versi mana yang digunakan, serta memungkinkan untuk rollback ke versi sebelumnya jika diperlukan.
  7. Pengelolaan Proses dan Dokumentasi:

    • Dokumentasi perubahan dan proses evolusi sangat penting. Ini mencakup dokumentasi tentang perubahan fungsional, perbaikan bug, dan proses pengujian. Dokumentasi ini membantu tim pengembangan dan pemeliharaan perangkat lunak.
  8. Implementasi:

    • Setelah pengujian berhasil, perubahan diimplementasikan ke dalam lingkungan produksi. Ini dapat melibatkan pembaruan perangkat lunak pada server, peluncuran pembaruan aplikasi, atau langkah-langkah implementasi lainnya.
  9. Evaluasi dan Umpan Balik:

    • Setelah implementasi, evaluasi dilakukan untuk memastikan bahwa perubahan memenuhi harapan dan tidak memicu masalah baru. Umpan balik dari pengguna juga diambil untuk memahami respons dan kebutuhan pengguna.

Proses evolusi perangkat lunak bersifat iteratif dan berkelanjutan, terus-menerus menyesuaikan perangkat lunak dengan kebutuhan yang berkembang, perubahan teknologi, dan tuntutan pengguna. Proses ini memastikan bahwa perangkat lunak tetap relevan dan dapat berkinerja optimal sepanjang waktu.

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

Maurice H. Halsted dan Mary Shaw mengajukan "Laws of Software Evolution" pada tahun 1977. Kemudian, Meir M. Lehman menyusun dan memperluasnya dalam kerangka kerja yang lebih terperinci. Laws of Software Evolution ini menggambarkan tren dan karakteristik evolusi perangkat lunak seiring waktu. Berikut adalah beberapa "Laws" dari Lehman mengenai evolusi perangkat lunak:

Hukum Pertumbuhan:

Lehman's First Law: "Sistem yang berkembang akan menjadi semakin rumit, kecuali jika ada usaha untuk menghentikan pertumbuhannya."

Penjelasan: Seiring waktu, fungsionalitas tambahan dan perubahan sistem menyebabkan peningkatan kompleksitas. Untuk mencegah kekacauan, diperlukan upaya aktif untuk mengelola dan memahami pertumbuhan tersebut.

Hukum Perubahan:

Lehman's Second Law: "Seiring waktu, setiap sistem akan menjadi tidak sesuai dengan lingkungan di mana sistem tersebut beroperasi."

Penjelasan: Perubahan dalam lingkungan (seperti perubahan kebutuhan pengguna atau perkembangan teknologi) menyebabkan kebutuhan perubahan dalam sistem agar tetap relevan.

Hukum Kendur:

Lehman's Third Law: "Rasio program yang konstan selama evolusi."

Penjelasan: Meskipun fungsionalitas sistem dapat ditingkatkan dan diubah, rasio kesalahan (bug) terhadap jumlah perubahan tetap konstan sepanjang waktu.

Hukum Konservasi Stabilitas Organisasi:

Lehman's Fourth Law: "Stabilitas organisasi adalah variabel bebas dalam evolusi perangkat lunak."

Penjelasan: Kesuksesan evolusi perangkat lunak tidak tergantung pada stabilitas organisasi. Organisasi dapat berubah atau tetap stabil tanpa mempengaruhi proses evolusi perangkat lunak secara signifikan.

Hukum Kontinuitas:

Lehman's Fifth Law: "Selama evolusi, jumlah perangkat lunak yang baru dan perangkat lunak yang lama akan tetap konstan."

Penjelasan: Meskipun ada pengembangan baru, perangkat lunak yang ada terus dipelihara dan dimodifikasi, sehingga jumlah total perangkat lunak tetap relatif konstan.

Hukum Inverse Massa:

Lehman's Sixth Law: "Ketidakpastian dalam perangkat lunak adalah fungsi invers dari jumlah massa perangkat lunak."

Penjelasan: Semakin besar massa perangkat lunak (jumlah baris kode atau kompleksitas), semakin kecil ketidakpastian tentang perilaku perangkat lunak.

Hukum Pembusukan:

Lehman's Seventh Law: "Kualitas perangkat lunak yang sedang membusuk semakin menurun."

Penjelasan: Tanpa upaya untuk memperbaiki atau memodernisasi, kualitas perangkat lunak cenderung memburuk seiring waktu.

Laws of Software Evolution ini memberikan pandangan umum tentang sifat evolusi perangkat lunak dan menyoroti pentingnya manajemen perubahan dan pemeliharaan untuk menjaga kualitas dan keberlanjutan sistem perangkat lunak.

Comments

Popular posts from this blog

Tugas Implementasi Infix ke Postfix menggunakan Stack dan Queue (Rabu, 21 April 2021)

Tower Of Hanoi Program Using Recursion On Java (Rabu, 2 Juni 2021)

ETS APSI