Perancangan Perangkat Lunak

 

1. Mendefinisikan Perancangan Perangkat Lunak

1) Konsep Perancangan Perangkat Lunak
  • Definisi: Proses merancang struktur dan komponen perangkat lunak agar sistem yang dikembangkan sesuai kebutuhan dan dapat diimplementasikan dengan efisien.

  • Peran dalam SDLC: Tahap desain berada setelah analisis kebutuhan dan sebelum implementasi. Ini menjadi jembatan antara kebutuhan pengguna dan kode program.

  • Perbedaan Desain vs. Implementasi:

    • Desain: Berfokus pada "apa dan bagaimana" sistem akan bekerja.

    • Implementasi: Proses menulis kode nyata berdasarkan desain.

2) Pendekatan Perancangan
  • Top-down: Dimulai dari level tertinggi (abstraksi global) lalu dipecah menjadi komponen lebih kecil.

  • Bottom-up: Dimulai dari komponen dasar (modul) lalu dirangkai menjadi sistem utuh.

  • Object-Oriented Design (OOD): Fokus pada objek dan interaksinya.

  • Structured Design: Menggunakan aliran data dan kontrol (biasanya digunakan dalam sistem prosedural).

3) Dokumentasi Perancangan
  • SRS (Software Requirements Specification): Dokumen kebutuhan sistem dari pengguna.

  • SDD (Software Design Document): Dokumen rancangan teknis dari sistem, mencakup arsitektur, diagram, dan logika sistem.

2. Membedakan Tingkatan Perancangan Perangkat Lunak

1) Perancangan Arsitektural
  • Layered Architecture: Misalnya MVC (Model-View-Controller) dan 3-Tier (Presentation, Business, Data).

  • Monolithic vs. Microservices:

    • Monolithic: Sistem satu kesatuan.

    • Microservices: Modul independen dengan komunikasi API.

  • C4 Model:

    • Level 1: Context Diagram

    • Level 2: Container Diagram

    • Level 3: Component Diagram

    • Level 4: Code/Class Diagram

2) Perancangan Tingkat Menengah
  • Diagram Komponen dan Modul: Menggambarkan hubungan antar bagian sistem.

  • UML Package Diagram: Mengelompokkan kelas dalam modul/area fungsional.

  • SOA (Service-Oriented Architecture): Sistem terdiri dari layanan independen yang saling berinteraksi.

3) Perancangan Tingkat Rendah
  • Desain Algoritma dan Struktur Data: Menyusun logika dan struktur penyimpanan data.

  • Flowchart: Diagram alir untuk memvisualkan alur proses secara step-by-step.

  • Pseudocode: Deskripsi algoritma dalam bentuk penulisan mirip kode tetapi tidak spesifik bahasa.

3. Menjelaskan Prinsip Perancangan Perangkat Lunak

1) Modularitas & Reusability
  • DRY (Don’t Repeat Yourself): Hindari pengulangan logika yang sama.

  • KISS (Keep It Simple, Stupid): Desain yang sederhana lebih mudah dipahami dan dirawat.

2) Prinsip SOLID dalam OOP
  • S: Single Responsibility Principle

  • O: Open/Closed Principle

  • L: Liskov Substitution Principle

  • I: Interface Segregation Principle

  • D: Dependency Inversion Principle

3) Kohesi dan Coupling
  • High Cohesion: Modul fokus pada satu tugas spesifik.

  • Low Coupling: Modul bebas dari ketergantungan yang kuat.

  • Dependency Injection: Teknik untuk mengurangi coupling dengan menyuntikkan dependensi dari luar.

4. Memvisualisasikan Diagram untuk Perancangan Perangkat Lunak

1) Use Case Diagram
  • Notasi: Aktor, Use Case, hubungan Include dan Extend.

  • Studi Kasus: Sistem e-Commerce (pembeli, penjual, admin).

2) ERD (Entity Relationship Diagram)
  • Relasi: 1:1, 1:M, M:N

  • Normalisasi: Menghindari redudansi dan inkonsistensi data.

3) Class Diagram
  • Relasi: Association, Aggregation, Composition, Inheritance.

  • Studi Kasus: Sistem Manajemen Mahasiswa (kelas Mahasiswa, Dosen, Mata Kuliah).

4) Diagram Lainnya
  • Activity Diagram: Menampilkan alur proses atau workflow.

  • Sequence Diagram: Menampilkan interaksi objek dalam urutan waktu.

Komentar

Postingan populer dari blog ini

Konsep dan Definisi Perangkat Lunak dan Rekayasa Perangkat Lunak

Entity Relationship Diagram (ERD)

Data Flow Diagram (DFD)