ETS KPPL E

Nama: Valensio Arvin Putra Setiawan

NRP: 5025231273

Kelas: KPPL E

Soal:

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

Jawaban: 

  • Skalabilitas dan Fungsionalitas yang Meningkat. Seiring bertambahnya kebutuhan pengguna dan organisasi, perangkat lunak harus mampu menangani lebih banyak fitur dan fungsionalitas. Hal ini menuntut pengembang untuk terus menambahkan kode, memperbarui komponen, dan membuat integrasi yang lebih kompleks.
  • Perubahan Teknologi dan Platform. Perangkat lunak harus kompatibel dengan berbagai platform, perangkat, dan teknologi baru. Pengembangan untuk berbagai platform menambah lapisan kompleksitas, termasuk integrasi dengan teknologi terbaru seperti cloud, AI, atau IoT.
  • 2. Apa yang dimaksud dengan software reusability, dan mengapa hal ini penting dalam pengembangan perangkat lunak modern?

    Jawaban:
    Software reusability merupakan kemampuan komponen perangkat lunak (seperti kode, modul, atau fungsi) untuk digunakan kembali dalam berbagai aplikasi atau situasi lain tanpa perlu pengembangan ulang dari awal. Hal ini penting karena:

    • Menghemat Waktu dan Biaya: Pengembang tidak perlu membuat kode dari awal untuk setiap proyek baru, sehingga pengembangan bisa lebih cepat dan hemat biaya.
    • Memperbaiki Kualitas: Komponen yang sudah diuji dan dipakai ulang cenderung lebih stabil dan handal dibandingkan dengan kode baru yang belum diuji.

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

    Jawaban:
    Pengujian perangkat lunak berperan penting untuk memastikan bahwa perangkat lunak bekerja sesuai dengan spesifikasi dan bebas dari bug atau kesalahan yang dapat menyebabkan malfungsi. Pengujian juga membantu meningkatkan kualitas perangkat lunak dan kepercayaan user terhadap produk yang dihasilkan.

    Dua jenis pengujian umum yang dilakukan adalah:

    • Pengujian Fungsional: Menguji apakah fitur-fitur perangkat lunak berfungsi sesuai dengan persyaratan yang telah ditentukan.
    • Pengujian Non-Fungsional: Menguji aspek perangkat lunak yang tidak terkait langsung dengan fungsi, seperti kinerja, keamanan, dan keandalan.

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

    Jawaban:

    - Framework Activities:

    • Framework activities adalah serangkaian kegiatan inti yang selalu ada dalam setiap proses pengembangan perangkat lunak, apa pun metodologi yang digunakan. Setiap proyek perangkat lunak, terlepas dari ukuran atau kompleksitasnya, akan melibatkan aktivitas framework ini.
    • Kegiatan ini biasanya terdiri dari:
      • Communication (Komunikasi): Interaksi dengan pelanggan atau stakeholder untuk memahami kebutuhan dan persyaratan sistem.
      • Planning (Perencanaan): Menentukan lingkup proyek, jadwal, sumber daya, dan aktivitas yang diperlukan.
      • Modeling (Pemodelan): Melakukan analisis dan desain perangkat lunak yang akan dikembangkan.
      • Construction (Konstruksi): Melaksanakan coding atau pengkodean, serta melakukan pengujian (testing).
      • Deployment (Penyebaran): Memastikan perangkat lunak siap untuk dipasang dan digunakan oleh pengguna.

    - Umbrella Activities:

    • Umbrella activities adalah aktivitas yang mendukung framework activities dan berlangsung sepanjang siklus pengembangan perangkat lunak. Mereka memberikan kontrol dan kualitas terhadap keseluruhan proses.
    • Contoh dari umbrella activities meliputi:
      • Quality Assurance (Jaminan Kualitas): Memastikan bahwa proses pengembangan dan produk akhir sesuai dengan standar kualitas.
      • Configuration Management (Manajemen Konfigurasi): Melacak dan mengontrol perubahan yang dilakukan selama pengembangan perangkat lunak.
      • Risk Management (Manajemen Risiko): Mengidentifikasi, menilai, dan mengelola risiko yang mungkin muncul selama pengembangan.
      • Project Tracking and Control (Pelacakan dan Pengendalian Proyek): Memantau kemajuan proyek terhadap jadwal, biaya, dan kinerja yang direncanakan.

    - Task Set:

    • Task set adalah serangkaian tugas spesifik yang harus diselesaikan untuk setiap framework activity. Task set bisa berubah-ubah bergantung pada jenis proyek, ukuran tim, metodologi yang digunakan, dan lingkup pekerjaan.
    • Setiap task set biasanya terdiri dari:
      • Task: Kegiatan atau tugas spesifik yang perlu diselesaikan dalam satu aktivitas (misalnya, pengumpulan kebutuhan atau desain database).
      • Milestone: Titik pencapaian penting dalam proyek, seperti selesainya fase desain atau prototipe.
      • Deliverable: Hasil dari task set, seperti dokumen kebutuhan, diagram desain, atau prototipe yang sudah selesai.

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

    Jawaban:

    Manajemen konflik yang efektif sangat penting karena konflik yang tidak dikelola dengan baik dapat menyebabkan ketegangan di dalam tim, menghambat kolaborasi, dan memperlambat pengembangan. Dengan manajemen konflik yang baik, tim dapat tetap fokus pada tujuan bersama dan memaksimalkan pengembangan.

    Dua teknik untuk menangani konflik adalah:

    • Mediasi: Melibatkan pihak ketiga yang netral untuk membantu anggota tim menyelesaikan konflik dan mencapai kesepakatan yang saling menguntungkan.
    • Negosiasi: Mengajak anggota tim yang terlibat konflik untuk berdiskusi secara terbuka dan mencari solusi yang dapat diterima oleh semua pihak.

    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 kecil 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?

    Jawaban:

    - Tantangan yang dihadapi startup ini meliputi:

    • Skalabilitas: Aplikasi e-commerce yang direncanakan akan digunakan oleh jutaan pengguna, sehingga perangkat lunak harus mampu berkembang dan menangani beban pengguna yang besar.
    • Pemeliharaan dan Evolusi: Perangkat lunak e-commerce perlu terus diperbarui seiring dengan perubahan kebutuhan pengguna, regulasi, dan teknologi.

    - Untuk menghadapi tantangan ini, startup harus:

    • Menggunakan Arsitektur yang Modular dan Fleksibel: Memastikan bahwa perangkat lunak dibangun dengan arsitektur yang dapat diskalakan dan mudah untuk ditingkatkan, seperti microservices atau cloud-based architecture.
    • Menerapkan Praktik DevOps: Mengintegrasikan proses pengembangan dan operasi untuk mempercepat rilis fitur baru dan meningkatkan respons terhadap perubahan atau masalah yang muncul.
    • Menyiapkan Infrastruktur yang Andal: Menggunakan platform cloud untuk mendukung ketersediaan, skalabilitas, dan ketahanan aplikasi e-commerce.

    Comments