Anda di halaman 1dari 10

MATA KULIAH:

REKAYASA PERANGKAT LUNAK

MATERI TM 10
DESAIN PERANGKAT LUNAK DAN REKAYASA PERANGKAT LUNAK
( PRINSIP DAN KONSEP DESAIN)

NAMA : RAHMAT JAENURI


NIM : 41814120237

Rekayasa Perangkat Lunak Page 1


MATERI:

DESAIN PERANGKAT LUNAK DAN REKAYASA PERANGKAT LUNAK


( PRINSIP DAN KONSEP DESAIN)

Desain adalah langkah pertama dalam fase pengembangan bagi setiap produk atau
sistem yang direkayasa. Desain dapat didefinisikan berbagai “proses aplikasi
berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses
atau sistem dalam detail yang memadai untuk memungkinkan realisasi
fisiknya”[TAY59]. Tujuan desainer adalah untuk menghasilkan suatu model atau
representasi dari entitas yang kemudian akan dibangun.

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. Persyaratan perangkat lunak, yang dimanifestasi oleh
data, fungsional, dan model-model perilaku, mengisi langkah desain. Dengan
menggunakan satu dari sejumlah metode desain, langkah desain menghasilkan

a. desain data
b. desain arsitektur
c. desain interface
d. desain prosedural

Selama desain, kita dapat membuat keputusan yang akan mempengaruhi


kesuksesan konstruksi perangkat lunak dan kemudahan maintenance-nya. Desain
sangat penting karena dapat menentukan kualitas dari suatu perangkat lunak.

Rekayasa Perangkat Lunak Page 2


Keterhubungan antara model desain dan model analis

Proses Desain

Desain perangkat lunak adalah suatu proses interaktif yang melaluinya persyaratan
diterjemahkan ke dalam suatu “cetak biru” untuk membangun perangkat lunak.
Cetak biru menggambarkan suatu pandangan menyeluruh perangkat lunak, yaitu
bahwa desain dihadirkan pada tingkat abstraksi yang tinggi (dapat secara lanngsung
ditelusuri sampai data spesifik, fungsional, dan persyaratan behavioral)

1. Desain dan kualitas perangkat lunak

McGlaughlin mengusulkan 3 karakteristik yang berfungsi sebagai pedoman bagi


evaluasi suatu desain yang baik :
a. Desain harus mengimplementasikan keseluruhan persyaratan eksplisit yang
dibebankan dalam model analisis, dan harus mengakomodasikan semua
persyaratan implisit yang diinginkan pelanggan.
b. Desain harus menjadi panduan yang dapat dibaca, dapat dipahami bagi
mereka yang menghasilkan kode dan yang menguji serta memelihara
perangkat lunak.

Rekayasa Perangkat Lunak Page 3


c. Desain harus memberikan suatu gambaran lengkap mengenai perangkat
lunak, yang menekankan data, dan domain perilaku dari perspektif
implementasi.

Kriteria teknis untuk desain yang baik :


a. Desain harus memperlihatkan suatu organisasi yang dengan baik
menggunakan kontrol di antara elemen-elemen perangkat lunak.
b. Desain harus modular : yaitu bahwa perangkat lunak harus dipartisi secara
logika ke dalam elemen-elemen yang melakukan fungsi dan subfungsi
khusus.
c. Desain harus berisi data dan abstraksi prosedural.
d. Desain harus membawa ke arah modul (misal subrutin atau prosedur) yang
memperlihatkan karakteristik fungsional independent.
e. Desain harus mengarah kepada interface yang mengurangi kompleksitas
hubungan antara modul-modul dan dengan lingkunga eksternal.
f. Desain harus didapat dengan menggunakan metode berulang yang
dikendalikan oleh informasi yang diperoleh selama analisis persyaratan
perangkat lunak.

2. Evolusi desain perangkat lunak

Merupakan suatu proses kontinu yang terus berlangsung selama tiga dekade. Kerja
desain awal dikonsentrasikan pada kriteria untuk pengembangan program moduler
dan metode-metode untuk menyaring arsitektur perangkat lunak dengan cara top-
down. Aspek-aspek prosedural dari definisi desain yang tercakup dalam suatu
filosofi disebut pemrograman terstruktur. Usaha selanjutnya mengusulkan metode-
metode translasi aliran data atau struktur data ke dalam definisi desain. Pendekatan
desain yang lebih baru mengusulkan suatu pendekatan orientasi obyek ke derivasi
desain.

Banyak metode desain yang tumbuh dari kerja tersebut, sedang diaplikasi pada
industri. Setiap metode tersebut mempunyai sejumlah karakteristik umum :
1. Mekanisme penerjemahan suatu model analisis ke dalam representasi
desain.

Rekayasa Perangkat Lunak Page 4


2. Notasi untuk merepresentasikan komponen-komponen fungsional dan
interface-nya.
3. Heuristik bagi penyaringan dan partisi
4. Pedoman bagi penilaian kualitas

Prinsip desain

Desain perangkat lunak berupa model dan proses. Proses desain adalah
serangkaian langkah iteratif yang memungkinkan desainer menggambarkan semua
aspek perangkat lunak yang dibangun. Model desain adalah ekivalen rencana
arsitek untuk sebuah “rumah”, yang dimulai dengan menyajikan totalitas dari hal
yang akan dibangun. Prinsip desain dasar memungkinkan perekayasa perangkat
lunak untuk mengendalikan proses desain.

a. Proses desain tidak boleh menderita karena “tunnel vision”


b. Desain harus dapat ditelusuri sampai model analisis.
c. Desain tidak boleh berulang.
d. Desain harus “meminimalkan kesenjangan intelektual” di antara perangkat
lunak dan masalah yang ada di dunia nyata.
e. Desain harus mengungkap keseragaman dan integrasi.
f. Desain harus terstruktur untuk mengakomodasi perubahan.
g. Desain harus terstruktur untuk berdegradasi dengan baik, bahkan pada saat
data dan event-event menyimpang, atau menghadapi kondisi operasi.
h. Desain bukanlah pengkodean, dan pengkodean bukanlah desain.
i. Desain harus dinilai kualitasnya pada saat desain dibuat, bukan setelah jadi.
j. Desain harus dikaji untuk meminimalkan kesalahan-kesalahan konseptual
(semantik).

Rekayasa Perangkat Lunak Page 5


KONSEP-KONSEP DESAIN

1. Abstraksi

Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih


menekan detail tingkat rendah.
Terdapat 3 macam bentuk abstraksi, yaitu :
1. Abstraksi prosedural.
Merupakan urutan instruksi yang diberi nama yang mempunyai fungsi tertentu
dan terbatas.
2. Abstraksi data.
Kumpulan data yang bernama yang menggambarkan obyek data.
3. 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.

Rekayasa Perangkat Lunak Page 6


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.

Rekayasa Perangkat Lunak Page 7


c. Keluarga dari sistem yang berhubungan.
Desain harus memiliki kemampuan untuk memakai lagi blok bangunan arsitektural
tersebut.

Fungsi Desain Arsitektur PL Fungsi dari desain arsitektur adalah


memampukan software developer untuk :
1. Analisis efektifitas dari desain untuk memenuhi kebutuhan/ requirement yg
diminta. Berguna untuk komunikasi gambaran sistem dengan stakeholder yg
berkaitan dalam pembangunan sistem.
2. Mempertimbangkan alternatif lain ketika ada perubahan desain terjadi.
Arsitektur memberikan gambaran bagaimana sistem itu saling terkait dan
bekerja.
3. Mengurangi risiko yang berkaitan dengan pembangunan software atau
coding. Arsitektur memiliki pengaruh besar dalam rekayasa perangkat lunak
karena menjelaskan hasil keputusan dalam bentuk desain.

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 structural
Struktur progam harus dipartisi baik secara horizontal maupun vertikal. Partisi
horizontal menentukan cabang-cabang terpisah dari hirarki modular untuk setiap
fungsi program mayor. Keuntungannya :
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.

Rekayasa Perangkat Lunak Page 8


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.
Desain Modular Afektif
1. Independensi fungsional
Merupakan hasil pertumbuhan langsung dari modularitas dan konsep
abstraksi dan penyembunyian informasi.
Independensi fungsional dicapai dengan mengembangkan modul dengan fungsi
“single-minded” dan suatu “aversi” ke interaksi eksesif dengan modul yang lain.

2. Kohesi
Kohesi adalah suatu ekstensi natural dari konsep penyembunyian informasi.
Modul kohesi melakukan suatu tugas tunggal pada suatu prosedur perangkat lunak
yang memerlukan sedikit interaksi dengan prosedur yang sedang dilakukan di
bagian lain dari suatu program.

3. Perangkaian
Perangkaian adalah pengukuran interkoneksi diantara modul-modul pada
sebuah struktur progam. Perangkaian tergantung pada kompleksitas interface
diantara modul-modul, titik dimana entri atau referensi dibuat untuk sebuah modul
dan data yang dilewatkan pada interface tersebut.

Rekayasa Perangkat Lunak Page 9


https://rpl07.wordpress.com/2007/06/21/konsep-dan-prinsip-desain-oleh-afwan-b-
5105-100-169/#more-105

Rekayasa Perangkat Lunak Page 10

Anda mungkin juga menyukai