Lompat ke konten Lompat ke sidebar Lompat ke footer

Prinsip Desain Perangkat Lunak dan Rekayasa Perangkat Lunak

Prinsip Desain Perangkat Lunak dan Rekayasa Perangkat Lunak - Artikel ini membahas mengenai pembuatan desain perangkat lunak dan merekayasakannya, mengenal prinsip desain besarta konsepnya. Melalui artikel ini diharapkan dapat mendisain perangkat lunak dengan cara merekayasakan disesuaikan dengan konsep.

Pada artikel ini perancangan desain yang akan dibahas merupakan perancangan terstruktur lanjutan tahapan analisa terstruktur. Perancangan perangkat lunak merupakan inti teknik dari proses rekayasa perangkat lunak dan merupakan aktivitas pertama dari tiga aktivitas teknik perancangan, pembuatan kode, dan pengujian yang diperlukan untuk membangun dan menguji perangkat lunak.

Desain Perangkat Lunak

PENGERTIAN

Perancangan perangkat lunak dapat didefinisikan sebagai
  • Proses untuk mendefinisikan suatu model atau rancangan perangkat lunak dengan menggunakan teknik dan prinsip tertentu sedemikian hingga model atau rancangan tersebut dapat diwujudkan menjadi perangkat lunak.
  • Proses mendefinisikan arsitektur perangkat lunak, komponen, modul, antarmuka, pendekatan pengujian, serta data untuk memenuhi kebutuhan yang sudah ditentukan sebelumnya. [IEE98]
  • Proses bertahap dimana semua kebutuhan yang ada diterjemahkan menjadi suatu cetak biru yang akan digunakan untuk mengkonstruksi perangkat lunak. [PRE01]

Prinsip Desain Perangkat Lunak dan Rekayasa Perangkat Lunak_
image source: blog.aftercollege.com
baca juga: Pemodelan Data dalam rekayasa perangkat lunak

Tujuan dilakukannya perancangan oleh seorang designer system (software engineer) adalah
  • Mendekomposisi sistem (perangkat lunak) menjadi komponen-komponennya (data, antarmuka, prosedur, arsitektur). Sebagai gambaran, pada gambar 5.1 menunjukkan dekomposisi perangkat lunak menjadi halaman web (antarmuka), script (prosedur) dan basisdata/tabel data (desain data).
  • Menentukan relasi antar komponen.
  • Menentukan mekanisme komunikasi antar komponen.Sebagai gambaran, pada gambar 5.2 yang menunjukkan mekanisme dan relasi antar komponen perangkat lunak yaitu relasi antarmuka pemakai ke prosedur/script untuk meminta sebuah data yang diinginkan pengguna serta bagaimana sebuah prosedur mengakses tabel data agar dapat ditampilkan sesuai dengan permintaan pemakai pada antarmuka pemakai.
  • Menentukan antarmuka komponen.
  • Menjelaskan fungsionalitas masing-masing komponen.

Gambar 1 Dekomposisi perangkat lunak menjadi komponen-komponennya_
Gambar 1 Dekomposisi perangkat lunak menjadi komponen-komponennya
Gambar 2 Mekanisme dan relasi antar komponen perangkat lunak_
Gambar 2 Mekanisme dan relasi antar komponen perangkat lunak



Prinsip Perancangan

Perancangan perangkat lunak merupakan model dan proses. Proses perancangan merupakan serangkaian langkah yang memungkinkan seorang desainer menggambarkan semua aspek perangkat lunak yang dibangun, sedangkan model perancangan hampir sama dengan rencana arsitek untuk sebuah rumah yaitu memulai dengan menyajikan totalitas hal yang akan dibangun (misal pandangan 3 dimensi dari rumah yang akan dibangun, setelah itu akan disaring hal-hal yang memberikan panduan bagi pembangunan setiap detail dari rumah, seperti layout ruangan, layout pipa dan lainnya). Sama halnya dengan model perancangan yang dibuat untuk perangkat lunak memberikan berbagai pandangan yang berbeda terhadap program komputer.

Ada beberapa prinsip yang dikemukakan oleh Davis [DAV95] yang perlu diketahui oleh desainer untuk dapat mengendalikan proses perancangan, yaitu
  • Perancangan harus dapat ditelusuri sampai ke model analisis.
  • Perancangan tidak boleh berulang, maksudnya dapat mengunakan kembali rancangan yang sudah ada sebelumnya (reusable component).
  • Perancangan dapat diperbaiki atau diubah tanpa merusak keseluruhan sistem.
  • Perancangan harus dinilai kualitasnya pada saat perancangan, bukan setelah sistem jadi dengan kata lain siap diimplementasikan.
  • Perancangan harus mempunyai beberapa pendekatan alternatif rancangan.
  • Perancangan harus mengungkap keseragaman dan integrasi
  • Perancangan harus meminimalkan kesenjangan intektual antara perangkat lunak dan masalah yang ada didunia nyata. Maksudnya perancangan perangkat lunak harus mencerminkan struktur domain permasalahan.
  • Perancangan bukanlah pengkodean dan pengkodean bukanlah perancangan.
  • Perancangan harus dikaji untuk meminimalkan kesalahan-kesalahan konseptual. Desainer harus menekankan pada hal-hal yang penting seperti elemen-elemen konseptual (ambiguitas, inkonsisten).

Jika prinsip perancangan diatas diaplikasikan dengan baik, maka desainer telah mampu menciptakan sebuah perancangan yang mengungkapkan faktor-faktor kualitas eksternal dan internal[MEY88].

Faktor-faktor eksternal adalah sifat-sifat perangkat lunak yang dapat diamati oleh pemakai (misal kecepatan, reliabilitas, ketepatan, usabilitas). Sedangkan faktor internal lebih membawa pada perancangan berkualitas tinggi dan perspektif teknis dari perangkat lunak yang sangat penting bagi para perekayasa perangkat lunak. Untuk mencapai kulitas faktor internal, seorang desainer harus memahami konsep-konsep dari perancangan perangkat lunak.

Konsep Perancangan

Pada dasarnya konsep perancangan memberikan kerangka kerja atau pedoman untuk mendapatkan perangkat lunak yang bisa berjalan dengan baik. Ada beberapa konsep perancangan yang dikemukakan oleh Pressman [PRE01] dan perlu dipahami oleh seorang desainer agar mendapatkan perancangan yang berkualitas tinggi yaitu


1. Abstraksi
Abstraksi merupakan cara untuk mengatur kompleksitas sistem dengan menekankan karakteristik yang penting dan menyembunyikan detail dari implementasi. Tiga mekanisme dasar dari abstraksi yaitu :
  1. Abstraksi Prosedural, urutan instruksi yang mempunyai sebuah nama yang menggambrakan fungsi tertentu
  2. Abstraksi Data, kumpulan data yang mempunya nama yang menggambarkan objek data.
  3. Abstraksi Control, mengimplikasikan sebuah mekanisme kontrol dari program.


2. Dekomposisi
Dekomposisi merupakan mekanisme untuk merepresentasikan detail-detail dari fungsionalitas. Dengan adanya dekomposisi membantu para desainer mengungkapkan detail tingkat rendah ketika perancangan sedang berjalan. Jadi dekomposisi membagi perancangan secara top-down/menyaring
tingkat detail dari prosedural.


3. Modularitas
Mekanisme membagi perangkat lunak ke dalam elemen-elemen kecil dan dapat dipanggil secara terpisah, biasanya elemen ini sering disebut dengan modul.

Modularitas merupakan karakteristik penting dalam perancangan yang baik karena
  1. Menyediakan pemisahaan fungsionalitas yang ada pada perangkat lunak.
  2. Memungkinkan pengembang mengurangi kompleksitas dari sistem.
  3. Meningkatkan skalabilitas, sehingga perangkat lunak dapat dikembangkan oleh banyak personal.

Modularitas perangkat lunak ditentukan oleh coupling dan cohesion:
  1. Coupling: derajat ketergantungan antar modul yang berinteraksi.
  2. Cohesion: derajat kekuatan fungsional dalam suatu modul
Modul yang baik harus mempunyai chesion yang tinggi dan coupling yang rendah.

Faktor-faktor yang mempengaruhi coupling:
  1. Banyaknya data yang dilewatkan antar modul (passing parameter)
  2. Banyaknya kontrol data yang dilewatkan antar modul.
  3. Banyaknya data global yang digunakan bersama oleh beberapa modul.


4. Arsitektur Perangkat Lunak
Arsitektur perangkat lunak merupakan struktur hirarki dari komponen program (modul), cara bagaimana komponen tersebut berinteraksi dan struktur data yang digunakan oleh komponen.


5. Hirarki Kontrol
Hirarki kontrol disebut juga dengan struktur program, yang merepresentasikan oraganisasi (hirarki) komponen program (modul) serta mengimplikasikan suatu hirarki kontrol. Hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian/urutan keputusan, atau pengulangan operasi.

Modul Makalah | Hirarki kontrol juga merepresentasikan dua karakteristik yang berbeda dari arsitektur peragkat lunak yaitu visibilitas dan konektivitas. Visibilitas menunjukkan serangkaian komponen program yang dapat diminta dan dipakai sebagai data oleh komponen yang diberikan dan dilakukan secara tidak langsung. Sedangkan konektivitas mengindikasikan serangkaian komponen program yang diminta secara tidak langsung atau digunakan data oleh sebuah modul yang ditetapkan.


6. Partisi Struktural
Struktur program harus dipartisi secara horisontal maupun struktural. Partisi ini membagi cabang-cabang yang terpisah dari hirarki modul untuk menjadi sebuah fungsi program. Ada beberapa keuntungan yang didapat mempartisi arsitektur secara horisontal, yaitu
  1. menghasilkan perangkat luank yang mudaj diuji.
  2. menghasilkan penyebaran efek samping yang sedikit.
  3. menghasilkan perangkat lunak yang lebih mudah diperluas.
  4. menghasilkan perangkat lunak yang lebih mudah dipelihara.

Selain struktur program bisa dipartisi secara horisontal bisa juga dipartisi secara vertikal, dimana kontrol dan kerja dari arsitektur program didistribusikan secara top-down.


7. Struktur Data
Struktur data merepresentasikan hubungan logis antara elemen-elemen data. Selain itu struktur data juga menentukan organisasi, metode akses, tingkat assosiativitas dan alternatif pemrosesan untuk informasi.


8. Prosedur Perangkat Lunak
Prosedur perangkat lunak lebih berfokus pada detail-detail pemrosesan dari masing-masing modul. Prosedur harus memberikan spesifikasi yang teliti terhadap pemrosesan, mencakup event, keputusan, operasi, dan struktur data.


9. Penyembunyian Informasi
Sebuah mekanisme perancangan modul sehingga informasi yang terkandung dalam modul tidak dapat diakses oleh modul lain yang tidak berkepentingan dengan informasi tersebut. Informasi yang disembunyikan terdiri dari
  1. Representasi data
  2. Algorita seperti teknik pengurutan dan pencarian
  3. Format masukan dan keluaran
  4. Perbedaan mekanisme/kebijakan
  5. Antarmuka modul tiangkat rendah Ada beberapa alasan kenapa konsep perancangan ini perlu dipahami oleh desainer yaitu
  6. Mengatur sistem perangkat lunak yang kompleks.
  7. Meningkatkan kualitas faktor dari perangkat lunak.
  8. Memudahkan penggunaan kembali simantik sistem atau perangkat lunak.
  9. Memecahkan permasalahan-permasalahan perancangan yang ada pada umumnya.

Transformasi Model Analisa ke Perancangan

Masing-masing elemen pada model analisis (bab 4) akan memberikan informasi yang diperlukan untuk menciptakan model perancangan. Pada gambar 5.3 menunjukkan bagaimana menterjemahkan model analisis kenjadi empat model perancangan.

Gambar 3 Transformasi model analisis ke model perancangan perangkat lunak
Gambar 3 Transformasi model analisis ke model perancangan perangkat lunak

Pada tahap perancangan ini akan dihasilkan empat model/objek perancangan, yaitu
  • Perancangan data, yang berupa tabel-tabel basis data / file data konvensional Dan struktur data internal (jika diperlukan).
  • Perancangan arsitektur yang berupa Structure chart dan struktur menu program (sebagai pelengkap)
  • Perancangan antarmuka (interface)
  • Perancangan level komponen/prosedural yang berupa spesifikasi program (algoritma)

Sekian artikel Modul Makalah tentang Prinsip Desain Perangkat Lunak dan Rekayasa Perangkat Lunak. Semoga bermanfaat.

Daftar Pustaka
  • Software Engineering Ian Sommerville
  • Software Engineering Roger S.Pressman
Nikita Dini
Nikita Dini Blogger, Internet Marketer, Web Designer