ETS KPPL E

Daru Fadhilah Nahdi

5025221282

Rabu, 23 Oktober 2024

ETS KPPL E


 1. Mengapa perangkat lunak cenderung menjadi lebih kompleks seiring dengan perkembangannya? Jelaskan dua faktor utama yang menyebabkannya.

> Ada beberapa kemungkinan faktor apa saja yang mempengaruhi, tetapi pada umumnya perangkat lunak menjadi lebih kompleks karena:

  • Kebutuhan pengguna yang terus berkembang: Pengguna semakin menginginkan fitur-fitur yang lebih canggih, responsif,  personalisasi tinggi, dan lainnya, sehingga menambah kompleksitas dalam pengembangan perangkat lunak.
  • Teknologi yang berkembang pesat: Adopsi teknologi baru seperti AI, IoT, dan cloud computing memerlukan perangkat lunak yang dapat mendukung berbagai integrasi dan interoperabilitas.

2. Apa yang dimaksud dengan software reusability, dan mengapa hal ini penting dalam pengembangan perangkat lunak modern?

> Software reusability adalah kemampuan software atau komponen dari software  untuk digunakan kembali di berbagai proyek atau aplikasi lainnya. Hal ini penting karena:

  • Menghemat waktu dan biaya: Komponen yang dapat digunakan kemballi yang akan mengurangi kebutuhan untuk membuat proyek dari awal total seperti kode-kodenya. Hal ini akan sangat menghemat waktu yang digunakan karena tidak perlu membuang waktu melakukan hal yang sudah pernah dilakukan di waktu lampau.
  • Mengurangi risiko kesalahan: Karena komponen-komponen yang sudah pernah digunakan dulunya sudah di test untuk kebagusannya sebagai perangkat lunak, menggunakan software atau komponen softwarenya lagi juga memastikan kualitasnya dan meminimalisir bug.

3. Apa peran pengujian perangkat lunak (software testing) dalam siklus hidup pengembangan perangkat lunak, dan sebutkan dua jenis pengujian yang umum dilakukan.

>  Software testing adalah proses untuk memastikan bahwa perangkat lunak bekerja sesuai keinginan , spesifikasi dan bebas dari bug. Pengujian ini bertujuan untuk menjamin kualitas perangkat lunak sebelum dideploy secara resmi. Dua jenis pengujian yang umum dilakukan:

  • Unit testing: Menguji setiap unit atau modul perangkat lunak secara terpisah.
  • Integration testing: Menguji interaksi antara beberapa unit untuk memastikan mereka bekerja dengan baik dengan satu sama lain.

4. Sebutkan dan jelaskan tiga komponen utama dari struktur proses perangkat lunak Framework Activities, Umbrella Activities, Task Set

>   Komponen utama dari struktur proses perangkat lunak :

  • Framework Activities: Kegiatan dasar yang harus dilakukan dalam pengembangan perangkat lunak, seperti perencanaan, analisis, desain, implementasi, dan pengujian.
  • Umbrella Activities: Komponen kegiatan yang membantu seperti manajemen konfigurasi perangkat lunak, jaminan kualitas, dan dokumentasi.
  • Task Set: Serangkaian tugas spesifik yang dilakukan di setiap tahap framework activities sesuai dengan proses yang digunakan.

5. Bagaimana manajemen konflik dapat berperan dalam keberhasilan tim rekayasa perangkat lunak, dan sebutkan dua teknik untuk menangani konflik dalam tim pengembangan?

>  Dalam tim rekayasa perangkat lunak, konflik sering muncul dari perbedaan pendapat, gaya kerja, tujuan, dan ekspektasi. Konflik bisa bersifat konstruktif jika dikelola dengan baik, karena dapat mendorong tim untuk lebih kreatif dalam mencari solusi. Namun, konflik yang tidak terkelola dengan baik bisa menyebabkan kecacatan tim, ketegangan antar anggota, dan bahkan menyebabkan proyek tertunda atau gagal.. Dua teknik menangani konflik dalam tim pengembangan:

  • Mediasi: Mediasi adalah teknik manajemen konflik yang melibatkan pihak ketiga netral, biasanya seorang manajer proyek atau fasilitator, yang membantu kedua pihak yang bertikai untuk mencapai kesepakatan.
  • Kolaborasi: Kolaborasi adalah teknik manajemen konflik di mana semua pihak yang terlibat dalam konflik bekerja sama secara langsung untuk mencari solusi yang menyebabakan konfliknya. Teknik ini berbeda dengan mediasi karena semua pihak aktif berpartisipasi dalam diskusi dan pengambilan keputusan, tanpa pihak ketiga yang memimpin prosesnya.

6. Studi Kasus: Sebuah perusahaan startup teknologi ingin mengembangkan aplikasi e-commerce yang akan digunakan oleh jutaan pengguna di seluruh dunia. Mereka memiliki tim pengembang keil yang berpengalaman, namun mereka tidak memiliki pengalaman sebelumnya dalam membangun aplikasi berskala besar. Jelaskan tantangan yang dihadapi startup tersebut terkait dengan sifat perangkat lunak (Nature of Software) yang berkembang secara terus menerus. Bagaimana mereka harus mempersiapkan diri untuk menghadapi tantangan-tantangan ini?

> Sebuah startup teknologi yang mencoba mengembangkan aplikasi e-commerce berskala besar menghadapi serangkaian tantangan unik yang berasal dari sifat perangkat lunak yang terus berkembang. Berikut adalah beberapa tantangan utama dan solusi potensial:

  • Scalibility:

    1. Tantangan: Menangani jutaan pengguna di seluruh dunia memerlukan arsitektur yang bisa berskala. Hal ini melibatkan pengelolaan data, transaksi, dan interaksi pengguna dalam jumlah besar dengan lancar. Kurangnya pengalaman startup dalam aplikasi skala besar dapat menimbulkan hambatan yang signifikan.
    2. Persiapan: Startup harus mempertimbangkan untuk mengadopsi solusi berbasis cloud yang menawarkan kemampuan  otomatis, sehingga infrastruktur dapat diperluas sesuai keinginan. Menerapkan teknik load-balancing untuk mendistribusikan traffic ke beberapa server juga dapat meningkatkan skalabilitas.

  • Performance:

    1. Tantangan: Memastikan kinerja optimal untuk basis pengguna global dengan beragam kondisi jaringan sangatlah penting.  Waktu prosesing yang lambat dapat menyebabkan keresahan dalam sisi user. 
    2. Persiapan: Teknik seperti CDN dapat menyimpan konten statis dalam cache lebih dekat dengan pengguna secara geografis, sehingga mengurangi latensi. Mengoptimalkan query database dan kode aplikasi untuk efisiensi agar server tidak terlalu terbebani.

  • Menjaga Kualitas:

    1. Tantangan: Seiring waktu berjalan dan siklus hidup e-commercenya berjalan, memastikan kualitas dan stabilitas perangkat lunak menjadi semakin sulit. Pengujian yang ketat diperlukan untuk mencegah bug dan memastikan pengalaman pengguna yang baik.
    2. Persiapan: Menerapkan strategi pengujian komprehensif yang mencakup unit tests, integration tests, and user acceptance testing. Melakukan automasi dalam proses pengujian juga dapat meningkatkan efisiensi dan memastikan konsistensi.

Comments

Popular posts from this blog

Tugas Pertemuan 12

Green Campaign di Era Artificial Intelligence: Menimbang Dampak Lingkungan dari Penggunaan AI

Tugas Pertemuan 5