Materi Kuliah 4 Desain Perangkat Lunak Ilyas Nuryasin ilyas@umm.ac.id Ilyas.nuryasin@gmail.com
Materi Kuliah 4 Desain Perangkat Lunak Outlines: - Desain Data - Desain Arsitektur - Desain Interface/Antarmuka - Estetika interface - Desain coding
Materi Kuliah 4 Desain Perangkat Lunak Sasaran: Mahasiswa memahami tahaptahap dalam desain perangkat lunak. Mahasiswa memahami teknik mendesain sistem perangkat lunak Referensi: Pressman, Roger S., Software Engineering: A Practitioner s Approach, 6 th edition, McGraw-Hill International, 2001 Bentley, Lonnie D. and Whitten, Jeffry L. System Analysis & Design for Global Enterprise, 7 th edition, McGraw-Hill International, 2007 Schach, Stephen R., Object-Oriented and Classical Software Engineering, 5 th edition, McGraw-Hill International,2002 Kristanto, Andri, Rekayasa Perangkat Lunak (Konsep Dasar), 1 st edition, Gava Media:Yogyakarta, 2004
Desain perangkat lunak
Definisi desain Desain adalah perwujudan dari model Desain merupakan langkah progressif menuju bentuk nyata (sistem) Pressman (2005) menyebutkan bahwa desain adalah proses yang berulang yang mana kebutuhan diterjemahkan menjadi blueprint dalam konstruksi perangkat lunak. Bentley and Whitten (2007) menambahkan juga bahwa desain adalah langkah yang terfokus pada implementasi spesifikasi detil dari sistem.
Prinsip desain 9 Prinsip dalam mendesain perangkat lunak (Pressman 2005): 1. Desain harus bisa dilacak/sesuai dengan analisa model 2. Berpacu pada arsitektur sistem 3. Desain data = desain fungsi sistem 4. Desain interface memuat segala keperluan sistem(fungsionalitas, deteksi error, sederhana) 5. Desain interface = kebutuhan end-user 6. Independensi fungsi pada level desain komponen 7. Minimalkan ketergantungan antar komponen 8. Desain harus bisa dimengerti 9. Desain dibentuk secara bertahap- perlu iterasi untuk memaksimalkan fungsi
Kualitas software Kualitas software = nilai software Penilaian kualitatif bisa diukur dengan beberapa cara(pressman, 2005): 1. Fungsionality - fungsi dari semua fitur yang disediakan 2. Usability - subyektivitas user (estetik, konsistensi dan dokumentasi)
Kualitas software (2) 3. Reliability - kinerja sistem dari segi frekuensi kegagalan, akurasi dan kemampuan meakukan recovery 4. Performance - kinerja sistem dari segi kecepatan, konsumsi sumberdaya, throughput dan efisiensi 5. Supportability - dukungan sistem: perawatan, penambahan modul, kompatibilitas dan kemudahan konfigurasi
Desain perangkat lunak (2) Pendekatan desain perangkat lunak (Pressman, 2005)
Desain data Desain data merupakan desain sistem pada level organisasi dan klasifikasi kebutuhan perangkat lunak Desain data digambarkan pada diagramdiagram yang mendukung sesuai dengan fungsionalitasnya
Desain Fisik dan Logik Desain/model fisik menggambarkan bagaimana sistem bekeja secara teknis/fisik Desain/model logik menggambarkan proses-proses yang dalam sistem (Kristanto, 2004)
Data Fisik dan Logik Kelengkapan data meliputi data fisik dan logik Data fisik: entitas fisik: server, admin dll Data logik: proses (kata benda dari proses) contoh: peminjaman, pendaftaran dll
Review.. Jurusan Teknik Informatika
Desain Arsitektur Diadopsi dari Clements (2002): Carnegie Mellon University
Desain Arsitektur http://www.rkrk.net.au/images/3/35/information_overload.jpg
Pertanyaan.. 1. Bagaimana menghimpun semua kebutuhan stakeholder? 2. Bagaimana titik temu atau win-win solution antara kebutuhan stakeholder dengan kepentingan developer? 3. Bagaimana memulai pengerjaan sistem?
Sketsa.. cement Alkali 100 TM
Desain Arsitektur Arsitektur adalah sebuah kerangka sistem secara menyeluruh. Pressman (2005) menyebutkan bahwa arsitektur adalah struktur data dan komponen dalam sistem.
Mengapa perlu membagun arsitektur? - Sebagai panduan kerja - Meminimalisasi ketidaklengkapan data - Memastikan kebenaran sistem (Pressman, 2005)
Tipe arsitektur sistem - Sistem terdistribusi - Sistem alir - Sistem cabang - Sistem berlapis - Data terpusat
Mendesain arsitektur sistem - Desain proses - Desain basis data - Desain jaringan
Desain proses Mendesain proses umumnya menggunakan PDFD (Physical Data Flow Diagram): Diagram alir untuk data (proses) fisik. Id (optional) 2.3 2.3 Proses (bentuk nyata) PinjamBuku.java FTPServer implementer Java Ubuntu Server 11.10
Desain basis data Apa perbedaan penyimpanan konvensional dan basis data? 1. 2. 3. 4. 5.
Review ttng basis data Database Table File Field Record DDL DML DBMS RDBMS
Latihan.. Normalisasikan data transaksi ini: id_pinjam nam a_m hs alam at_m hs telp_m hs judul_buku pengarang tgl_pinjam tgl_kem bali denda 993457 Roni Malang 0441998458994 Beternak Itik di Lahan Kering Ardi Simatupang 12-03-2011 19-03-2011 0 993458 Rina Surabaya 0712366768884 Mengeruk dolar dari w w w Tatang Wijaya 13-03-2011 20-03-2011 1000 993459 Rani Bangil 0914523527352 Wirasw asta itu mudah Thomas Ginanjar 15-03-2011 22-03-2011 0 993460 Rini Pasuruan 0623452938596 Pengantar Teknologi Informasi Mahmud Zainal 20-03-2011 27-03-2011 300 993461 Runa Madura 0882125252244 Pengantar Jaringan Komputer Arie Tambunan 02-04-2011 09-04-2011 0 1. Berapa table yang terbentuk? 2. Bagaimana relasi antar table yang telah terbentuk? 3. Bagaimana bentuk ideal dari table diatas?
Desain jaringan Jaringan komputer diperlukan apabila sistem bekerja secara terdistribusi, atau melibatkan bagian lain diluar sistem. Contoh sistem bebasis internet, WAN dll 2 tipe pengembangan arsitektur jaringan - standalone - enterprise
Desain Interface/antarmuka Interface/antarmuka adalah penghubung antara sistem dengan pengguna. Interface bisa diartikan view/tampilan perangkat lunak. Interface bisa berupa: 1. input untuk sistem 2. output dari sistem
Desain Input Desain input meliputi: - Desain perangkat masukan Website, POS, image capturer - GUI (Graphical User Interface) Formulir standar
Desain Output Desain output meliputi: - View tampilan yang diharapkan (website/desktop) - Notifikasi respon sistem terhadap inputan - Laporan pengarsipan data (pdf) - Diagram bagan-bagan terkait manipulasi data - Format data Penggunaan 2 atau lebih format data keluaran
Estetika interface Estesika merupakan kaidah keindahan umum dalam menlai sesuatu (software). Menurut MacLennan (2006) dari penelitian Billington(1983) ada tiga buah aspek yang perlu dievaluasi:efficiency, economy dan elegance. Sementara bagi user ada tambahan reliable dan enak digunakan(maclennan, 2006)
Estetika interface (2) 4 pendekatan dalam mengembangkan estetika software engineering(maclennan, 2006): - experiment - critism - theory - practice
Estetika interface (3) Di dalam software, estetika meliputi: - Pemilihan kata dan bahasa singkatan, singkat:padat:jelas, istilah standar - Warna warna saling menghidupkan, bukan mematikan - Ukuran dan letak komponen vs frame; screen vs frame; organisasi komponen
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
Desain Coding (2) if(int a!=0){ //apabila input a tidak bernilai if(a>=80&&a<=100){ System.out.println("Cumlaude"); }else if(a>=60&&a<=79){ System.out.println("Baik"); }else{ System.out.println("Ngulang"); } }else{ System.out.println("Tidak terdaftar"); }
Bacaan lanjut.. 1. MacLennan. 2006 Aesthetic in Software Engineering. http://web.eecs.utk.edu/~mclennan/papers/ase-tr.pdf 2. Eden and kazman. Architecture, Design, Implementation. http://www.edenstudy.org/articles/2003/icse03.pdf 3. Garlan and Shaw. 1994. An Introduction of Software Archtecture. http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.138.460&rep=rep1&type=pdf 4. Wikipedia dan yang lain..