1 of 10

Evolusi Perangkat Lunak

01

02

03

04

05

2 of 10

Evolusi perangkat lunak

  • Evolusi perangkat lunak adalah proses alami perubahan dan perkembangan perangkat lunak dari waktu ke waktu, mirip dengan konsep evolusi biologis. Ini penting dalam pengembangan perangkat lunak karena perangkat lunak, seperti makhluk hidup, perlu beradaptasi dengan lingkungannya yang selalu berubah. Evolusi memungkinkan perangkat lunak untuk tetap relevan, efisien, dan bermanfaat dalam menghadapi tuntutan dan perubahan zaman.
  • Dalam konteks evolusi perangkat lunak, Perangkat lunak yang tidak mampu beradaptasi dengan tuntutan pasar, teknologi, atau perubahan lingkungan dapat terancam punah, sedangkan yang mampu beradaptasi bertahan dan berkembang lebih lanjut

3 of 10

Enkripsi

  • Evolusi perangkat lunak yang berfokus pada perbaikan keamanan terus berkembang dan menjadi lebih penting dalam industri teknologi informasi saat ini. Berbagai strategi telah dikembangkan untuk meningkatkan keamanan perangkat lunak, termasuk penggunaan teknologi enkripsi, pemeriksaan kode yang ketat, dan pengujian keamanan reguler.
  • Dalam upaya untuk meningkatkan keamanan perangkat lunak, ada beberapa strategi penting yang telah digunakan. Salah satunya adalah teknologi enkripsi yang digunakan untuk melindungi data dan membuatnya lebih sulit bagi penjahat cyber untuk mencuri atau membocorkannya.

4 of 10

Insiden keamanan terkenal

  • Beberapa insiden keamanan terkenal yang terjadi dalam sejarah perangkat lunak telah memengaruhi evolusi perangkat lunak untuk fokus pada keamanan. Misalnya, serangan virus worm Morris pada tahun 1988 menginfeksi ribuan sistem komputer dan menunjukkan pentingnya keamanan perangkat lunak untuk mencegah serangan serupa terjadi di masa depan.

  • Serangan terorisme 11 September 2001 juga memperkuat tuntutan untuk perangkat lunak yang lebih aman dalam pemerintahan dan industri, karena keamanan sistem informasi sangat penting dalam pencegahan serangan terhadap keamanan nasional.

  • Selain itu, beberapa insiden keamanan terkenal seperti kebocoran data besar dan serangan ransomware WannaCry di tahun 2017, telah memacu perusahaan untuk meningkatkan keamanan dan perlindungan perangkat lunak mereka agar tidak terkena ancaman serupa di masa depan.

5 of 10

Refactoring

  • Refactoring" adalah suatu proses dalam pengembangan perangkat lunak di mana kode sumber suatu program diubah atau diperbaiki tanpa mengubah perilaku fungsional eksternal dari perangkat lunak tersebut. Praktik ini bertujuan untuk meningkatkan kualitas kode sumber, mempermudah pemahaman, mengurangi kerumitan, dan memperbaiki efisiensi tanpa merusak fungsionalitas yang ada.
  • Jadi dapat disimpulkan Refactoring adalah :�Refactoring adalah tindakan yang melibatkan perubahan dalam kode sumber tanpa mengubah fungsionalitas eksternal perangkat lunak. Sebagai langkah penting dalam evolusi perangkat lunak, Dalam konteks evolusi perangkat lunak, refactoring sangat penting karena

6 of 10

Meningkatkan Kualitas Kode: Refactoring membantu meningkatkan kualitas kode sumber dengan menghilangkan kode duplikat, mengurangi kompleksitas, dan memastikan pemahaman yang lebih baik.

Mengurangi Kerentanan: Dengan membersihkan kode dan memperbaiki kerentanan potensial, refactoring membantu meningkatkan keamanan perangkat lunak, sehingga mengurangi risiko serangan siber.

Memudahkan Perawatan: Kode yang sudah direfactor lebih mudah untuk dikelola dan dipelihara. Ini membuatnya lebih hemat waktu dan biaya dalam jangka panjang.

Peningkatan Kinerja: Refactoring dapat membantu memperbaiki kinerja perangkat lunak dengan mengoptimalkan algoritma atau struktur data.

Pengembangan yang Lebih Cepat: Kode yang bersih dan terstruktur dengan baik memungkinkan pengembang untuk bekerja lebih efisien, yang mempercepat proses pengembangan perangkat lunak.

Mempertahankan Keandalan: Dengan mengurangi atau menghilangkan potensi bug atau masalah, refactoring membantu menjaga keandalan perangkat lunak, yang sangat penting terutama dalam aplikasi kritis.

Meningkatkan Kepahaman Bersama: Kode yang lebih bersih dan terorganisir dengan baik lebih mudah dipahami oleh anggota tim pengembangan, yang berarti lebih mudah untuk berkolaborasi dalam tim.

7 of 10

Windows telah mengalami beberapa refactoring yang signifikan dalam sejarah pengembangannya. Tujuan utama dari refactoring di Windows adalah meningkatkan kualitas, kinerja, dan keamanan sistem operasi,�

  • Windows NT: Windows NT adalah basis bagi banyak versi Windows modern, termasuk Windows 2000, XP, Vista, 7, dan 10. Refactoring signifikan terjadi ketika Microsoft memutuskan untuk membangun Windows NT dari awal pada akhir 1980-an. Ini adalah perubahan besar yang bertujuan untuk menciptakan sistem operasi yang lebih andal, aman, dan skalabel. Refactoring semacam ini adalah landasan bagi evolusi Windows ke arah sistem operasi yang lebih modern.
  • Windows Vista: Windows Vista (sering disebut sebagai "Longhorn" selama pengembangannya) mengalami refactoring yang signifikan dalam hal tampilan dan manajemen sumber daya. Pengembangan Vista berfokus pada peningkatan tampilan dan efek visual dengan antarmuka Aero Glass yang menarik. Tujuan refactoring di sini adalah memberikan pengalaman pengguna yang lebih menarik, meskipun ini juga mengharuskan perubahan yang signifikan dalam manajemen sumber daya perangkat keras.
  • Windows 7: Setelah Windows Vista yang kurang populer, Windows 7 mengalami refactoring yang lebih mendalam dengan fokus pada stabilitas dan kinerja yang lebih baik. Tujuan utamanya adalah mengatasi banyak masalah yang dihadapi oleh Vista dan menyediakan sistem operasi yang lebih responsif dan efisien. Refactoring dalam hal manajemen sumber daya dan pengoptimalan kinerja adalah fokus utama dalam pengembangan Windows 7.
  • Windows 10: Windows 10 menandai perubahan paradigma dalam pengembangan Windows. Ini adalah sistem operasi yang berfokus pada "Windows as a Service" (Windows sebagai Layanan), yang berarti pembaruan reguler dan perbaikan keamanan yang kontinu. Refactoring terjadi dalam pengelolaan pembaruan dan integrasi dengan perangkat seluler serta layanan cloud. Windows 10 juga memperkenalkan tampilan yang lebih bersih dan pengalaman yang lebih konsisten di berbagai perangkat.

8 of 10

�Perangkat lunak open source dan perangkat lunak propietari mengalami evolusi dengan beberapa perbedaan kunci, baik dalam pendekatan pengembangan, transparansi, dan manajemen perubahan. Berikut perbandingan antara evolusi perangkat lunak

open source dan propietari

Perangkat Lunak Open Source:

  1. Transparansi:
    1. Dapat dilihat siapa saja.
    2. Keterlibatan komunitas pengembang dapat mempercepat inovasi dan perubahan.
  2. Pengembangan Bertahap:
    • Sering mengalami perkembangan bertahap yang fokusnya perbaikan berkelanjutan berdasarkan masukan dari banyak pengguna.
    • Lebih cepat beradaptasi dengan kebutuhan pengguna, karena komunitas lebih cepat merespons atas masukan dan permintaan.
  3. Kualitas Kode:
    • Biasanya ada insentif agar kode sumber tetap berkualitas tinggi.
    • Proses peer review umumnya mendorong kualitas kode yang lebih baik.
  4. Keamanan:
    • Prinsip "mata banyak mata" komunitas pengembang dapat mengidentifikasi dan mengatasi kerentanan lebih cepat.
    • Namun, ini juga membuat perangkat lunak lebih terbuka terhadap penyerang.
    • Komunitas pengembang/pihak ketiga seringkali menyediakan pemeliharaan dan dukungan yang bervariasi.

Perangkat Lunak Open Source:

  1. Kode Tertutup:
    1. Kode tidak terbuka umum. Mengurangi keterlibatan eksternal dalam pengembangan.
    2. Lebih mengikuti jadwal pembaruan yang lebih ketat, dengan peningkatan besar yang dirilis secara periodic.
  2. Kualitas Kode:
    • Lebih terbatas fleksibilitasnya untuk beradaptasi dengan kebutuhan pengguna karena kode sumber tidak bisa diakses secara umum.
    • Kualitas kode bergantung pada praktik pengembangan perusahaan.
  3. Dukungan dan Pemeliharaan:
    • Pemeliharaan dan dukungan umumnya disediakan oleh perusahaan pemilik.
    • Tapi biasanya terjadwal ketat karena ada biaya yang harus dikeluarkan.

9 of 10

Kesimpulan

Perbedaan ini mencerminkan pendekatan yang berbeda dalam pengembangan perangkat lunak dan manajemen perubahan antara perangkat lunak open source yang terbuka dan perangkat lunak propietari yang tertutup. Pemilihan antara kedua pendekatan ini tergantung pada kebutuhan, tujuan, dan konteks pengembangan yang spesifik.

10 of 10