Back to IF3250 Proyek Perangkat Lunak

UAS Semester II 2019/2020 — Pembahasan

Selasa, 5 Mei 2021 · Waktu 150 menit · Closed Book Format: PART 1 (Q-Word / isian & pilihan, 30 soal) + PART 2 (esai berbasis proyek, 6 soal)

PART 1 (Q-Word)

Jawaban kunci ditandai tebal.

1. Diagram UML yang cocok untuk membuat meta-model domain → Profile diagram. Profile diagram adalah mekanisme ekstensi UML (stereotype, tagged value, constraint) untuk mengadaptasi UML ke domain tertentu — karena itu cocok untuk meta-model/model domain. Bandingkan dengan Domain Model.

2. Pada MDA, mapping PIM ke PSM menggunakan format → XML, DTD, dan XSD. MDA: CIM → PIM (Platform Independent Model) → PSM (Platform Specific Model). Transformasi antar model direpresentasikan/dipertukarkan via format berbasis XML (DTD & XSD sebagai skema).

3. Ceremony pada Scrum → sprint planning, sprint retrospective, dan sprint review (+ daily scrum). Lihat Scrum Execution and Deliverable Management & Sprint Closure and Retrospective Practices.

4. Kegunaan platform pada SPLE → (a) membangun berbagai variasi produk, (b) menyediakan dasar teknologi seragam, (c) menurunkan cost. Ketiganya benar.

5. Pernyataan benar tentang ‘flexibility’ SPLE, KECUALI → “produk spesifik yang satu mampu diubah menjadi produk spesifik lainnya”. Flexibility/variability berarti core asset/platform cukup fleksibel diadaptasi ke berbagai produk spesifik — bukan mengubah satu produk jadi produk lain. Flexibility = variability dan tetap ada batasannya.

6. Kelebihan DSL, KECUALI → “Banyaknya dukungan IDE yang baik”. DSL justru lemah dukungan IDE/tooling. Kelebihan DSL: dibuat khusus untuk domain, ekspresif & mudah, sederhana → mudah dirawat & produktif, mudah dipakai domain expert.

7. Contoh DSL → HTML, SQL, R. Ketiganya bahasa khusus domain (markup, query, statistik).

8. BUKAN tugas Scrum Master → (a) membagi tugas ke anggota, (b) menentukan technology stack, (c) melakukan code review. Tim self-organizing (membagi tugas sendiri), tech stack keputusan tim, code review tugas developer. Tugas SM: fasilitasi ceremony, hilangkan impediment, coaching.

9. Fungsi Kanban Board → (a) menjamin kelancaran penyelesaian task, (b) mengetahui bottleneck. Kanban memvisualkan alur kerja (WIP) sehingga hambatan/penumpukan terlihat.

10. Artifak relevan untuk identifikasi & analisis kebutuhan PL → (a) Product Backlog, (b) Use Case, (d) Feature Model. Ketiganya menangkap kebutuhan. Product Arsitektur (c) adalah artefak desain/solusi, bukan kebutuhan.

11. Burndown chart Day 4 & 5 (effort tersisa naik) → (a) terjadi bug pada task yang sudah closed dan/atau (b) salah melakukan estimasi beban task. Garis remaining effort yang naik menandakan effort bertambah: task lama dibuka lagi karena bug, atau re-estimasi karena estimasi awal salah. “Task selesai” (c) justru menurunkan effort.

12. Software architecture → “It represents the earliest set of design decision”. Arsitektur = keputusan desain paling awal yang membatasi implementasi. Lihat Domain-Specific Software Architecture (DSSA).

13. Causes of variability → (a) different customer/market needs, (b) technical constraints of hardware/platform. Variability muncul dari kebutuhan pasar berbeda dan kendala teknis platform.

14. Diagram UML yang BUKAN behaviour diagram → Object Diagram. Object diagram = structure diagram. Behaviour: activity, state machine, use case + interaction.

15. Diagram UML yang BUKAN interaction diagram → Object diagram. Interaction diagram = sequence, communication, timing, interaction overview.

16. Model pada MDA → CIM, PIM, PSM. Computation Independent → Platform Independent → Platform Specific Model.

17. Kemajuan pekerjaan dipantau melalui → Kanban board, Burndown chart. Keduanya artefak monitoring progres. Lihat Scrum Monitoring Artifacts and Control Mechanisms.

18. BUKAN role pada Scrum → Team Leader. Role Scrum: Product Owner, Scrum Master, Development Team. Tidak ada “Team Leader”.

19. Yang dibahas pada Scrum daily meeting → Hambatan (impediment). Plus: apa yang sudah/akan dikerjakan. Bukan biaya/jadwal/alokasi orang.

20. Yang dibahas pada sprint retrospective → (a) apa yang dilanjutkan, (b) dihentikan, (c) mulai dilaksanakan (continue/stop/start).

21. Komponen DSSA, KECUALI → Reference model. Komponen DSSA: domain model, reference requirements, reference architecture, component library, application configuration method. “Reference model” bukan komponen.

22. Arsitektur dapat berperan sebagai berikut, KECUALI → Prototipe dari sistem. Peran arsitektur: alat komunikasi stakeholder, abstraksi sistem, manifestasi keputusan desain. Bukan prototipe.

23. Motivasi product line engineering → (a) peningkatan kualitas, (b) minimalkan time-to-market, (c) peningkatan akurasi estimasi biaya, (d) minimalkan effort perawatan. Semua benar.

24. Langkah menerapkan variability → Identifikasi variability subject → definisikan variability point → definisikan varian.

25. Kelebihan GPL, KECUALI → “Mudah digunakan oleh domain expert”. Itu kelebihan DSL. Kelebihan GPL: banyak programmer berpengalaman, dukungan IDE baik, berkembang lewat pustaka.

26. Tipe relasi feature pada feature modeling → (a) Optional, (b) OR, (c) Alternative (+ mandatory).

27. Relasi antar feature (cross-tree) → (a) Require, (b) Conflict/Exclude.

28. Yang termasuk metodologi agile → (a) Scrum, (b) Extreme Programming.

29. Tools pada GitLab untuk mendukung CI/CD → (a) Pipeline, (b) Runner.

30. Testing yang dapat dilakukan dengan GitLab → (a) Integration testing, (b) Unit testing.

PART 2 (Esai Berbasis Proyek)

Soal ini menilai proyek kelompok kamu sendiri, jadi jawaban harus spesifik + ada evidence (screenshot). Berikut kerangka & contoh jawaban model.

1. Sebutkan peran Anda dalam pengerjaan proyek (tabel Analyst/Designer, Programmer, Testing/QA, CI/CD Engineer). Isi persentase kontribusi per peran. Contoh: John Doe — Analyst/Designer 30%, Programmer 50%, Testing 10%, CI/CD 10%. Pastikan total tiap kolom = 100% antar anggota.

2. Sebutkan kontribusi dari masing-masing rekan Anda. Buat baris per anggota dengan persentase per peran, lalu narasikan singkat kontribusi konkret tiap orang (mis. “A: setup pipeline GitLab + integrasi testing”).

3. Perbaikan PENTING (Issue Management, Branching, Pembagian Tugas, Teknologi & Arsitektur) + evidence. Untuk tiap aspek, sebutkan satu perbaikan konkret + bukti:

  • Issue Management: mis. mulai memakai label & milestone di GitLab Issues agar prioritas jelas (screenshot board).
  • Branching: mis. pindah dari commit langsung ke main → adopsi feature branch + Merge Request review.
  • Pembagian Tugas: mis. estimasi story point saat planning agar beban merata.
  • Teknologi & Arsitektur: mis. pisahkan layer (controller/service/repository) agar testable.

4. Sebutkan perbaikan diri yang perlu Anda lakukan. Jawab reflektif & jujur: mis. “lebih disiplin menulis unit test sebelum push”, “komunikasi blocker lebih awal di daily”.

5. Arsitektur Perangkat Lunak: (a) gambar UML, (b) penjelasan singkat, (c) 2 kekurangan + usulan.

  • (a) Gambar component diagram/layered (Presentation → Business → Data) sesuai Domain-Specific Software Architecture (DSSA).
  • (b) Jelaskan tiap komponen & keterhubungannya.
  • (c) Contoh kekurangan: single point of failure di 1 service → usul: pisah service + load balancer; coupling tinggi → usul: terapkan interface/dependency injection.

6. Pilih satu product backlog; bagaimana tim menguji bahwa backlog itu berhasil diimplementasikan? (tujuan, prosedur, kasus uji, hasil). Struktur jawaban: Tujuan (mis. memastikan fitur login aman & benar) → Prosedur (unit test + integration test via pipeline, manual test sesuai acceptance criteria) → Kasus uji (tabel: input valid/invalid → expected output) → Hasil (pass/fail + screenshot pipeline hijau).


Tips Cara Menjawab (per soal)

PART 1 — strategi umum: Ini bank konsep yang berulang tiap tahun. Hafalkan pola “KECUALI” — pengecualian biasanya konsep yang tertukar antar topik (mis. kelebihan DSL ditukar dengan GPL).

  • Soal 1, 14, 15, 16, 20 (pkg lain): Kelompokkan UML jadi Structure (class, object, component, deployment, package, profile, composite) vs Behaviour (activity, state machine, use case) vs Interaction (sequence, communication, timing, interaction overview). Object diagram = structure → jawaban “bukan behaviour/bukan interaction”.
  • Soal 2 & 16 (MDA): Ingat rantai CIM → PIM → PSM dan format pertukaran XML/DTD/XSD.
  • Soal 3, 8, 18, 19, 20 (Scrum): Hafalkan 3 role (PO, SM, Dev Team — tidak ada Team Leader), ceremony (planning, daily, review, retrospective), artefak (product/sprint backlog, increment). SM = fasilitator, bukan bos.
  • Soal 4, 5, 23, 24 (SPLE/variability): Platform → variasi + tech seragam + turunkan cost. Variability steps: subject → point → varian. “Flexibility” KECUALI selalu kalimat “produk spesifik diubah jadi produk spesifik lain”.
  • Soal 6, 7, 25 (DSL vs GPL): Buat tabel mental: DSL = domain-specific, ekspresif, mudah utk domain expert, minim IDE; GPL = umum, banyak programmer & IDE, tidak ramah domain expert. Pengecualian = sifat yang “nyebrang”.
  • Soal 9, 11, 17 (monitoring): Kanban → bottleneck & kelancaran; Burndown naik → bug pada closed task / salah estimasi.
  • Soal 10 (artefak kebutuhan): Pisahkan artefak kebutuhan (backlog, use case, feature model) dari desain (arsitektur).
  • Soal 12, 21, 22 (arsitektur & DSSA): Arsitektur = keputusan desain paling awal + alat komunikasi + abstraksi (bukan prototipe). Komponen DSSA tidak termasuk “reference model”.
  • Soal 13, 23, 26, 27 (variability/feature & PLE): Causes of variability = kebutuhan pasar + kendala teknis. Relasi feature: mandatory/optional/OR/alternative + require/exclude.
  • Soal 28, 29, 30 (agile & GitLab): Agile = Scrum + XP. GitLab CI/CD = Pipeline + Runner; testing = unit + integration.

PART 2 — strategi umum: Jawaban wajib spesifik ke proyek + evidence. Pola aman: Situasi → Tindakan → Hasil/Bukti. Untuk soal arsitektur (5) selalu sertakan diagram + 2 kelemahan konkret + usulan. Untuk pengujian (6) gunakan urutan Tujuan → Prosedur → Kasus uji (tabel) → Hasil. Refleksi diri (3, 4) dinilai dari kejujuran & konkret, bukan jawaban “sempurna”.