EAS Konsep Pengembangan Perangkat Lunak

1. Dalam Pengembangan Perangkat Lunak ada fase Analisis dan Desain. 
   - Terangkan aktivitas yang dilakukan dalam fase Analisis dan Desain
   - Apa Output dari aktivitas tersebut untuk mendukung pengembangan perangkat lunak.

Fase Analisis:
  • Aktivitas:

    • Mengidentifikasi dan mendefinisikan kebutuhan pengguna dan sistem.
    • Menganalisis masalah yang ada dan merumuskan solusi perangkat lunak.
    • Melakukan riset pasar untuk mengidentifikasi kebutuhan pengguna yang belum terpenuhi.
    • Membuat dokumentasi terkait kebutuhan fungsional dan non-fungsional.
    • Melakukan wawancara, survei, dan diskusi dengan stakeholders (pengguna, pengelola, tim teknis).
  • Output:

    • Dokumen spesifikasi kebutuhan sistem (System Requirement Specification/SRS).
    • Model dan diagram alur data (DFD), diagram use case, dan flowchart.
    • Definisi persyaratan fungsional dan non-fungsional.

Fase Desain:

  • Aktivitas:
    • Merancang arsitektur sistem yang mencakup struktur data, komponen perangkat lunak, dan interface pengguna.
    • Mendesain model data dan alur proses yang akan digunakan dalam sistem.
    • Mengembangkan prototype awal untuk mendapatkan umpan balik pengguna.
    • Menyusun rencana pengujian awal berdasarkan desain.
  • Output:
    • Desain arsitektur sistem dan dokumentasi desain teknis.
    • Desain UI/UX.
    • Diagram kelas dan diagram komponen.
    • Desain database dan model alur sistem.

2. Dalam model Waterfall, setiap tahap memiliki fungsi spesifik. Jelaskan lima tahap utama dalam model ini, serta sebutkan kelebihan dan kekurangan dari model tersebut dalam konteks proyek besar yang memiliki persyaratan tetap.


  1. Requirement Analysis (Analisis Kebutuhan): Mengidentifikasi dan mendokumentasikan semua kebutuhan perangkat lunak dari pengguna dan sistem.
  2. System Design (Desain Sistem): Merancang arsitektur dan detail sistem berdasarkan kebutuhan yang telah dianalisis.
  3. Implementation (Implementasi): Mengembangkan dan memprogram perangkat lunak berdasarkan desain yang telah disetujui.
  4. Testing (Pengujian): Menguji perangkat lunak yang telah dibuat untuk memastikan bahwa semua fungsionalitas berfungsi sesuai dengan kebutuhan yang diidentifikasi.
  5. Maintenance (Pemeliharaan): Menyediakan dukungan setelah perangkat lunak diterapkan, termasuk perbaikan bug dan pembaruan.

Kelebihan Model Waterfall:

  • Keteraturan
  • Dokumentasi yang Lengkap
  • Cocok untuk proyek dengan kebutuhan tetap

Kekurangan Model Waterfall:

  • Kurang Fleksibel
  • Risiko dalam Pengujian
  • Tidak cocok untuk proyek besar yang kompleks


3. Jelaskan perbedaan antara architectural design dan detailed design. Mengapa kedua jenis desain tersebut diperlukan dalam proses pengembangan perangkat lunak?

Architectural Design:

Architectural Design merupakan desain tingkat tinggi yang mengidentifikasi komponen utama perangkat lunak, struktur sistem, dan cara interaksi antar komponen. Ini berfokus pada keputusan arsitektural, seperti pemilihan teknologi, platform, dan arsitektur perangkat lunak.
Tujuan: Menentukan struktur umum sistem, memastikan skalabilitas, keamanan, dan pemeliharaan.

Detailed Design:

Detailed Design merupakan desain rinci yang menjelaskan cara implementasi komponen arsitektural secara spesifik. Ini meliputi algoritma, struktur data, antarmuka antarkomponen, dan desain database.
Tujuan: Menyediakan rincian teknis yang dibutuhkan untuk implementasi dan pengkodean.

Mengapa Keduanya Diperlukan:

Architectural design diperlukan untuk memberikan gambaran besar sistem dan memastikan bahwa sistem dapat memenuhi persyaratan non-fungsional seperti performa dan keamanan, Sedangkan
Detailed design penting untuk memberikan instruksi yang jelas kepada pengembang perangkat lunak mengenai bagaimana setiap komponen harus diimplementasikan agar perangkat lunak berfungsi sesuai dengan harapan.


4. Studi Kasus
Sebuah perusahaan membutuhkan sistem e-commerce untuk menjual produk digital seperti foto, video, desain poster, ebook. Saat ini transaksi dihandle dengan WhatsApp. Namun seiring dengan perkembangan bisnis tools tersebut tidak mampu menangani lonjakan transaksi. Buatkan sistem / aplikasi yang mampu menangani lonjakan transaksi pada musim tertentu. Jelaskan pendekatan rekayasa perangkat lunak yang akan Anda gunakan untuk merancang, membangun, dan menguji sistem tersebut agar memenuhi kebutuhan klien. (Jawaban tertulis dan terangkan dalam video presentasi yang diupload di Youtube.)

  1. Analisis Kebutuhan:

    • Melakukan wawancara dengan pemangku kepentingan untuk memahami kebutuhan fungsional (misalnya, pembelian, pengunduhan) dan non-fungsional (misalnya, skalabilitas, ketersediaan) dari sistem.
    • Menyusun dokumentasi kebutuhan yang mencakup fitur-fitur seperti transaksi aman, integrasi pembayaran, dan pengelolaan konten digital.
  2. Desain Sistem:

    • Arsitektur: Menggunakan arsitektur berbasis mikroservis untuk menangani lonjakan transaksi dan memastikan skalabilitas. Setiap layanan seperti pengelolaan produk, pembayaran, dan pengunduhan dapat beroperasi secara terpisah.
    • Database: Mendesain sistem database yang dapat mendukung skala besar, misalnya dengan menggunakan NoSQL untuk menangani berbagai jenis produk digital.
    • UI/UX: Merancang antarmuka pengguna yang mudah digunakan dengan proses checkout yang cepat.
  3. Pengembangan dan Implementasi:

    • Mengembangkan sistem menggunakan teknologi yang dapat mendukung skalabilitas dan ketersediaan tinggi seperti Kubernetes untuk orkestrasi, serta server cloud (AWS, Google Cloud) untuk mengelola beban puncak.
    • Mengintegrasikan pembayaran digital menggunakan API pembayaran yang populer (misalnya, Stripe atau PayPal).
  4. Pengujian:

    • Melakukan pengujian beban untuk mensimulasikan lonjakan transaksi pada musim tertentu, dengan menggunakan alat seperti JMeter atau Apache Benchmark.
    • Melakukan pengujian fungsional untuk memastikan semua fitur bekerja dengan benar dan pengujian keamanan untuk melindungi transaksi dan data pengguna.
  5. Pemeliharaan dan Peningkatan:

    • Sistem harus memiliki mekanisme pemantauan untuk memastikan bahwa transaksi dapat dikelola dengan baik selama periode lonjakan.
    • Mengoptimalkan performa berdasarkan hasil pengujian dan umpan balik pengguna.

Pendekatan ini akan memastikan bahwa sistem dapat menangani volume transaksi yang tinggi selama musim tertentu dan memenuhi kebutuhan klien untuk mendukung bisnis yang berkembang.

Komentar

Postingan populer dari blog ini