ETS KPPL E_Alendra Rafif Athaillah_5025221297

Nama: Alendra Rafif Athaillah
NRP: 5025221297
Kelas: Konsep Pengembangan Perangkat Lunak - E

 SOAL:

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

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

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

4. Sebutkan dan jelaskan tiga komponen utama dari struktur proses perangkat lunak

Framework Activities, Umbrella Activities, Task Set

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

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:

1. Seiring dengan berkembangnya perangkat lunak, kompleksitasnya cenderung untuk bertambah. Hal ini bisa disebabkan oleh dua faktor berikut:

  • Penambahan Fitur: Pengembangan perangkat lunak cukup identik dengan penambahan fitur. Penambahan fitur dilakukan untuk memenuhi kebutuhan dari pengguna aplikasi yang terus berkembang. Penambahan fitur ini tentunya akan membuat sistem semakin rumit. Maka dari itu, perlu diperhatikan bahwa penambahan fitur hanya dilakukan ketika fitur itu sudah dibutuhkan.
  • Penambahan Jumlah pengguna: Seriring dengan bertambahnya jumlah pengguna yang menggunakan perangkat lunak tersebut, diperlukan juga penyesuaian skala perangkat lunak. Perubahan teknologi yang digunakan perlu diubah/disesuaikan dengan jumlah pengguna yang bertambah. Sebagai contoh mengganti/menyesuaikan database sehingga dapat menampung dan menghandle lebih banyak pengguna. Selain itu, bertambahnya pengguna juga membuka kemungkinan bahwa perangkat lunak harus bisa beroperasi pada platform dan perangkat lain. Perubahan-perubahan tersebut tentunya akan menambah kompleksitas perangkat lunak.

2. Software Reusability adalah kemampuan untuk menggunakan kembali komponen perangkat lunak  dalam aplikasi atau proyek lain tanpa memerlukan perubahan signifikan. Hal ini berarti kode, modul, fungsi, atau library  dapat digunakan dalam proyek lain. Reusability merupakan hal penting dalam pengembangan perangkat lunak modern karena  meningkatkan efisiensi dan mengurangi biaya.
 Dengan menggunakan kembali kode yang  ada, developer dapat mempercepat proses pengembangan, mengurangi kesalahan, dan memastikan konsistensi antar proyek.
 


3. Pengujian perangkat lunak memiliki peran penting dalam siklus hidup pengembangan perangkat lunak karena memastikan bahwa perangkat lunak berfungsi sesuai spesifikasi, bebas bugn, dan memenuhi persyaratan pengguna. Pengujian membantu mengidentifikasi masalah sejak dini, sehingga meningkatkan kualitas, keandalan, dan keamanan perangkat lunak. Pengujian yang tepat dapat meminimalkan risiko kegagalan setelah perangkat lunak dirilis.

Terdapat dua jenis testing: 

  • Pengujian Sistem: Pengujian ini memastikan bahwa perangkat lunak sudah bekerja sesuai dengan spesifikasi yang ditentukan. Pengujian ini mencakup aspek seperti input, output, dan kinerja sistem

  • Security Testing: Pengujian ini dilakukan untuk mengetest keamanan perangkat lunak. Fokusnya adalah untuk mencari celah yang kemungkinan dapat dieksploitasi dan menyebabkan perangkat lunak rusak atau tidak bekerja sesuai dengan fungsionalitasnya

4.  
Framework Activities:

Framework activities adalah aktivitas dasar dalam setiap proses pengembangan perangkat lunak, terlepas dari metodologi atau pendekatan yang digunakan. Kegiatan ini mencakup seluruh siklus hidup pengembangan perangkat lunak dan biasanya terdiri dari:

  • Communication 
  • Planning 
  • Modeling
  • Construction
  • Deployment 

Umbrella Activities:
Umbrella activities adalah aktivitas pendukung yang berjalan sepanjang proses pengembangan perangkat lunak untuk memastikan kualitas, efisiensi, dan manajemen risiko. Aktivitas ini meliputi:

  • Configuration Management
  • Software Quality Assurance 
  • Risk Management
  • Software Project Tracking and Control
  • Documentation 
Task Set:

Task set adalah kumpulan aktivitas spesifik yang dilakukan dalam framework activities dan disesuaikan dengan sifat proyek. Setiap task set terdiri dari tugas-tugas yang lebih terperinci yang diperlukan untuk menyelesaikan suatu aktivitas pengembangan tertentu. Contohnya:

  • Planning: Task set mencakup pembuatan jadwal proyek, perkiraan biaya, dan alokasi sumber daya.
  • Construction: Task set mencakup menulis kode, melakukan unit testing, atau melakukan debugging.
5. Pekerjaan Tim merupakan gabungan dari berbagai individu. Setiap individu memiliki pola pikir dan kemampuannya masing-masing. Namun, dari keberagaman ini seringkali muncul konflik yang disebabkan oleh perbedaan pendapat dan visi. Hal ini dapat menyebabkan konflik yang dapat merusak harmoni tim dan juga menghambat progres pekerjaan. Maka dari itu, diperlukanlah kemampuan manajemen konflik untuk menyelesaikan konflik yang terjadi pada sebuah tim. Untuk menyelesaikan konflik, terdapat dua teknik yang dapat digunakan:
  • Yang pertama adalah kolaborasi. Tujuannya adalah mempersatukan pemikiran antar pihak yang konflik. Caranya adalah untuk mengesampingkan perbedaan pendapat yang ada dan menyatukan kesamaan pendapat. Hal ini tentu mengorbankan ide masing-masing individu namun dapat menyelesaikan konflik.
  • Yang kedua adalah kompromi, tujuannya adalah untuk menemukan solusi yang dapat menguntungkan kedua belah pihak tanpa menyabotase/menolak pendapat salah satu dari kedua belah pihak sehingga solusi yang dihasilkan merupakan "win-win solution"

6.  Kendala yang mungkin akan dihadapi oleh tim tersebut adalah menyesuakan skalabilitas, kompleksitas, dan juga penambahan fitur. Dengan skala aplikasi e-commerce yang besar, diperlukan arsitektur yang dapat menangani penambahan beban yang besar, sistem keamanan yang tahan serangan, dan kinerja yang tetap stabil. Ditambah lagi dengan perkembangan teknologi yang sangat cepat mengharuskan tim tersebut untuk tetap mempelajari teknologi-teknologi baru sehingga mereka tetap familiar denga teknologi tersebut dan juga dapat mengembangkan aplikasi sesuai dengan perkembangan zaman. Untuk mempersiapkan diri, tim tersebut harus berfokus pada pengembangan aplikasi yang scalable, melakukan test performa dari awal, dan menerapkan continuous development. 


Comments

Popular posts from this blog

Tugas 12 KPPL E Alendra Rafif_5025221297

Tugas 6 KPPL E_Alendra Rafif Athaillah_5025221297

Tugas 7 KPPL E_Alendra Rafif_5025221297