Desain Sftware Arna Fariza PENS 1 Materi Apakah desain sftware itu? Apakah mdularisasi itu? Mdel 2
Apakah Desain Sftware itu? Desain adalah prses mengubah persyaratan sistem ke dalam prduk yang lengkap Desain Sftware adalah utput dari prses yang Dekmpsisi sistem dalam beberapa baian Menentukan tanggung jawab setiap bagian Memastikan bagian-bagian tersebut dapat mencapai tujuan glbal Desain terdiri dari aktifitas dan hasil dari aktifitas Desain adalah aktifitas iteratif Mulai dari titik inisial Berkembang dan beriterasi dengan menambahkan fitur/kapabilitas Mencapai state yang tepat berdasarkan Obyektif/tujuan desain Input/feedback dari knsumen 3 Apakah Desain Sftware itu? Sftware dikembangkan secara terinci sampai cukup detail untuk mendukung implementasi Sistem dibagi ke dalam mdul- mdul (kmpnen, paket, class dll) Dekmpsisi Tp-Dwn Mdul besar (kmpnen, paket, class) didekmpsisi ke dalam bagian yang lebih kecil Bagian yang lebih kecil tsb mengimplementasikan bagian yang lebih besar Bagian yang lebih besar dikmpsisi dari bagian yang lebih kecil Dekmpsisi Bttm-Up Mdul level yang lebih rendah didefinisikan terlebih dahulu Mdul-mdul tsb dikmbinasikan untuk membentuk mdul yang lebih besar Baik TD atau BU dapat mencapai hasil yang sama 4
Cnth Desain TD dan BU 5 Apakah Desain Sftware itu? Desain Sftware adalah Aktifitas yang menjembatani antara persyaratan dan implementasi sftware Aktifitas yang memberikan struktur benda yang dihasilkan Dkumen spesifikasi persyaratan harus didesain Struktur dapat memudahkan untuk mengerti dan mengembangkannya Aktifitas Desain Sftware Menentukan dekmpsisi sistem ke dalam mdul Menghasilkan dkumen desain sftware Menggambarkan dekmpsisi sistem ke dalam mdul-mdul Biasanya Arsitektur Sftware dihasilkan sebelum desain sftware 6
Apakah Arsitektur Sftware itu? Arsitektur Sftware Bentuk kasar dari sistem yang ditentukan Terdiri dari deskripsi Kmpnen utama sistem Relasi antar kmpnen Alasan dekmpsisi ke dalam kmpnen-kmpnen Batasan yang harus dipatuhi dalam mendesain kmpnen Petunjuk pengembangan desain 7 Cnth Arsitektur Sistem High-Tech Supermarket System (HTSS) Otmatisasi fungsi dan aksi Update kasir dan inventri Meletakkan bahan makanan secara user friendly Pelacakan delivery rder dengan cepat Mengntrl inventry Antar muka sistem user Scanner Cash Register GUI untuk kntrl Inventry Shpper menghubungkan Lcatr dan Orderer Antar muka deli untuk pekerja delivery rder 8
Arsitektur Sftware HTSS SDO EDO IL IL CR CR CR IL CR SDO IC IC EDO Item Payment Order ItemDB Lcal Server Nn-Lcal Client Int. IL: Item Lcatr CR: Cash Register IC: Invent. Cntrl DO: Deli Orderer fr Shpper/Emplyee Inventry Cntrl ItemDB Glbal Server CreditCardDB ATM-BanKDB OrderDB SupplierDB 9 Apakah Mdularisasi itu? Mdularisasi mengungkit ide dari arsitektur sftware Mdul: Arsitektur sftware mendekmpsisi sistem ke dalam kmpnen yang berpengaruh Biasanya, kmpnen tersebut merupakan prgram independent terhadap platfrm hardware Mdularisasi mendekmpsisi kmpnen tersebut ke dalam mdul-mdul yang berpengaruh Adalah kmpnen Well-defined (terdifinisi dengan baik) dari sistem sftware Bagian dari sistem yang menyediakan layanan ke mdulmdul lain Layanan adalah elemen kmputasi yang tersedia untuk digunakan leh mdul lain Mdul memberikan layanan dan mengambil layanan 10
Cnth Mdularisasi Memanggil kmpnen Cash Register dari HTSS CR terdiri dari mdul UPC Scanner Menyimpan Item yg terjual Mengurangi inventry Menambah ke Nta Menambah prfil knsumen Pembayaran Kupn Cash/Debit/Credit Nta Mdul-mdul tersebut berinteraksi dengan kmpnen HTTS lain 11 Mdel Kita membuat mdel untuk mendapatkan pemahaman yang lebih baik dari entitas aktual yang akan dibangun. Ketika entitas adalah hal fisik (misalnya, bangunan, pesawat, mesin), kita dapat membangun sebuah mdel yang identik dalam bentuk tetapi skala lebih kecil. Ketika entitas yang akan dibangun adalah perangkat lunak, mdel kita harus mengambil bentuk yang berbeda. 12
Mdel Harus mampu mewakili infrmasi transfrmasi sftware, arsitektur dan fungsi yang memungkinkan transfrmasi terjadi, fitur yang diinginkan pengguna, dan Perilaku sistem dimana transfrmasi terjadi 13 Dua Kelas Mdel Dalam sftware engineering, dapat dibuat 2 kelas mdel yaitu: Mdel persyaratan dan Mdel desain Mdel persyaratan (atau analysis mdel) merepresentasikan persyaratan knsumen dengan menggambarkan sftware dalam 3 dmain yang berbeda: Dmain infmrasi Dmain fungsinal Dmain perilaku 14
Dua Kelas Mdel Mdel desain merepresentasikan karakteristik sftware yang membantu praktisi membangun dengan efektif: arsitektur, user interface dan detail cmpnent-level 15 Prinsip Pemdelan 1. Tujuan utama dari tim sftware adalah membangun sftware, bukan membuat mdel 2. Travel light jangan membuat mdel lebih dari yang dibutuhkan 3. Berusaha untuk menghasilkan mdel sederhana yang akan menjelaskan masalah atau perangkat lunak. 4. Membangun mdel yang memungkinkan untuk perubahan 5. Mampu menyatakan suatu tujuan secara eksplisit untuk setiap mdel yang dibuat. 16
Prinsip Pemdelan 6. Sesuaikan mdel yang Anda kembangkan untuk sistem yang dibangun. 7. Cbalah untuk membangun mdel yang berguna, tetapi lupakan membangun mdel yang sempurna. 8. Jangan menjadi dgmatis terhadap sintak dari mdel. Jika dapat menjelaskan knten dengan baik, representasi adalah hal sekunder. 9. Jika naluri Anda mengatakan mdel ini tidak tepat meskipun tampaknya baik-baik saja di atas kertas, Anda mungkin punya alasan untuk khawatir. 10.Dapatkan umpan balik secepat yang Anda bisa. 17 Prinsip Mdel Persyaratan 1. Dmain infrmasi dari masalah harus diwakili dan dipahami. 2. Fungsi apa yang dilakukan sftware harus didefinisikan. 3. Perilaku sftware (sebagai akibat event eksternal) harus direpresentasikan. 4. Mdel yang menggambarkan infrmasi, fungsi, dan perilaku harus dipartisi dengan cara mengungkapkan detail dalam layer berlapis (atau hirarkis). 5. Task analisis harus bergerak dari infrmasi penting menjadi detail implementasi 18
Elemen Mdel Persyaratan Elemen Scenari-based. Sistem ini dijelaskan dari sudut pandang pengguna menggunakan pendekatan berbasis skenari Elemen Scenari-based dari mdel persyaratan seringkali menjadi bagian pertama dari mdel yang dikembangkan. Dengan demikian, mereka berfungsi sebagai input untuk pembuatan elemen pemdelan lainnya. Elemen Class-based. Setiap penggunaan skenari menyiratkan satu set bjek yang dimanipulasi sebagai aktr yang berinteraksi dengan sistem. Obyek ini dikategrikan ke dalam kelas- yaitu sekumpulan hal-hal yang memiliki atribut yang sama dan perilaku yg umum. Kelas perlu berklabrasi dengansatu sama lain dan hubungan dan interaksi antara kelas 19 Elemen Mdel Persyaratan Elemen Perilaku. Perilaku sistem berbasis kmputer dapat dapat memiliki efek mendalam pada desain yang dipilih dan pendekatan implementasi yang diterapkan. Oleh karena itu, mdel persyaratan harus menyediakan unsur-unsur pemdelan yang menggambarkan perilaku. Elemen Flw-riented. Infrmasi berubah karena mengalir melalui sebuah sistem berbasis kmputer. Sistem ini menerima masukan dalam berbagai bentuk, menggunakan fungsi untuk mengubahnya, dan menghasilkan utput dalam berbagai bentuk. 20
Elemen Mdel Persyaratan 21 Mdel Desain Mdel desain perangkat lunak dianalg dengan rencana arsitek untuk rumah. Dimulai dengan mewakili keseluruhan yang akan dibangun (misalnya, render tiga dimensi dari rumah) dan perlahan-lahan menyempurnakan hal untuk memberikan bimbingan untuk membangun setiap detail (misalnya, tata letak pipa). Demikian pula, mdel desain yang dibuat untuk perangkat lunak menyediakan berbagai pandangan yang berbeda dari sistem. 22
Mdel Desain Desain adalah apa yang engineer ingin lakukan. Adalah tempat di mana kreativitas aturanpemangku kepentingan persyaratan, persyaratan bisnis, dan pertimbangan teknis semua menjadi perumusan suatu prduk atau sistem. Desain membuat representasi atau mdel perangkat lunak, tetapi tidak seperti mdel persyaratan (yang fkus pada penggambaran data yang dibutuhkan, fungsi, dan perilaku), mdel desain menyediakan detail tentang arsitektur perangkat lunak, struktur data, antarmuka, dan kmpnen yang diperlukan untuk mengimplementasikan sistem. 23 Dari Mdel Persyaratan ke Mdel Desain 24
Prinsip Mdel Desain 1. Desain harus dapat dilacak dari mdel persyaratan. 2. Selalu mempertimbangkan arsitektur sistem yang akan dibangun. 3. Desain data sama pentingnya dengan desain fungsi penglahan. 4. Antarmuka (baik internal maupun eksternal) harus dirancang dengan hati-hati. 5. Desain antarmuka pengguna harus disesuaikan dengan kebutuhan pengguna akhir. Namun, dalam setiap kasus, harus ditekankan pada kemudahan penggunaan. 25 Prinsip Mdel Desain 6. Desain level kmpnen harus independen secara fungsinal. 7. Kmpnen harus mudah digabungkan satu sama lain dan dengan lingkungan eksternal. 8. Representasi desain (mdel) harus mudah dimengerti. 9. Desain harus dikembangkan secara iteratif. Dengan setiap iterasi, desainer harus berusaha untuk menyederhanakan. 26
Prinsip Mdel Desain Ketika prinsip-prinsip desain diterapkan dengan benar, Anda membuat desain yang menunjukkan faktr kualitas baik eksternal dan internal. Faktr kualitas eksternal adalah sifat dari perangkat lunak yang dapat dengan mudah diamati leh pengguna (misalnya, kecepatan, kehandalan, ketepatan, kegunaan). Faktr kualitas internal yang penting bagi engineer perangkat lunak. Mengarah pada desain berkualitas tinggi dari perspektif teknis. Untuk mencapai faktr mutu internal, desainer harus memahami knsep desain dasar 27