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 :

  1. Mendefinisikan tujuan desain.
  2. Mendefinisikan subsistem.
  3. Pemetaan subsistem ke dalam platform yang digunakan
  4. Pengelolaan persistent data.
  5. Mendefinisikan kendali akses.
  6. Mendefinisikan kendali aliran (control flow).
  7. Mendefinisikan boundary condition.
  8. Dalam desain dilakukan beberapa kegiatan antara lain :
  9. Mendefinisikan tujuan desain.
  10. Mendefinisikan subsistem.
  11. Pemetaan subsistem ke dalam platform yang digunakan
  12. Pengelolaan persistent data.
  13. Mendefinisikan kendali akses.
  14. Mendefinisikan kendali aliran (control flow).
  15. Mendefinisikan boundary condition.

Desain Arsitektur


Desain Interface


Desain Data


Desain Algoritma



Link 


Comments

  1. Nama : Hanafi Satriyo Utomo
    NRP : 5025211195
    Kelas : PPL - A

    Judul Referensi : Virtual Job Fair Information System Based on Augmented Reality and Virtual Reality
    Link Tugas: Link Tugas

    ReplyDelete
  2. Nama: Akmal Sulthon Fathulloh
    NRP: 5025211047
    Kelas: PPL - A

    Judul Referensi: Sistem Pengarsipan Surat Masuk dan Surat Keluar
    Link Tugas: Tugas Pertemuan 2

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Nama : Cindi Dwi Pramudita
    NRP : 5025201042
    Kelas : PPL - A

    Judul Reverensi : Perancangan Perangkat Lunak Borang Akreditasi Program Studi
    Link Tugas : Link Tugas Pertemuan 2

    ReplyDelete
  5. Nama : Beauty Valen Fajri
    NRP : 5025211227
    Kelas : PPL - A

    Judul Reverensi : Perancangan Perangkat Lunak E-Learning
    Link Tugas: Tugas 1 PPL

    ReplyDelete
  6. Nama : Christian Kevin Emor
    NRP : 5025211153
    Kelas : PPL - A

    Link Tugas : Tugas 1

    ReplyDelete
  7. Nama: Ken Anargya Alkausar
    NRP: 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

    ReplyDelete
  8. Nama: Ferza Noveri
    NRP: 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

    ReplyDelete
  9. Nama : Yusna Millaturrosyidah
    NRP : 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

    ReplyDelete
  10. Nama : Gabriella Natasya Br Ginting
    NRP : 5025211081
    Kelas : PPL - A
    Judul Refrensi: Dokumen Perancangan Perangkat Lunak Exam Management System (EMS)
    Link Tugas: Tugas 1

    ReplyDelete
  11. Nama: Muhammad Naufal Arieffaza
    NRP:05111840000126
    Kelas:PPL-A
    Judul Referensi :Penerapan Metode Sistem Rekomendasi
    Hibrida Pada Sistem Pemandu Lokasi Wisata
    DI Timor-Leste
    Link Tugas: Tugas 1.

    ReplyDelete
  12. Nama: Al-Ferro Yudisthira Putra
    NRP : 5025211176
    Kelas : PPL-A
    Judul Referensi : PEMBANGUNAN PERANGKAT LUNAK PENJUALAN ONLINE PRODUK HASIL PERTANIAN DAN INDUSTRI KABUPATEN KARANGNYAR DAN SEKITAR
    Link Tugas : Tugas 1

    ReplyDelete
  13. This comment has been removed by the author.

    ReplyDelete
  14. This comment has been removed by the author.

    ReplyDelete
  15. Nama: M. Armand Giovani
    NRP: 5025211054
    Kelas : PPL A

    Judul Referensi : E-Learning
    Link Tugas : Tugas 1 PPL

    ReplyDelete
  16. Nama: Muhammad Hafidh Rosyadi
    NRP: 5025211013
    Kelas: PPL A
    Referensi: PERANCANGAN SISTEM INFORMASI KLINIK BERBASIS WEB
    Link Tugas: TUGAS 1

    ReplyDelete
  17. Nama: Sekar Ambar Arum
    NRP: 5025211041
    Kelas: PPL-A
    Referensi: Perancangan perangkat lunak pada aplikasi pelayanan dan pemesanan laundry
    online berbasis android
    Link Tugas: Tugas 1

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. This comment has been removed by the author.

    ReplyDelete
  20. Nama : Tigo S Yoga
    NRP : 5025211125
    Referensi : Referensi
    Link Tugas : Tugas 1

    ReplyDelete
  21. This comment has been removed by the author.

    ReplyDelete
  22. Nama : Timothy Hosia Budianto
    NRP : 5025211098
    Refrensi : Refrensi
    Link Tugas : Tugas Pertemuan 2

    ReplyDelete

Post a Comment

Popular posts from this blog

High Level Design

Studi kasus 1 - Desain Sistem Restauran