Jurnal Perkuliahan 11: Rekayasa Perangkat Lunak (Konsep Desain)

translator

Double-click

Select to translate

 

translator

 

Double-click

Select to translate

 

 “Konsep Desain Perangkat Lunak”

Desain Perangkat Lunak

Desain perangkat lunak bukan hanya sebuah perancangan berupa interface (antar muka) sebuah perangkat lunak, tetapi memiliki lingkup yang jauh lebih luas.
Sebuah proses untuk mendefinisikan sesuatu yang akan dikerjakan dengan menggunakan teknik yang bervariasi serta didalamnya melibatkan deskripsi mengenai arsitektur serta detail komponen dan juga keterbatasan yang akan dialami dalam proses pengerjaannya.
Sebuah proses perancangan membutuhkan pengetahuan mengenai berbagai teknik atau model perancangan yang dapat digunakan. Selain itu, sebuah perancangan membutuhkan hasil analisa yang telah mampu mendeskripsikan kebutuhan dari sistem yang akan dibuat.Dan seorang desainer harus memahami kendala atau hambatan yang mungkin terjadi pada saat implementasi.

Desain perangkat lunak memiliki beberapa prinsip sebagai berikut :

  1. Desain Data (Data Design)
  2. Desain Arsitektur (Architectural Design)
  3. Desain Antar Muka (Interface Design)
  4. Desain Prosedural (Procedural Design)
1. Desain Data (Data Design)
Desain data merupakan suatu aktivitas pertama dan juga yang terpentig 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.

Konsep-konsep desain

1. Abstraksi

Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih menekan detail tingkat rendah.
Terdapat 3 macam bentuk abstraksi, yaitu :
a. Abstraksi prosedural.
Merupakan urutan instruksi yang diberi nama yang mempunyai 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

2. Penyaringan.

Penyaringan stepwise (dengan serangkaian langkah) adalah strategi desain top-down yang diusulkan oleh Wiklaus Wirth. Kajian dari konsep tersebut adalah
“Pada setiap langkah (penyaringan), satu atau beberapa instruksi dari program yang diberikan didekomposisi ke dalam instruksi-instruksi yang lebih detail. Dekomposisi berurutan atau penyaringan spesifikasi berhenti bila semua instruksi diekspresikan dalam bentuk bahasa pemrograman atau komputer yang mendasar. Jika tugas-tugas disaring, maka data harus disaring juga, didekomposisi atau distruktur, dan adalah wajar untuk menyaring program dan spesifikasi data secara paralel” .
Abstraksi dan penyaringan adalah konsep kompementer. Kedua konsep tersebut membantu desainer dalam menciptakan suatu model desain lengkap jika desain berkembang.

3. Modularitas

Modularitas merupakan atribut tunggal dari perangkat lunak yang memungkinkan sebuah program untuk dikelola secara intelektual.
Meyer menyebutkan 5 kriteria yang memungkinkan kita untuk mengevaluasi suatu metode desain dengan merujuk pada kemampuannya untuk menentukan sistem modular yang efektif.
a. Dekomposisi modular.
b. Komposabilitas modular.
c. Kemampuan pemahaman modular.
d. Kontinuitas modular.
e. Proteksi modular.

4. Arsitektur perangkat lunak

Arsitektur perangkat lunak mencakup “struktur keseluruhan perangkat lunak dan cara dimana struktur memberikan integrasi konseptual bagi suatu sistem”.
Shaw dan Garlan menjelaskan sekumpulan 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 satu dengan yang lain.
b. Properti ekstra-fungsional.
Menekankan pada bagaimana arsitektur desain 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.

5. Hirarki Kontrol

Hirarki kontrol, disebut juga struktur program merepresentasikan organisasi komponen program serta mengimplikasikan suatu hirarki kontrol. Hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian/urutan dari keputusan, atau pengulangan operasi.

6. Partisi struktural

Struktur progam harus dipartisi baik secara horizontal maupun vertikal.
Partisi horizontal menentukan cabang-cabang terpisah dari hirarki modular untuk setiap fungsi program mayor. Keuntungannya :
a. menghasilkan perangkat lunak yang lebih mudah diuji.
b. Membawa kepada perangkat lunak yang lebih mudah dipelihara.
c. Menghasilkan penyebaran efek samping yang lebih sedikit.
d. Menghasilkan suatu perangkat lunak yang lebih mudah untuk diperluas.
Partisi vertikal menyatakan bahwa kontrol dan kerja harus didistribusikan secara top-down dalam arsitektur program.

7. Struktur data
Struktur data adalah representasi dari hubungan logis antara elemen-elemen data individual.

8. Prosedur perangkat lunak
Prosedur perangkat lunak berfokus pada detail-detail pemrosesan dari masing-masing modul secara individual. Prosedur harus memberikan spesifikasi yang teliti terhadap pemrosesan, mencakup urutan event, poin-poin keputusan nyata, operasi repetitif, dan organisasi struktur data.

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

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>