A. Desain Software dan Proses Desain Rekayasa Perangkat Lunak
1. Ganbaran Desain Software
2. Proses Desain Rekayasa Perangkat Lunak
- Desain Data
Desain data adalah aktivitas pertama dan terpentig dari empat
aktivitas desain yang dilakukan selama rekayasa perangkat lunak. Proses
pemilihan struktur dalam menentukan desain yang paling efisien sesuai
kebutuhan.
Tujuan: Untuk mendapatkan struktur data yang baik sehingga diperoleh program yang lebih modular dan mengurangi kompleksitas pengembangan software.
Prinsip Mendesain Data
- Prinsip analisis sistematika yang diaplikasikan pada fungsi dan perilaku harusnya juga diaplikasikan pada data.
- Semua struktur data dan operasi yang akan dilakukan pada masing-masing struktur data harus didentifikasi.
- Kamus data harus dibangun dan digunakan untuk menentukan baik data maupun desain program.
- Keputusan desain data tingkat rendah harus ditunda sampai akhir proses desain.
- Representasi struktur data hanya boleh diketahui oleh modul-modul yang menggunakan secara langsung data yang diisikan didalam struktur tersebut.
- Pustaka struktur data dan operasi yang berguna yang dapat diaplikasikan pada struktur data tersebut harus dikembangkan.
- Desain perangkat lunak dan bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe-tipe data abstrak.
- Desain Arsitektur
Desain arsitektur adalah untuk mengembangkan struktur program modular
dan merepresentasikan hubungan kontrol antar modul. Metode desain yang
disajikan pada bagian ini mendorong prekayasa perangkat lunak untuk
berkosentrasi pada desain arsitektur sebelum mencemaskan masalah
perpipaan.
Faktor seleksi yang penting untuk suatu metode desain adalah luasnya
apliksi dimana aplikasi dapat diaplikasikan. Desain berorientasi pada
aliran data dapat menyetujui rentang area aplikasi yang luas.
- Proses Desain Arsitektur
Desain yang berorientasi pada aliran data merupakan suatu metode
desain arsitektur yang mengijinkan transisi yang baik dari model
analisis ke deskripsi desain dari struktur program.
Transisi dari aliran informasi (yang ditujukan sebagai diagram aliran data) kestruktur dilakukan bagian dari proses 5 langkah:
- Tipe aliran informasi dibangun.
- Batas aliran diindikasikan.
- DFD dipetakan didalam struktur program.
- Hirarki kontrol ditentukan dengan pemfaktoran.
- Struktur resultan disaring atau diperhalus dengan menggunakan pengukuran desain dan heuristik.
Desain arsitektur adalah untuk mengembangkan struktur program modular
dan merepresentasikan hubungan kontrol antar modul. Metode desain yang
disajikan pada bagian ini mendorong prekayasa perangkat lunak untuk
berkosentrasi pada desain arsitektur sebelum mencemaskan masalah
perpipaan.
Faktor seleksi yang penting untuk suatu metode desain adalah luasnya
apliksi dimana aplikasi dapat diaplikasikan. Desain berorientasi pada
aliran data dapat menyetujui rentang area aplikasi yang luas.
- Pasca Pemrosesan Desain
Aplikasi dari pemetaan transaksi dan transformasi yang berhasil
kemudian ditambahkan pada dokumentasi tambahan yang dibutuhkan sebagai
bagian dari desain arsitektur. Setelah struktur dikembangkan dan
disaring, tugas – tugas berikut harus dilakukan:
- Mengembangkan narasi pemerosesan untuk masing – masing modul.
- Menyediakan deskripsi interface untuk masing – masing modul.
- Menentukan struktur data local dan global.
- Mencatat semua batasan desain.
- Mengkaji desain.
- Mempertimbangkan “optimasi” (bila perlu dan dibenarkan).
- Optimasi Desain Arsitektur
Desainer perangkat lunak harus memperhatikan perkembangan
representasi perangkat lunak yang akan memenuhi semua fungsi dan
persyaratan kinerja dan penerimaan jasa berdasarkan pengukuran desain
kualitas.
Usul pendekatan berikut ini untuk perangkat lunak kinerja – kritis dalam optimasi desain arsitektur:
- Kembangkan dan saringlah struktur program tanpa memperhatikan optimasi kinerja – kritis.
- Gunakan peranti CASE yang mensimulasi kinerja run – time untuk menisolasi area inesifiensi.
- selama iterasi desain selanjutnya, pilihlah modul yang dicurigai dan dengan hati – hati kembangkanlah prosedur (algoritma – algoritma) untuk efisiensi waktu.
- Kodekan sebuah bahasa pemerograman yang sesuai.
- Instrumentasikan perangkat lunak untuk mengisolasi modul yang menjelaskan utilisasi proses yang berat.
- Bila perlu, Desain ulang atau kodekan kembali bahasa yang tergantung pada mesin untuk meningkatkan efisiensi.
- Desain Interface
Memberikan suatu gambaran mengenai struktur program kepada perekayasa perangkat lunak. Fokus Desain Interface :
- Desain interface antar modul
- Desain interface antara perangkat lunak dan entitas eksternal (produser & konsumen)
- Desain interface manusia dengan komputer
- Desain Interface Manusia-Mesin
Ada empat model yang berbeda pada saat manusia-komputer/
human-komputer interface (HCL) akan didesain. Perekayasa perangkat lunak
menciptakan sebuah model desain, perekayasa perangkat lunak membangun
model pemakai, pemakai akhir mengembangkan citra mental yang sering
disebut user’s model atau perception, dan implementer sistem menciptakan
system image.
Model desain dari keseluruhan sistem menggabungkan data, arsitektur,
interface, dan representasi prosedural dari perangkat lunak.
Model pemakai menggambarkan profil para pemakai akhir dari sistem.
Untuk membangun interface pemakai yang efektif, semua desain harus
dimulai dengan suatu pemahaman terhadap pemakai yang dimaksudkan,
meliputi profil, usia, jenis kelamin.
Para pemakai juga dapat dikategorikan sebagai:
– Orang baru
– Pemakai intermiten yang banyak pengetahuan
– Pemakai yang banyak pengetahuan dan sering
Persepsi sistem (model pemakai) merupakan citra sistem yang ada
dikepala seorang pemakai akhir. Sebgai contoh, bila pemakai pengelola
kata tersebut, persepsi sistem akan menuntun respon tersebut.
Citra sistem merangkai manifestasi bagian luar dari sistem berbasis
computer (tampilan luar dan “rasa” interface), dengan semua informasi
yang mendukung (buku-buku, manual, pita video) yang menggambarkan
sintaksis dan semantik sistem.
- Desain Prosedural
Tujuan: untuk menetapkan detail algoritma yang akan dinyatakan dalam suatu bahasa tertentu.
Desain prosedural dilakukan setelah diselesaikannya perancangan desain data, arsitektur, dan antar muka software.
- Coding
Program Design Language (PDL)
adalah pseudocode atau suatu bahasa keseluruhan yang sintaksnya dari bahasa tertentu (pemrograman terstruktur).
B. Karakteristik Rekayasa Perangkat Lunak
Menurut Pressman (2001), ada beberapa karakteristik perangkat lunak
dibandingkan dengan perangkat keras yang perlu diketahui, yaitu:
- Sebuah Perangkat Lunak itu dikembangkan dan tidak diproduksi masal seperti pada umumnya perangkat keras. Disini sebuah perangkat lunak hanya dibuat satu dan tidak dibuat dalam jumlah yang banyak sedangkan perangkat keras dibuat dalam jumlah besar.
- Sebuah Perangkat Lunak tidak pernah Usang. Hal ini sangat berbeda dengan perangkat keras, dimana sebuah perangkat keras akan usang dimakan waktu. Perhatikan saat kita membeli sebuah Gadget dengan Spek Processor Snapdragon 835, Ram 8 GB, Rom 64 GB, Kamera 16 MB, maka perangkat Gadget ini semakin lama akan usang dan dengan ditandai biasanya adalah PERFORMANSI dari Perangkat Keras yang menurun, Harga yang semakin murah, dan lain-lainnya (Soumyakanti, 2017).
- Beberapa Perangkat Lunak dikembangkan secara custom (pesanan) sedangkan Perangkat Keras dikembangkan berdasarkan sistem Component-Based Assembly. Disini sebuah perangkat lunak selain dikembangkan dengan cara umumnya, beberapa perangkat lunak juga ada yang dikembangkan dengan cara pesanan.
C. Konsep Desain Rekayasa Perangkat Lunak
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
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.
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.
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.
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.
No comments:
Post a Comment