[EPL] Kuis Individu (Pertemuan 15) - Evolusi Perangkat Lunak

Nama : Ichlasul Hasanat

NRP : 5025201091

----

1. Sebutkan dan jelaskan alasan mengapa perangkat lunak harus mengalami proses evolusi?

Menurut Hukum evolusi Lehman pertama yang menyatakan bahwa “Sebuah program yang digunakan dalam lingkungan dunia nyata selalu harus berubah, atau menjadi semakin kurang bermanfaat dalam lingkungan tersebut“. Sistem perangkat lunak yang sukses, dapat berubah dan berkembang seiring waktu. Proporsi utama dari perubahan adalah untuk memenuhi kebutuhan pengguna. Perubahan yang signifikan juga berasal dari kebutuhan untuk beradaptasi perangkat lunak untuk berinteraksi dengan entitas eksternal, termasuk orang-orang, organisasi, dan sistem buatan. Hukum ini menyatakan bahwa pemeliharaan dan pengembangan sistem adalah sebuah proses yang tak terelakkan. Ketika sistem dimodifikasi dan diperkenalkan kembali terhadap lingkungan, perubahan ini menyebabkan variasi dalam sistem internal dan diperlukan untuk dikelola dan dimonitor untuk memastikan bahwa perubahan yang dilakukan benar dan dapat digunakan di lingkungan baru.

Beberapa alasan perangkat lunak harus mengalami proses evolusi antara lain:

  • Perubahan Kebutuhan Pengguna: Kebutuhan pengguna terus berubah seiring waktu. Untuk tetap relevan dan berguna, perangkat lunak harus mampu menyesuaikan fitur dan fungsinya sesuai dengan perubahan kebutuhan ini.
  • Adaptasi terhadap Lingkungan Baru: Lingkungan di sekitar perangkat lunak, termasuk teknologi dan infrastruktur, terus berkembang. Evolusi diperlukan agar perangkat lunak dapat beradaptasi dengan perubahan lingkungan tersebut.
  • Perbaikan Bug dan Keamanan: Evolusi diperlukan untuk memperbaiki bug atau kesalahan yang ditemukan setelah perilisan awal. Selain itu, keamanan perangkat lunak perlu diperbarui secara berkala untuk menghadapi ancaman yang terus berkembang.
  • Penambahan Fitur: Untuk tetap bersaing dan memenuhi harapan pengguna, perangkat lunak harus terus diperbarui dengan penambahan fitur baru atau perbaikan pada fitur yang sudah ada.
  • Pemeliharaan dan Kestabilan: Proses evolusi membantu dalam pemeliharaan perangkat lunak, menjaga stabilitas, dan memastikan bahwa perangkat lunak tetap dapat diandalkan dalam jangka waktu yang panjang.
  • Optimisasi Kinerja: Evolusi dapat melibatkan optimisasi kinerja agar perangkat lunak dapat berjalan lebih efisien dan responsif seiring berjalannya waktu.

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

Evolusi perangkat lunak adalah sebuah proses pengembangan versi baru sebuah perangkat lunak secara berulang-ulang. Kebutuhan pemakai yang bertambah, proses bisnis yang berubah, atau sebuah metode baru untuk melakukan suatu hal, semua mempengaruhi bagaimana sebuah perangkat lunak berevolusi.

Berikut proses-proses dari evolusi perangkat lunak:

  • Perubahan (Change): Modifikasi perangkat lunak untuk memperbaiki kesalahan, menambahkan fitur baru, atau melakukan perubahan lainnya.
  • Pengembangan (Development): Penambahan fitur baru atau perubahan signifikan untuk memenuhi kebutuhan baru.
  • Pemeliharaan (Maintenance): Aktivitas perawatan untuk memastikan perangkat lunak tetap berjalan dengan baik dan sesuai dengan kebutuhan saat ini.
  • Penggantian (Replacement): Penggantian perangkat lunak lama dengan versi baru yang lebih baik atau solusi yang lebih modern.
  • Depresiasi (Depreciation): Penghentian dukungan untuk versi atau fitur tertentu yang sudah tidak relevan atau tidak aman.

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

Lehman mengemukakan delapan hukum evolusi perangkat lunak, yang dikenal sebagai "Laws of Software Evolution." Berikut adalah beberapa di antaranya:

  • Hukum perubahan terus menerus secara kontinu (Continuing Change): Perangkat lunak harus terus berubah seiring waktu untuk mempertahankan kegunaannya.
  • Hukum meningkatnya kompleksitas (Increasing Complexity): Seiring evolusinya, kompleksitas perangkat lunak akan meningkat dan akhirnya akan sulit untuk dipahami dan dioperasikan.
  • Hukum menjaga stabilitas dari organisasinya (Conservation of Organisational Stability): Sebagai contoh, dengan menambahkan sumber daya (misal manusia) tetapi tidak mengubah produktivitas.
  • Hukum kerentanan bisnis (Conservation of Familiarity): Selama evolusi, perubahan harus sebisa mungkin tetap konsisten dengan fungsi-fungsi yang sudah ada agar meminimalkan risiko kesalahan.
  • Hukum pertumbuhan berkala (Continuing Growth): Evolusi harus selalu bertumbuh mengikuti kepuasan user seumur hidup sistem tersebut secara kontinu.
  • Hukum kualitas menurun (Declining Quality): Kualitas perangkat lunak cenderung menurun seiring waktu kecuali jika ada upaya untuk mempertahankan atau meningkatkannya.
  • Hukum menerima feedback (Feedback System): Untuk mencapai perbaikan yang signifikan dari suatu dasar yang wajar, evolusi perangkat lunak harus diperlakukan sebagai suatu sistem umpan balik yang kompleks.

Komentar

Postingan Populer