Evaluasi Tengah Semester KPPL E

Fadhiil Hanif Rizqullah

5025221144

KPPL E


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

Perangkat lunak cenderung menjadi lebih kompleks seiring waktu karena dua faktor utama, yaitu kompleksitas proyek dan kecepatan perubahan teknologi. Pertama, kompleksitas proyek dipicu oleh variasi kebutuhan bisnis yang dinamis. Setiap perubahan kebutuhan dapat menambahkan lapisan baru pada sistem, membuatnya semakin rumit. Integrasi berbagai modul dan komponen yang rumit juga meningkatkan kompleksitas, seperti dalam kasus aplikasi mobile hybrid yang melibatkan kombinasi teknologi web dan native platform. Kedua, kecepatan perubahan teknologi memacu evolusi paradigma pengembangan perangkat lunak. Penggunaan AI, IoT, dan blockchain membutuhkan integrasi yang canggih dan fleksibilitas dalam desain serta implementasi. Transisi menuju DevOps dan Cloud Computing juga membutuhkan infrastruktur dan prosedur yang lebih maju.

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

Software reusability merujuk pada kemampuan untuk menggunakan kembali komponen perangkat lunak yang sudah ada, seperti kode, modul, atau desain, dalam pengembangan sistem baru dengan sedikit atau tanpa modifikasi. Konsep ini penting dalam pengembangan perangkat lunak modern karena dapat menghemat waktu dan biaya, meningkatkan produktivitas, serta memperbaiki kualitas produk akhir. Dengan memanfaatkan kode yang telah teruji dan terbukti efektif, pengembang dapat fokus pada inovasi dan fitur baru alih-alih menghabiskan waktu untuk menulis kode dari awal. Selain itu, penggunaan kembali komponen yang stabil juga mengurangi risiko kesalahan dan meningkatkan keandalan perangkat lunak.

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

Pengujian perangkat lunak (software testing) memainkan peran sangat penting dalam siklus hidup pengembangan perangkat lunak. Fungsinya utama adalah meningkatkan kualitas produk, menghemat biaya, meminimalkan risiko, dan memastikan keamanan data pengguna. Selain itu, pengujian juga berperan dalam validasi dan verifikasi agar perangkat lunak memenuhi harapan pengguna dan spesifikasi teknis yang telah ditentukan. Beberapa jenis pengujian yang umum dilakukan termasuk pengujian unit (Unit Testing), yang fokus pada komponen individu untuk memastikan fungsi yang tepat, dan pengujian fungsional (Functional Testing), yang memeriksa fitur-fitur perangkat lunak untuk memastikan mereka bekerja sesuai dengan spesifikasi yang diharapkan.

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

Framework Activities:
Framework activities adalah kerangka kerja yang menyediakan arahan umum dan pedoman untuk pengembangan perangkat lunak. Kerangka ini mencakup langkah-langkah dasar yang harus dilakukan dalam setiap proyek, seperti perencanaan awal, analisis kebutuhan, desain, implementasi, testing, dan deployment. Tujuan utama framework activities adalah memberikan kerangka kerja yang konsisten bagi tim pengembangan untuk menjaga kualitas dan ketepatan proyek.

Umbrella Activities:
Umbrella activities adalah aktivitas yang lebih luas yang terkait dengan manajemen proyek secara keseluruhan. Mereka melibatkan tahapan seperti definisi skop proyek, perencanaan timeline, alokasi sumber daya, monitoring progres, dan kontrol risiko. Umbrella activities memastikan bahwa semua elemen penting dalam manajemen proyek ditangani dengan efektif, sehingga proyek dapat diselesaikan dengan lancar tanpa gangguan besar.

Task Set:
Task set adalah koleksi aktivitas spesifik yang harus diselesaikan untuk menyelesaikan proyek perangkat lunak. Setiap task set dirancang untuk proyek-proyek yang berbeda dan memiliki tingkat kesulitan yang beragam. Misalnya, konsep pengembangan proyek melibatkan definisi skop proyek, perancangan awal, evaluasi teknologi, dan reaksi pelanggan. Task set harus cukup rigid untuk mencapai kualitas software yang tinggi tapi tidak memberatkan tim pengembangan dengan pekerjaan yang tidak perlu.

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

Manajemen konflik berperan penting dalam keberhasilan tim rekayasa perangkat lunak karena dapat meningkatkan produktivitas, kepuasan anggota tim, dan pencapaian tujuan proyek. Untuk menangani konflik, dua teknik yang efektif adalah mediasi dan negosiasi, di mana pihak-pihak yang berselisih difasilitasi untuk berdiskusi dan mencari solusi yang saling menguntungkan. Selain itu, komunikasi terbuka dan transparan sangat penting untuk menciptakan lingkungan di mana anggota tim merasa aman untuk mengekspresikan kekhawatiran mereka. Dengan menerapkan kedua teknik ini, tim dapat mengelola konflik secara konstruktif, sehingga mendukung kolaborasi yang lebih baik dan hasil proyek yang sukses.

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?

Perusahaan tersebut akan menghadapi tantangan terkait dengan sifat perangkat lunak yang terus berkembang, seperti skala dan kompleksitas sistem yang diperlukan serta perubahan kebutuhan pengguna yang cepat. Tanpa pengalaman dalam membangun aplikasi berskala besar, tim pengembang mungkin kesulitan merancang arsitektur yang fleksibel dan skalabel. Untuk mengatasi tantangan ini, tim harus mengadopsi metodologi pengembangan perangkat lunak yaitu agile development agar dapat beradaptasi dengan cepat terhadap perubahan dan melakukan iterasi berdasarkan umpan balik pengguna. 

Comments

Popular posts from this blog

Tugas Pertemuan 15 KPPL E

Tugas Pertemuan 11 KPPL E