MAKALAH DESAIN PERANGKAT LUNAK
NAMA : RANI JUITA NIM
: 41813120165
DOSEN : WACHYU HARI HAJI. S.Kom.MM
JURUSAN SISTEM INFORMASI FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 2015
A. 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 arsitektur b. Desain interface c. Desain prosedural d. Desain coding Desain perangkat lunak adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi berbasis komputer (Whitten et al, 2004:58). Desain perangkat lunak sering juga disebut sebagai physical design. Jika tahapan analisis sistem menekankan pada masalah bisnis (business rule), maka sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak (Whitten et al 2004:58). Output utama dari tahapan disain perangkat lunak adalah spesifikasi desain. Spesifikasi ini meliputi spesifikasi disain umum yang akan disampaikan kepada stakeholder sistem dan spesifikasi disain rinci yang akan digunakan pada tahap implementasi. Spesifikasi disain umum hanya berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa perangkat lunak yang akan dibangun. Biasanya diagram USD tentang perangkat lunak yang baru merupakan point penting dibagian ini. Spesifikasi disain rinci atau kadang disebut disain arsitektur rinci perangkat lunak diperlukan untuk merancang sistem sehingga memiliki konstruksi yang baik. Proses pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan selanjutnya. Desain arsitektur ini terdiri dari desain database, desain proses, desain user interface yang mencakup desain input, output form dan report, desain hardware, software dan jaringan. Desain proses merupakan kelanjutan dari pemodelan proses yang dilakukan pada tahapan analisis. Desain data adalah aktivitas pertama dan terpenting 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. 1. 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. 1. Transisi dari aliran informasi (yang ditujukan sebagai diagram aliran data) kestruktur dilakukan bagian dari proses 5 langkah: Tipe aliran informasi dibangun. 2. Batas aliran diindikasikan. 3. DFD dipetakan didalam struktur program. 4. Hirarki kontrol ditentukan dengan pemfaktoran. 5. Struktur resultan disaring atau diperhalus dengan menggunakan pengukuran desain dan heuristik. 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: 1. Mengembangkan narasi pemerosesan untuk masing-masing modul. 2. Menyediakan deskripsi interface untuk masing-masing modul. 3. Menentukan struktur data local dan global. 4. Mencatat semua batasan desain. 5. Mengkaji desain. 6. Mempertimbangkan “optimasi” (bila perlu dan dibenarkan). b. Desain Interface Memberikan suatu gambaran mengenai struktur program kepada perekayasa perangkat lunak. Fokus Desain Interface : 1. Desain interface antar modul 2. Desain interface antara perangkat lunak dan entitas eksternal (produser & konsumen) 3. Desain interface manusia dengan computer c. 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. d. Desain Coding Desain Coding Pengkodean merupakan tahap konstruksi perangkat lunak yang dibangun dari model dan desain sebelumnya. Masing-masing bahasa pemrograman memiliki format yang berbeda-beda. Namun terdapat kaidah umum penulisan program: - aturan penulisan kode → (kelas,atrribut,block dan tabbing) - dokumentasi kode refactoring kode
B. PRINSIP DESAIN DAN KONSEP DESAIN 1. 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. Proses desain tidak boleh menderita karena “tunnel vision” Desain harus dapat ditelusuri sampai model analisis. Desain tidak boleh berulang. Desain harus “meminimalkan kesenjangan intelektual” di antara perangkat lunak dan masalah yang ada di dunia nyata. Desain harus mengungkap keseragaman dan integrasi. Desain harus terstruktur untuk mengakomodasi perubahan. Desain harus terstruktur untuk berdegradasi dengan baik, bahkan pada saat data dan event-event menyimpang, atau menghadapi kondisi operasi. Desain bukanlah pengkodean, dan pengkodean bukanlah desain. Desain harus dinilai kualitasnya pada saat desain dibuat, bukan setelah jadi. Desain harus dikaji untuk meminimalkan kesalahan-kesalahan konseptual (semantik). 2. Konsep-konsep desain a. Abstraksi Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih menekan detail tingkat rendah. Terdapat 3 macam bentuk abstraksi, yaitu : Abstraksi prosedural. Merupakan urutan instruksi yang diberi nama yang mempunyai fungsi tertentu dan terbatas. Abstraksi data. Kumpulan data yang bernama yang menggambarkan obyek data. Abstraksi kontrol. Mengimplikasikan suatu mekanisme kontrol program tanpa menentukan detaildetail internal b. Penyaringan. Penyaringan stepwise (dengan serangkaian langkah) adalah strategi desain topdown 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. c. 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. Dekomposisi modular. Komposabilitas modular. Kemampuan pemahaman modular. Kontinuitas modular. Proteksi modular. d. 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 : Properti struktural. Menentukan komponen suatu sistem dan cara dimana komponen-komponen tersebut dikemas dan berinteraksi satu dengan yang lain. Properti ekstra-fungsional. Menekankan pada bagaimana arsitektur desain memenuhi persyaratan kinerja, kapasitas, reliabilitas, keamanan, adaptibilitas, dan karakteristik sistem yang lain. Keluarga dari sistem yang berhubungan. Desain harus memiliki kemampuan untuk memakai lagi blok bangunan arsitektural tersebut. e. 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. f. 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 : Menghasilkan perangkat lunak yang lebih mudah diuji. Membawa kepada perangkat lunak yang lebih mudah dipelihara. Menghasilkan penyebaran efek samping yang lebih sedikit.
Menghasilkan suatu perangkat lunak yang lebih mudah untuk diperluas. Partisi vertikal menyatakan bahwa kontrol dan kerja harus didistribusikan secara top-down dalam arsitektur program.
g. Struktur data Struktur data adalah representasi dari hubungan logis antara elemen-elemen data individual. h. Prosedur perangkat lunak Prosedur perangkat lunak berfokus pada detail-detail pemrosesan dari masingmasing modul secara individual. Prosedur harus memberikan spesifikasi yang teliti terhadap pemrosesan, mencakup urutan event, poin-poin keputusan nyata, operasi repetitif, dan organisasi struktur data. i. Penyembunyian informasi Prinsip penyembunyian informasi menyatakan bahwa bahwa modul ditandai dengan keputusan desain tersembunyi dari semua desain lain.