ETS Konsep Pengembangan Perangkat Lunak
1. Mengapa perangkat lunak cenderung menjadi lebih kompleks seiring dengan perkembangannya? Jelaskan dua faktor utama yang menyebabkannya.
- Pertambahan Fitur: Seiring waktu, pengguna menginginkan lebih banyak fitur serta fungsi fungsi yang dapat memenuhi kebutuhan baru. Penambahan fitur ini sering menyebabkan kode menjadi lebih besar dan lebih rumit.
- Pengelolaan Ketergantungan: Perangkat lunak modern sering kali dibangun di atas berbagai pustaka dan modul eksternal. Saat salah satu komponen ini diperbarui, pengembang perlu menyesuaikan perangkat lunak mereka, yang menambah kompleksitas dalam memastikan kompatibilitas dan stabilitas sistem.
2. Apa yang dimaksud dengan software reusability, dan mengapa hal ini penting dalam pengembangan perangkat lunak modern?
Software Reusability adalah konsep penggunaan kembali kode atau komponen perangkat lunak yang sudah ada sebelumnya dalam pengembangan proyek baru.
Hal ini penting karena:
- Menghemat waktu dan biaya: Dengan menggunakan komponen yang sudah ada, pengembang dapat mempercepat proses pembangunan tanpa harus menulis ulang dari awal.
- Mengurangi risiko kesalahan: Kode telah diuji dan digunakan dalam aplikasi sebelumnya, sehingga meminimalkan bug dalam pengembangan perangkat lunak baru.
3. Apa peran pengujian perangkat lunak (software testing) dalam siklus hidup pengembangan perangkat lunak, dan sebutkan dua jenis pengujian yang umum dilakukan.
Peran pengujian perangkat lunak adalah untuk memastikan bahwa perangkat lunak berjalan sesuai dengan spesifikasi yang diinginkan dan bebas dari bug. Pengujian juga membantu meningkatkan kualitas perangkat lunak dengan mengidentifikasi masalah sebelum perangkat lunak diluncurkan ke pengguna.
Dua jenis pengujian yang umum dilakukan:
- Pengujian Unit (Unit Testing): Menguji setiap unit atau komponen perangkat lunak untuk memastikan bahwa bagian terkecil dari perangkat lunak bekerja dengan baik.
- Pengujian Fungsional (Functional Testing): Memastikan bahwa fungsi utama dari perangkat lunak berjalan sesuai dengan persyaratan yang telah ditetapkan.
4. Sebutkan dan jelaskan tiga komponen utama dari struktur proses perangkat lunak Framework Activities, Umbrella Activities, Task Set
- Framework Activities : Ini adalah aktivitas inti yang selalu ada dalam setiap proses pengembangan perangkat lunak, seperti komunikasi dengan klien, perencanaan, analisis kebutuhan, desain, implementasi, dan pengujian.
- Umbrella Activities : Ini adalah aktivitas pendukung yang mencakup seluruh proses pengembangan, seperti manajemen konfigurasi, pengendalian kualitas, penjaminan mutu, dan dokumentasi.
- Task Set : Sekumpulan tugas atau pekerjaan yang harus diselesaikan untuk mencapai tujuan pada setiap fase proses pengembangan. Task set diambil dari framework activities, dan dapat berbeda tergantung pada proyek dan metodologi yang digunakan.
5. Bagaimana manajemen konflik dapat berperan dalam keberhasilan tim rekayasa perangkat lunak, dan sebutkan dua teknik untuk menangani konflik dalam tim pengembangan?
Manajemen konflik sangat penting karena tim yang bekerja sama sering kali menghadapi perbedaan pendapat atau visi tentang bagaimana suatu masalah harus diselesaikan. Jika tidak dikelola dengan baik, konflik dapat menghambat kemajuan tim. Manajemen konflik yang efektif membantu menjaga kerjasama dan produktivitas tim.
Dua teknik untuk menangani konflik:
- Negosiasi : Melibatkan komunikasi terbuka di antara pihak-pihak yang berselisih untuk mencapai kesepakatan yang saling menguntungkan.
- Mediasi : Seorang mediator netral membantu mengarahkan diskusi dan menemukan 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?
Tantangan yang dihadapi startup ini adalah kebutuhan untuk merancang aplikasi yang dapat berkembang seiring dengan bertambahnya jumlah pengguna. Skalabilitas, performa, keamanan, dan kemampuan untuk beradaptasi dengan teknologi yang terus berkembang adalah tantangan besar bagi tim yang belum pernah membangun aplikasi berskala besar.
Persiapan untuk menghadapi tantangan :
- Mengadopsi arsitektur yang skalabel, seperti microservices, yang memungkinkan aplikasi untuk tumbuh dan menyesuaikan diri dengan beban pengguna yang semakin meningkat.
- Penggunaan cloud infrastructure yang dapat diskalakan sesuai kebutuhan dan memungkinkan tim untuk menangani lonjakan pengguna tanpa penurunan performa.
- Memprioritaskan otomatisasi pengujian dan proses deployment* untuk mengurangi kesalahan dan meningkatkan efisiensi.
- Mengadopsi prinsip-prinsip DevOps untuk memadukan pengembangan dan operasi dalam satu siklus yang terintegrasi, memastikan pengiriman yang cepat dan reliabel.
Komentar
Posting Komentar