JURNAL PERKULIAHAN-REKAYASA PERANGKAT LUNAK

KONSEP DESAIN PERANGKAT LUNAK

Desain adalah langkah pertama dalam fase pengembangan bagi setiap produkatau sistem yang direkayasa. Desain dapat didefinisikan sebagai proses aplikasi berbagai teknik dan pronsip bagi tujuan pendefinisian suatu perangkat, suatu proses atau sistem dalam detail yang memadai untuk memungkinkan realisasi fisiknya.

Desain Perangkat Lunak dan Rekayasa Perangkat Lunak

Desain perangkat lunak berada pada inti teknik dari proses rekayasa perangkat lunak dan diaplikasikan tanpa memperhatikan model proses perangkat lunak yang digunakan. Begitu persyaratan perangkat lunak telah mulai dianalisis dan ditentukan, maka desain perangkat lunak menjadi yang pertama dari tiga aktivitas teknik – desain, pembuatan kode dan pengujian – yang diperlukan untuk membangun dan menguji perangkat lunak.

pada dasarnya desain perangkat lunak memiliki prinsip atau aktivitas sebagai berikut
  1. Desain Data (Data Design)Desain data merupakan suatu aktivitas pertama dan juga yang terpenting dari empat aktivitas desain yang dilakukan selama rekayasa perangkat lunak. Proses dalam pemilihan struktur didalam menentukan desain yang paling efisien dan juga yang sesuai kebutuhan.
    Desain data mentransformasikan model domain suatu informasi yang dibuat selama analisis ke dalam struktur data yang akan diperlukan untuk dapat menngimplementasikan perangkat lunak .
  2. Desain Arsitektur (Architectural Design)
    Pada desain arsitektur ini menentukan suatu hubungan diantara elemen-elemen struktur utama dan program.
  3. Desain Antar Muka (Interface Design)
    pada desain interface menggambarkan bagaimana PL berinteraksi dengan sistem yang berinteroperasi dengan desain interface tersebut serta pengguna yang menggunakannya.
  4. Desain Prosedural (Procedural Design)
    mentransformasikan elemen-elemen struktural dari desai arsitektur progrma ke dalam sebuah deskripsi prosedural dari komponen-komponen 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 sebagai berikut:

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.

Konsep Desain Perangkat Lunak

Sebuah Perangkat Lunak harus didesain dengan mengejar faktor :

  • Ketegasan : Terhindar dari bug dan error yang dapat mengganggu PL.
  • Komoditas : Sesuai dengan keperluan dan kebutuhan.
  • Delight : Nyaman digunakan oleh pengguna PL.

4 Layer dalam desain Perangkat Lunak :

 

  • Desain Data

Terjemahan ERD & Data Dictionary ke dalam konteks lingkungan implementasi.

  • Desain Arsitektur

Rancang bangun dari PL, relasi dan posisi antar bagian utama dari PL dengan memanfaatkan “design pattern”.

  • Desain Antarmuka

Rancang bangun dari PL, relasi dan posisi antar bagian utama dari PL dengan memanfaatkan “design pattern”.

  • Desain Komponen

Desain detail masing-masing prosedur di dalam komponen.

Mengukur Kualitas Desain Perangkat Lunak

  1. Desain PL memiliki arsitektur yang :
  • Dibuat berdasarkan template dan design patterns yang telah teruji.
  • Berisi komponen yang memiliki karakteristik desain yang baik.
  • Dapat diimplementasikan secara bertahap.
  1. Desain PL bersifat modular
  2. Desain PL berisi representasi yang jelas dari data, arsitektur, antarmuka, komponen
  3. Desain PL memiliki struktur data yang pantas untuk setiap kelas
  4. Desain PL memiliki komponen yang functionally independent
  5. Desain PL memiliki antarmuka yang simpel
  6. Desain PL dilakukan dengan metode yang jelas dan telah terbukti
  7. Desain PL menggunakan representasi yang dapat dimengerti bersama

Tujuan Akhir Desain Perangkat Lunak

  1. Desain PL harus mengimplementasikan semua spesifikasi kebutuhan tertulis, dan juga memenuhi harapan tak tertulis dari pengguna.
  2. Desain PL harus terdokumentasi dan mudah dibaca serta dipahami oleh yang berkepentingan.
  3. Desain PL harus dapat digambarkan secara keseluruhan dari PL.

Konsep Utama Desain Perangkat Lunak

Separation of Concerns adalah pola pikit dasar yang harus dimiliki oleh semua Software Engineer dalam membangun Perangkat Lunak.

Konsep Desain OO

1. Abstraksi

Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih menekankan detail pada tingkat yang lebih rendah.

Terdapat 3 macam bentuk abstraksi, yaitu :
a. Abstraksi prosedural.
Berikut urutan instruksi yang diberi nama yang memiliki fungsi tertentu dan terbatas.
b. Abstraksi data.
Kumpulan data yang bernama yang menggambarkan obyek data.
c. Abstraksi kontrol.
Mengimplikasikan suatu mekanisme kontrol program tanpa menentukan detail-detail internal

  1. Modularitas

Modularitas merupakan atribut tunggal dari perangkat lunak yang memungkinkan sebuah program untuk dikelola secara intelektual.
Meyer 5 Kriteria yang memungkinkan kita untuk menemukan suatu metode desain dengan Merujuk pada kemampuan untuk menentukan sistem modular yang.
sebuah. Dekomposisi modular.
b. Komposabilitas modular.
c. Kemampuan pemahaman modular.
d. Kontinuitas modular.
e. Proteksi modular.

  1. Penyembunyian informasi
    Prinsip penyembunyian informasi menyatakan bahwa modul ditandai dengan keputusan desain tersembunyi dari semua desain lain.

Kelas Desain

  • Kelas yang ada pada tahap desain dapat dibedakan menjadi :
  • Kelas Analisis : Yaitu kelas hasil turunan dari tahap analisis, dengan melakukan modifikasi dan adaptasi terhadap lingkungan implementasi. Misal : kelas Mahasiswa, pada tahap desain ditambahkan fungsi getSummary() untuk mendapatkan rangkuman identitas yang akan ditampilkan pada dashboard.
  • Kelas Batas : Yaitu kelas yang terlibat dalam pembangunan antarmuka PL. Misal : bentuk kelas-kelas, dsb.
  • Kelas Controller : Yaitu kelas yang dibuat untuk mengatur PL. Misal : kelas Main, kelas SessionController, dsb

Arsitektur perangkat lunak

Arsitektur perangkat lunak mencakup “struktur keseluruhan perangkat lunak dan cara dimana struktur memberikan integrasi konseptual suatu sistem”.

Shaw dan Garlan menjelaskan properti yang seharusnya ditetapkan sebagai bagian dari desain arsitektural :
a. Properti struktural.
Menentukan komponen suatu sistem dan cara dimana komponen-komponen tersebut dikemas dan berinteraksi dengan yang lain.
b. Properti ekstra-fungsional.
Menekankan bagaimana desain arsitektur memenuhi persyaratan kinerja, kapasitas, reliabilitas, keamanan, adaptibilitas, dan karakteristik sistem yang lain.
c. Keluarga dari sistem yang berhubungan.
Desain harus memiliki kemampuan untuk memakai lagi blok bangunan arsitektural tersebut.

Model yang dapat digunakan dalam representasi Arsitektur PL :

  • Model Struktural : Komponen-komponen apa saja yang ada pada PL.
  • Framework Models : Kerangka & pola apa yang digunakan.
  • Dynamic Models : Bagaimana PL bereaksi pada setiap use case.
  • Model Proses : Proses teknis dari berjalannya PL.
  • Model Fungsional : Hirarki secara fungsional dari komponen PL.

-Aspek

Sebuah aspek adalah fitur yang beririsan dengan fitur-fitur lainnya pada saat desain PL.

-Perbaikan

Refinement membantu designer untuk detil detil dari level terendah dari abstraction. Abstraksi dan penyempurnaan merupakan konsep yang saling melengkapi.

-Pemfaktoran ulang

Desain dilakukan secara iteratif, berulang-ulang. Pada setiap iterasi, dilakukan refactoring yaitu optimasi dengan menghilangkan / memperbaiki :

  • Redundansi
  • Elemen desain tak terpakai
  • Algoritma yang tidak efisien / tidak perlu
  • Struktur Data yang dirancang dengan buruk
  • Faktor lain yang dapat diperbaiki.

Prinsip terpenting dalam refactoring : perubahan yang dilakukan tidak boleh mempengaruhi berjalannya sistem secara keseluruhan.


SUMBER REFERENSI

https://rplhlw117a04.wordpress.com/2015/11/16/konsep-desain/

http://eprints.undip.ac.id/52811/1/Book_Chapter_-_Software_Design.pdf

https://ilmurplkitabersama.blogspot.com/2020/05/desain-perangkat-lunak.html

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>