Rekayasa Perangkat Lunak
Tugas Kuliyah :
- Materi Tentang Desain Softwere Dan proses desain RPL
- Karakteristik RPL
- Konsep Desain RPL
Jawaban :
* Materi Tentang Desain Softwere Dan Prose Desain RPL ?
DESAIN SOFWERE
Software design merupakan salah satu proses dalam sebuah Software Development Life Cycle. Adapun definisi dari software design
sangat beragam, bergantung pada kacamata dan sudut pandang orang
dan/atau institusi yang mendeskripsikan definisi tersebut. Berikut ini
beberapa definisi software design yang penulis kutip dari beberapa referensi, yaitu: Swebok 2004 [IEEE610.12-90] mendefinsikan bahwa software design adalah semua proses dalam mendefinisikan arsitektur, komponen, interface dan karateristik sebuah sistem dan/atau komponen lainnya serta hasil dari proses tersebut.
Pendapat lain mengatakan bahwa software design adalah merupakan rekayasa representasi yang berarti terhadap sesuatu
yang hendak dibangun. Hasil rancangan harus dapat ditelusuri hingga ke
spesifikasi kebutuhan yang dapat diukur kualitasnya berdasarkan
kriteria-kriteria rancangan yang bagus.
Secara global, terdapat 2 (proses) dalam software design (Swebok 2004), yaitu:
- Desain Arsitektur (Architecture Design), yaitu: proses mendeskripsikan dan mendefinisikan bagaimana software dibentuk dan di organisasikan kedalam komponen-komponen yang akan menbentuk software tersebut.
- Detailed Design, yaitu: proses mendeskripsikan bagaimana prilaku (behavior) dari komponen-komponen yang sudah dibentuk pada architecture design.
Hasil dari kedua proses ini adalah sekumpulan model dan artifak yang mendeskripsikan tujuan serta gambaran dari software yang akan dibangun, adapun model-model ini bisa dibangun dengan menggunakan modeling language yaitu: bahasa yang digunakan untuk membuat dan menyajikan informasi atau knowledge atau sistem dalam sebuah struktur yang dibuat secara konsisten menggunakan sekumpulan aturan-aturan tertentu. Contohnya yaitu:
- Unified Modeling Language (UML), yaitu sebuah standar dalam membangun sebuah model yang merepresentasikan object oriented software dan business system (Pender A Thomas, 2002).
- Flowchart, yaitu: bagan yang biasa digunakan untuk merepresentasikan algoritma secara sistematik (Wikipedia).
- Extended Enterprise Modeling Language (EEML), yaitu: model yang digunakan untuk merepresentasikan business model yang terdiri dari sejumlah layer (Wikipedia).
Prinsip-prinsip dalam melakukan desain software (Swebok 2004).
- 1. Abstraction (Proses Abstraksi)
Abstraksi merupakan salah satu teknik
yang paling ampuh untuk menyelesaikan sebuah permasalahan yang kompleks.
Abstraksi merupakan kemampuan manusia untuk mengenali
keserupaan-keserupaan diantara objek-objek, situasi-situasi, dan
proses-proses di dunia nyata serta keputusan untuk berkonsentrasi pada
keserupaan-keserupaan tersebut dan mengabaikan apa yang disebut
perbedaan-perbedaan kecil yang ada (Bambang Hariyanto, 2004). Sedangkan
pendapat lain mengatakan bahwa abstraksi adalah proses menghilangkan
informasi dari sebuah objek dan menjadikan perbedaan-perbedaan kecil
sebagai suatu kesamaan untuk maksud tertentu (Swebok, 2004).
Contoh proses abstraksi adalah sebagai berikut: ketika
melakukan penentuan kecepatan benda jatuh dari suatu ketinggian, kita
tidak memperdulikan apakah benda itu adalah sebuah batu, kucing, pesawat
terbang, kapas, bulu ayam, jarum, benang dan lain sebagainya. Kita
hanya menganggap bahwa benda tersebut sebagai suatu titik masa, sehingga
dengan menggunakan persamaan kecepatan dipercepat beraturan, kita bisa
menentukan letak titik jatuh benda tersebut dan dengan kecepatan berapa
benda tersebut menabrak bumi secara memadai.
- 2. Coupling and Cohesion.
Coupling adalah proses menentukan relasi antar modul sedangkan cohesion adalah proses menentukan bagaimana setiap element agar bisa merelasikan modul-modul tersebut.
- 3. Decomposition and Modularization.
Proses dekompisisi dan mudulasi merupakan pemecahan software yang kompleks kedalam sejumlah modul-modul kecil yang saling berelasi (Swebok, 2004). Bambang Hariyanto (2004)
berpendapat ada 2 (dua) jenis dekomposisi yaitu: dekomposisi algoritmik dan dekomposisi berorientasi objek.
- Dekomposisi algoritmik adalah proses pendekatan yang sering dilakukan dalam pemograman terstruktur dimana pada pendekatan ini difokuskan pada proses/algoritma/fungsi yang memanipulasi struktur data.
- Dekomposisi berorientasi objek adalah proses pendekatan pemecahan permasalahan menjadi objek-objek yang saling berinteraksi, jadi pada pendekatan ini, kita tidak melakukan bagaimana sebuah permasalahan diselesaikan, akan tetapi mengidentifikasi objek-objek yang berkolaborasi dalam permasalahan yang dihadapi, sedangkan proses penyelesaian permasalahan ditangani dalam bentuk peran dan tanggung jawab objek-objek yang sudah didefinisikan.
- 1. Encapsulation/Information Hiding (Penyembunyian Informasi)
Encapsulation/information hiding
merupakan proses pengelompokan dan pemaketan element-element dan detail
informasi abstraksi sehingga tidak bisa diakses oleh sembarang
proses/objek ataupun prosedur tertentu (Swebok, 2004) sedangkan pendapat
lain mengatakan bahwa encapsulation/information hiding adalah
proses memisahkan aspek-aspek eksternal objek yang dapat diakses
objek-objek lain dari rincian-rincian implementasi internal objek yang
tersembunyi dari objek-objek lain (Bambah Hariyanto, 2004).
Agar lebih jelas perhatikan contoh ilustrasi encaplusation/information hiding berikut:
Dalam sebuah objek motor, kita bisa mendefiniskan sebuah attribut yaitu: kecepatan
dimana attribut ini hanya bisa diubah oleh method tambahGas, objek lain
yang berkolaborasi dengan objek motor tidak bisa mengubah attribut
kecepatan secara langsung, misalnya: objek pengemudi, objek ini tidak
bisa secara langsung mengubah kecepatan motor, jika objek ini ingin
mengubah kecepatan motor, maka objek ini harus menggunakan method
tambahGas pada objek motor.
Salah satu tujuan dari proses encapsulation/information hiding
adalah memperkecil ketergantungan antar objek/modul, dimana jika
terjadi perubahan kecil pada suatu atribut objek bisa berdampak besar
pada sistem.
- 2. Separation of Interface and Implementation.
Separating interface and implementation
adalah proses mendefinisikan sebuah komponen dengan spesifikasi sebuah
public interface, diketahui oleh client, memisahkan detail informasi dan
bagaimana komponen direalisasikan (Swebok, 2004).
- 1. Sufficiency, Completeness and Primitiveness.
Sufficiency, completeness and primitiveness adalah proses meyakinkan bahwa semua komponen yang membentuk software mampu menangani dan menampung semua karateristik dari sebuah abstraksi (Swebok, 2004).
PROSES DESAIN RPL
Proses Desain perangkat lunak berada pada posisi teknik inti dari suatu proses
rekayasa perangkat lunak yang digunakan. pada dasarnya desain perangkat
lunak memiliki prinsip atau aktivitas sebagai berikut
- 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 . - Desain Arsitektur (Architectural Design)Pada desain arsitektur ini menentukan suatu hubungan diantara elemen-elemen struktur utama dan program.
- Desain Antar Muka (Interface Design)pada desain interface menggambarkan bagaimana PL berinteraksi dengan sistem yang berinteroperasi dengan desain interface tersebut serta pengguna yang menggunakannya.
- Desain Prosedural (Procedural Design)mentransformasikan elemen-elemen struktural dari desai arsitektur progrma ke dalam sebuah deskripsi prosedural dari komponen-komponen Perangkat lunak.
* karakteristik desain
Prinsip Proses Perangkat lunak
Desain perangkat lunak berupa model dan proses. Proses desain merupakan
serangkaian langkah / tahap / step iteratif yang memungkinkan desainer
menggambarkan semua aspek perangkat luank yang dibangun . Sedangkan
Model Desain merupakan ekivalen rencana arsitek untuk membangun suatu
sistem interface. model desain memeluai dengan menyajikan totalitas dari
hal-hal yang akan dibangun.
Prinsip-prinsip desain dasar untuk mengendalikan proses desain . Davis
[DAV95] mengusulkan serangkaian prinsip bagi desain perangkat lunak ,
antara lain sebagai berikut :
- Proses desain tidak boleh menderita karena "tunnel vision"
- Desain harus dapat ditelusuri sampai pada model analisis.
- Desain tidak boleh "berulang"
- Desain harus " Meminimalkan kesenjangan intelektual"
- Dsain harus mengungkapkan keseragaman dan integritasi.
- Desain harus terstruktur untuk mengakomodasi perubahan.
- Desain harus terstruktu untuk berdegradasi dengan baik , bahkan pada saat data dan event" menyimpang , / sedang menghadapi kondisi operasional.
- Desain bukanlah pengkodean
- Desain harus dinilai kualitasnya pada saat desain dibuat , bukan setelah jadi
- Desain harus dikaji untuk meminimalkan kesalahan-kesalahan konseptual (semantik).
jika prinsip diatas sudah diterapkan dengan benar , maka RPL mampu
menciptakan suatu desain yang mengungkapkan baik itu faktor kualitas
internal dan juga eksternal [MEY88].
Konsep -konsep Desain Rekayasa Perangkat Lunak
Dalam konsep -konsep desain Rekayasa Perangkat Lunak terdapat :
- Abstraksi
- Penyaringan
- Modularitas
- Arsitektur Perangkat Lunak
- Hirarki Kontrol
- Partisi Struktural
- Struktural Data
- Prosedur Perangkat Lunak
- Penyembunyian Informasi
- Mempunyai daya guna yang tinggi (usability)
- Mempunyai kinerja sesuai fungsi yang dibutuhkan pemakai
- Mampu diandalkan (be reliable)
- Mudah dirawat/diperbaiki (maintenability)
- Lebih efisien
- Mempunyai antarmuka yg menarik (eye cathcing user interface)
terima kasih
BalasHapus