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
Posting Komentar