Jurnal Perkuliahan | Pertemuan 12 Rekayasa Perangkat Lunak

DESIGN CONCEPT

Desain dilakukan agar kualitas dapat diukur dan dijamin jauh sebelum dilakukan implementasi fisik, sehingga resiko dan dampak dari resiko yang ditimbulkan akan menjadi seminimal mungkin.

Teknik desain Perangkat Lunak berbeda dengan teknik desain pada umumnya (desain bangunan, desain mikrokontroller, desain karya seni), karena Perangkat Lunak bersifat intangible (tidak nyata, tidak bisa diraba)Namun, telah dikembangkan berbagai macam metode yang dapat digunakan spesifik untuk keperluan desain Perangkat Lunak.


Konsep Desain Perangkat Lunak

Sebuah Perangkat Lunak harus didesain dengan mengejar faktor :

  • Firmness : Terhindar dari bugs dan error yang dapat mengganggu jalannya perangkat lunak.
  • Commodity : Sesuai dengan keperluan dan kebutuhan.
  • Delight : Nyaman digunakan oleh pengguna perangkat lunak.

4 Layer dalam desain Perangkat Lunak

    • Desain Data
    • Desain Arsitektur
    • Desain Antarmuka
    • Desain Komponen

Software Engineering : Design Engineeing- Component Level Design ( Part 2 )

1. Desain Data : Translasi ERD & Data Dictionary ke dalam konteks lingkungan implementasi.

2. Desain Arsitektur : Rancang bangun dari PL, relasi dan posisi antar bagian utama dari PL dengan memanfaatkan “design patterns”.

3. Desain Antarmuka : Merancang metode interaksi antar komponen PL dan terhadap pengguna.

4. Desain Komponen : Desain detail masing-masing prosedur di dalam komponen.

Mengukur Kualitas Desain Perangkat Lunak

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

Arsitektur Perangkat Lunak

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

Arsitektur Perangkat Lunak adalah penggambaran secara konseptual terhadap keseluruhan struktur dari Perangkat Lunak. Pada engineering yang tangible, arsitektur dapat dengan mudah dilakukan lewat penggambaran 2 dimensi maupun 3 dimensi. Lain halnya dengan Perangkat Lunak yang tidak memiliki wujud fisik.

Shaw dan Garlan menjelaskan properti yang seharusnya ditetapkan sebagai bagian dari desain arsitektural :

  • Properti struktural.
    Menentukan komponen suatu sistem dan cara dimana komponen-komponen tersebut dikemas dan berinteraksi dengan yang lain.
  • Properti ekstra-fungsional.
    Menekankan bagaimana desain arsitektur memenuhi persyaratan kinerja, kapasitas, reliabilitas, keamanan, adaptibilitas, dan karakteristik sistem yang lain.
  • Keluarga dari sistem yang berhubungan.
    Desain harus memiliki kemampuan untuk memakai lagi blok bangunan arsitektural tersebut.

Model yang dapat digunakan dalam representasi Arsitektur Perangkat Lunak :

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

Design Patterns

Design Patterns adalah pola-pola desain khusus yang dapat diguna-ulang untuk keperluan tertentu. Analoginya, jika ingin membangun jembatan layang, gunakan pattern cakar ayam untuk pondasinya. Tujuan utama design patterns adalah implementasi cara yang sudah teruji, dan memudahkan komunikasi.

Aspects

Sebuah aspect adalah fitur yang beririsan dengan fitur-fitur lainnya pada saat desain Perangkat Lunak. Misal :

    • Fitur A : Mahasiswa dapat membuka halaman kuliah virtual yang dia ikuti.
    • Fitur B : Dosen dapat membuka halaman kuliah virtual yang dia ampu.
    • Fitur C : Pengguna yang membuka halaman kuliah harus tervalidasi terdaftar pada Mata Kuliah tersebut.

C beririsan dengan A dan B (karena Mahasiswa dan Dosen harus terlebih dahulu tervalidasi sebelum dapat membuka halaman kuliah virtual), C adalah aspect dari desain PL tersebut.

Aspects harus diakomodir pada desain PL, sehingga dapat diimplementasikan pada fitur-fitur lain yang beririsan. Misalnya dengan membuat modul Session yang bertugas khusus melakukan autentikasi dan validasi untuk seluruh sistem.

Refactoring

Desain dilakukan secara iterative, 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 badly designed
    • Faktor lain yang dapat diperbaiki.

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

Sumber Referensi :

Roger Pressman, Edisi 7 Buku 1 Pendekatan Praktisi Edisi 7, Penerbit Andi Yogyakarta (Versi Indonesia)

Ian Sommerville, Edisi 6, Rekayasa Perangkat Lunak, Penerbit Erlangga (Versi Indonesia)

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

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>