Prinsip Desain Software
Perangkat lunak umumnya merupakan usaha untuk menyelesaikan permasalahan pada dunia nyata menggunakan komputer. Pengembangan perangkat lunak (software development) melalui serangkaian tahapan dimana masing-masing tahapan menghasilkan artifak atau luaran tertentu. Dimulai dari pemahaman masalah (requirement elicitation), analisis, desain, implementasi, dan diakhiri dengan pengujian. Selanjutnya, perangkat lunak ditempatkan (deploy) pada pelanggan dan dilakukan pemiliharaan terhadapnya.
Luaran dari tahap requirement elicitation menjadi masukan pada tahapan analisis. Bagian ini menjadi penting karena merupakan tahapan pemahaman terhadap domain masalah yang akan diselesaikan oleh perangkat lunak. Selanjutnya, luaran dari tahapan analisis digunakan pada tahap desain. Proses inipun tidak kalah pentingnya karena hasilnya digunakan sebagai acuan untuk membuat implementasi perangkat lunak.
Tahapan desain menerjemahkan kebutuhan perangkat lunak ke dalam model [1] yang dapat dipahami oleh pengembang perangkat lunak. Beberapa hal harus diperhatikan oleh desainer perangkat lunak supaya perangkat lunak yang dikembangkan dapat fleksibel dan komponen-komponen di dalamnya dapat digunakan ulang (reuseable). Pada tulisan ini, dipaparkan beberapa hal terkait dengan desain perangkat lunak yaitu prinsip-prinsip penting, proses desain, dan artifak-artifak yang dihasilkan dalam tahapan desain. Tulisan ini ditutup dengan beberapa tantangan-tantangan dalam desain perangkat lunak
Prinsip Desain
Prinsip-prinsip desain yang umum dapat menjadi pedoman bagi para perancang perangkat lunak dalam membentuk model desain. Pada Software Engineering Body of Knowledge (SWEBOK) prinsip perancangan perangkat lunak adalah abstraction, coupling & cohesion, decomposition & modularisation, encapsulation, separation of interface and implementation, sufficiency, completeness, & primitiveness serta separation of concern.
1. Abstraction
Abstraction (abstraksi) terkait dengan bagaimana berfokus dalam memandang objek dan mengambil hal yang penting dari objek tersebut. Tiga macam abstraksi yang dikenal adalah : abstraksi prosedur, data, dan kontrol (iterasi).
2. Coupling & Cohesion
Coupling merupakan ketergantungan antar modul sedangkan cohesion merupakan keterikatan antara elemen penyusun modul.
3. Decompositon & modularization
Prinsip ini menekankan pada penguraian (decompose) perangkat lunak yang ‘besar’ menjadi modul-modul atau elemen-elemen dimana masing-masing elemen memiliki fungsi dan tanggung jawab masing-masing.
4. Encapsulation
Prinsip encapsulation berarti detail dari sebuah abstraksi tidak diketahui atau tidak dapat diakses oleh entitas yang lain di luarnya.
5. Separation of interface and implementation
Dari sisi komponen perangkat lunak, prinsip ini berarti akses kepada sebuah komponen dari komponen yang lain melalui public interface yang telah didefinisikan pada komponen yang akan diakses tersebut.
6. Sufficiency, completeness & primitiveness
Sufficiency dan completeness berarti abstraksi yang dilakukan telah menangkap semua karakteristik yang diperlukan sedangkan primitiveness artinya desain dapat diimplementasikan.
7. Separation of concern
Prinsip ini terkait dengan arsitektur, dimana terdapat beberapa architectural view yang memudahkan stakeholder dalam mengelola kompleksitas perangkat lunak.
Dalam desain dilakukan beberapa kegiatan antara lain :
- Mendefinisikan tujuan desain.
- Mendefinisikan subsistem.
- Pemetaan subsistem ke dalam platform yang digunakan
- Pengelolaan persistent data.
- Mendefinisikan kendali akses.
- Mendefinisikan kendali aliran (control flow).
- Mendefinisikan boundary condition.
- Dalam desain dilakukan beberapa kegiatan antara lain :
- Mendefinisikan tujuan desain.
- Mendefinisikan subsistem.
- Pemetaan subsistem ke dalam platform yang digunakan
- Pengelolaan persistent data.
- Mendefinisikan kendali akses.
- Mendefinisikan kendali aliran (control flow).
- Mendefinisikan boundary condition.
Nama : Hanafi Satriyo Utomo
ReplyDeleteNRP : 5025211195
Kelas : PPL - A
Judul Referensi : Virtual Job Fair Information System Based on Augmented Reality and Virtual Reality
Link Tugas: Link Tugas
Nama: Akmal Sulthon Fathulloh
ReplyDeleteNRP: 5025211047
Kelas: PPL - A
Judul Referensi: Sistem Pengarsipan Surat Masuk dan Surat Keluar
Link Tugas: Tugas Pertemuan 2
This comment has been removed by the author.
ReplyDeleteNama : Cindi Dwi Pramudita
ReplyDeleteNRP : 5025201042
Kelas : PPL - A
Judul Reverensi : Perancangan Perangkat Lunak Borang Akreditasi Program Studi
Link Tugas : Link Tugas Pertemuan 2
Nama : Fathin Muhashibi Putra
ReplyDeleteNRP : 5025211229
Kelas : PPL - A
Judul Referensi : Deskripsi Perancangan Perangkat Lunak (DPPL) Sistem Informasi Akademik
Link Tugas : Tugas Pertemuan 2
Nama : Beauty Valen Fajri
ReplyDeleteNRP : 5025211227
Kelas : PPL - A
Judul Reverensi : Perancangan Perangkat Lunak E-Learning
Link Tugas: Tugas 1 PPL
Nama : Christian Kevin Emor
ReplyDeleteNRP : 5025211153
Kelas : PPL - A
Link Tugas : Tugas 1
Nama: Ken Anargya Alkausar
ReplyDeleteNRP: 5025211168
Kelas: PPL - A
Judul Referensi: Perancangan Perangkat Lunak Sistem Informasi Pendataan Guru dan Sekolah pada Dinas Pendidikan Kota Tangerang Selatan
Link Tugas: Tugas Pertemuan 2
Nama: Ferza Noveri
ReplyDeleteNRP: 5025211097
Kelas: PPL - A
Judul Referensi: Perancangan Perangkat Lunak Penerapan Metode Sistem Rekomendasi Hibrida Pada Sistem Pemandu Lokasi Wisata di Timor-Leste
Link Tugas: Tugas 1
Nama : Yusna Millaturrosyidah
ReplyDeleteNRP : 5025211254
Kelas : PPL - A
Judul Referensi : Deskripsi Perancangan Perangkat Lunak Sistem Informasi Praktikum Pada Jurusan Teknik Informatika Universitas Palangka Raya Berbasis Web
Link Tugas :Tugas 1
Nama : Tsabita Putri Ramadhany
ReplyDeleteNRP : 5025211130
Kelas : PPL - A
Judul Referensi : Sistem Online untuk Dokumen Perancangan Perangkat Lunak bagi Perusahaan atau Tim Pengembang
Link Tugas : Tugas 1
Nama : Gabriella Natasya Br Ginting
ReplyDeleteNRP : 5025211081
Kelas : PPL - A
Judul Refrensi: Dokumen Perancangan Perangkat Lunak Exam Management System (EMS)
Link Tugas: Tugas 1
Nama: Muhammad Naufal Arieffaza
ReplyDeleteNRP:05111840000126
Kelas:PPL-A
Judul Referensi :Penerapan Metode Sistem Rekomendasi
Hibrida Pada Sistem Pemandu Lokasi Wisata
DI Timor-Leste
Link Tugas: Tugas 1.
Nama: Al-Ferro Yudisthira Putra
ReplyDeleteNRP : 5025211176
Kelas : PPL-A
Judul Referensi : PEMBANGUNAN PERANGKAT LUNAK PENJUALAN ONLINE PRODUK HASIL PERTANIAN DAN INDUSTRI KABUPATEN KARANGNYAR DAN SEKITAR
Link Tugas : Tugas 1
Nama: Frederick Yonatan Susanto
ReplyDeleteNRP: 5025211121
Kelas: PPL - A
Judul Referensi: Implementasi Quick Response (QR) Code pada Aplikasi Validasi Dokumen Menggunakan Perancangan Unified Modelling Language (UML)
Link Tugas: Tugas 1 PPL
This comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteNama: Clarissa Luna Maheswari
ReplyDeleteNRP: 5025211003
Kelas: PPL- A
Referensi: A Mobile Application for Easy Design and Testing of Algorithms
to Monitor Physical Activity in the Workplace
Link Tugas: Tugas 1
Nama: M. Armand Giovani
ReplyDeleteNRP: 5025211054
Kelas : PPL A
Judul Referensi : E-Learning
Link Tugas : Tugas 1 PPL
Nama: Muhammad Razan Athallah
ReplyDeleteNRP: 5025211008
Kelas: PPL A
Referensi: PERANCANGAN APLIKASI PERANGKAT LUNAK PENGELOLAAN DATA BANK SAMPAH DI PT. INPOWER KARYA MANDIRI GARUT
Link Tugas: Tugas 1
Nama: I Gusti Ngurah Ervan Juli Ardana
ReplyDeleteNRP: 5025211205
Kelas: PPL- A
Referensi: SISTEM ONLINE UNTUK DOKUMEN PERANCANGAN
PERANGKAT LUNAK BAGI PERUSAHAAN ATAU
TIM PENGEMBANG
Link Tugas: Tugas 1
Nama: Muhammad Hafidh Rosyadi
ReplyDeleteNRP: 5025211013
Kelas: PPL A
Referensi: PERANCANGAN SISTEM INFORMASI KLINIK BERBASIS WEB
Link Tugas: TUGAS 1
Nama: Sekar Ambar Arum
ReplyDeleteNRP: 5025211041
Kelas: PPL-A
Referensi: Perancangan perangkat lunak pada aplikasi pelayanan dan pemesanan laundry
online berbasis android
Link Tugas: Tugas 1
Nama: Ananda Hadi Saputra
ReplyDeleteNRP: 5025201148
Kelas: PPL A
Referensi: Perancangan Perangkat Lunak untuk Menggambar Diagram Berbasis Android
Link Tugas: Tugas 1
This comment has been removed by the author.
ReplyDeleteNama: Arif Nugraha Santosa
ReplyDeleteNRP: 5025211048
Kelas: PPL A
Referensi: Perancangan Sistem Informasi Pengelolaan Dana Masjid Berbasis Web Menggunakan Unified Modeling Language (UML)
Link Tugas: Tugas 1 - Pertemuan 2
This comment has been removed by the author.
ReplyDeleteNama : Tigo S Yoga
ReplyDeleteNRP : 5025211125
Referensi : Referensi
Link Tugas : Tugas 1
This comment has been removed by the author.
ReplyDeleteNama : Timothy Hosia Budianto
ReplyDeleteNRP : 5025211098
Refrensi : Refrensi
Link Tugas : Tugas Pertemuan 2