Perancangan Perangkat Lunak -...
Transcript of Perancangan Perangkat Lunak -...
Perancangan Perangkat LunakI. Pendahuluan
II. Siklus Pengembangan Perangkat Lunak
Dr. Ahmad SabriUniversitas Gunadarma
• Software tidak hanya mengacu kepada program komputer• Software mencakup 3 hal
– Dokumentasi: mencakup spesifikasi kebutuhan fungsional, spesifikasi kebutuhan sistem, dokumen disain, dan dokumen pengujian
– Manual prosedur operasi standar mencakup manual instalasi software, manual operasi software, dan manual administrator sistem
– File-file konfigurasi software agar software dapat beroperasi dengan benar.
Berdasarkan peruntukannya, terdapat 3 jenis software:1. Software generik: adalah produk standalone yang dikembangkan
oleh perusahaan software seperti Microsoft, Oracle, IBM, dll, untuk dijual di pasaran. Software ini umumnya dapat beroperasi pada berbagai sistem operasi. Contoh: MS Office.
2. Software kustomisasi: diproduksi oleh perusahaan pengembang software berdasarkan kebutuhan spesifik klien mereka. Contoh: software ticketing untuk PT KAI, aplikasi m-banking untuk Bank XYZ, software kependudukan untuk Pemprov, dll.
3. Software tertanam (embedded): software yang sudah built-in pada perangkat elektronik sehingga dapat berjalan secara otomatis, seperti mesin cuci, oven microwave, dll.
Software besar
• Membutuhan lebih banyak waktu, usaha, dan dana untuk mendisain dan mengembangkannya
• Membutuhkan sumber daya manusia yang banyak• Membutuhkan kode-kode program yang banyak
Artinya: pengembangan software membutuhkan SDM, proses, dan teknologi, serta membutuhkan serangkaian tahapan aktivitas.Sehingga: Software Development adalah sebuah proyek.
• Berdasarkan perkembangan saat ini, software tidak hanya terdiri dari OS dan aplikasi
• Kategori yang sedang berkembang saat ini:– open world computing– open source software– NoSQL software– Multitenant software
• Semakin besar ukuran software (>100.000 baris coding), maka pengembangannya melibatkan banyak orang. Oleh karena itu harus mengikuti tahapan-tahapan rekayasa yang sistematis.
• Selama program ditangani secara manual dan tanpa tahapan yang benar, maka persentasi error sangat tinggi.
• Programmer jenius saja tidak cukup. Mereka harus mengikuti metodologi software engineering untuk menghasilkan software berkualitas.
Krisis SoftwareStudi di AS pada 1979 mengungkap:• Tidak ada standar dalam pemrograman menyebabkan sulitnya melakukan
debugging atas error yang terjadi.• Tidak adanya standar dalam pemrograman komputer menyebabkan
kenaikan biaya software sebesar 45%, karena software tidak sepenuhnya memenuhi kebutuhan user.
Studi oleh IBM tahun 1994 mengungkap:• 55% dari proyek software melebihi biaya yang ditetapkan• 68% melampaui jadwal yang telah ditetapkan• 88% memerlukan modifikasi setelah penyerahan kepada user. Hal ini akibat
kebutuhan user tidak dipahami secara utuh oleh developer
Setelah berkembangnya aplikasi berbasis Web, masalah ini semakin berlipat ganda. • Sekitar 63% aplikasi web melampaui budget• Sekitar 73% melampaui jadwal• Sekitar 53% tidak memberikan fungsi yang diinginkan• Sekitar 84% tidak memberikan keuntungan
(Cutter Consortium, 2000)
• Para profesional dan peneliti menyadari bahwa problem ini dapat teratasi dengan menggunaan metodologi ilmiah dalam pengembangan software.
• Metodologi ini menerapkan metode, tools, dan prosedur yang terdefinisi dengan baik dan diterapkan secara terorganisir dan disiplin
• Penerapan metodologi ini dalam pengembangan software disebut software engineering
Software Engineering (SE) terdiri dari:• Metode: mecakup aturan, langkah-langkah, dan teknik dalam
menyelesaikan siklus pengembangan software (software development life cycle)
• Tools: digunakan untuk mengotomasi metode. Tools ini berguna untuk membuat model dari disain software
• Prosedur: merupakan variasi urutan dari metode (waterfall, spiral, iteratif, dll)
• Singkatnya: Software Engineering menerapkan prinsip-prinsip rekayasa, manajemen, metode, tools, dan prosedur untuk menghasilkan software berkualitas tinggi dalam periode dan batasan-batasan yang telah ditentukan.
• Sasaran dari software engineer adalah menghasilkan software berkualitas tinggi
• Beberapa contoh produk software:– Accounts receivable processing– Order processing– Inventory monitoring and maintenance– Decision support for overnight funds– investment– Collateralized mortgage obligatien cost determination– Insurance reimbursement processing– Funds transfer processing– Early warning system for problems with critical success factors
Produk SE yang berkualitas adalah yang...• tepat waktu• terjangkau budget• fungsional (sesuai dengan apa yang diinginkan)• ramah pengguna• bebas kesalahan• fleksibel• mudah diadaptasikan
Siklus Pengembangan Perangkat Lunak/SPPL(Software Development Life Cycle /SDLC)
SPPL adalah serangkaian tahapan yang dilalui dalam mengembangkan perangkat lunak
Tahapan SPPL1. Analisa kelayakan
– Feasibility: apakah proyek ini dapat dilakukan?– Analisa pasar: apakah ada potensi pasar untuk proyek ini?
2. Kebutuhan– fungsional dan non-fungsional– menghimpun kebutuhan yang diinginkan pelanggan
3. Perencanaan– analisa biaya: berapa perkiraan biayanya?– work-breakdown: membagi kegiatan menjadi sub-subkegiatan yang lebih
kecil– penjadwalan: membuat jadwal untuk tahapan pengembangan– Pendefinisian software quality assurance: memastikan bahwa setiap tahap
dilalui dengan standar yang ditetapkan.
4. Disain– disain arsitektural: struktur dari sistem– disain interface antar sistem– disain algoritma untuk setiap bagian
5. Implementasi: proses coding6. Pengujian/testing
– uji unit: pengujian setiap unit software oleh masing-masing developer– uji integrasi: pengujian terhadap penggabungan unit-unit software– uji sistem: pengujian software pada lingkungan yang sesuai dengan
lingkungan operasinya– uji alpha: pengujian oleh pelanggan di tempat developer– uji beta: pengujian oleh pelanggan di tempat pelanggan– uji akseptasi: pengujian apakah s/w ini dapat diterima oleh pelanggan– uji regresi
7. Delivery– instalasi di lokasi pengguna– pelatihan bagi pengguna– layanan help desk
8. Maintenance– memperbaharui dan meningkatkan kemampuan software untuk
memastikan pemanfaatan yang berkelanjutan.
Beberapa model SPPL
1. Code and FixBiasanya digunakan untuk software kecil, atau dengan deadline yang sangat singkat. Developer menulis kode dan memperbaiki error yang muncul. Tidak ada analisa kebutuhan dan disain
2. Waterfall
3. V-model
4. Iteratif
Aplikasi
• Aplikasi adalah kumpulan dari program yang mengotomasi suatu tugas
Aspek-aspek dalam Aplikasi
• Karakteristik• Ketanggapan (responsiveness)• Jenis
Aspek Karakteristik
Karakteristik adalah aspek umum yang ada pada semua aplikasi, yaitu:1. Data2. Proses3. Batasan4. Antarmuka (interface)
1. Data
Semua aplikasi:• Bekerja atas data dan membutuhkan input, output,
penyimpanan dan penarikan data.• memuat perintah-perintah (proses) yang mentransformasikan
data menjadi informasi berdasarkan batasan-batasan yang ditetapkan
• memiliki beberapa antarmuka manusia dan antarmuka komputer
• Entitas adalah objek yang dinyatakan dalam sebuah deskripsi• Data adalah deskripsi spesifik atas entitas • Kumpulan deskripsi sejenis membentuk atribut• Contoh entitas: pelanggan, mahasiswa• Contoh atribut: alamat, tanggal lahir
Data
Input
Output
Penyimpanan dan penarikan
logikal
fisik
relasional
hirarkis
berorientasi objek
jaringan
Contoh hubungan Entitas - Atribut
Contoh relasi antar-entitas
Contoh detail relasi antar-entitas
Pemodelan data secara hirarki antar entitas
Pemodelan data secara networked
Pemodelan data secara object oriented
2. Proses
Proses adalah barisan instruksi ataupun sekumpulan kejadian yang dioperasikan pada data
3. Batasan
Batasan didefinisikan dalam 5 kategori:1. Prerequisites: kondisi yang harus terpenuhi agar proses
dijalankan2. Postrequisites: kondisi yang harus dipenuhi agar proses
dinyatakan lengkap3. Waktu4. Struktur5. Kontrol6. Inferensi
Contoh batasan prerequisites
Contoh batasan berdasar waktu
Contoh batasan berdasar struktur
4. Antarmuka
Jenis:1. Manusia2. Komputer/terotomasi
• Antarmuka manusia adalah cara aplikasi berkomunikasi dengan manusia sebagai pengguna.
• Paling sulit dirancang dan sangat rentan terhadap perubahan teknologi
rancangan yang buruk rancangan yang baik
• Antarmuka komputer/terotomasi adalah cara komputer berinteraksi dengan komputer/perangkat lain
• Antarmuka komputer cenderung berbeda-beda untuk pabrikan yang berbeda. Untuk mengatasinya, diperlukan standarisasi
• Contoh: – standar untuk antarmuka LAN didefinisikan oleh IEEE– standar untuk open system interface (OSI) didefinisikan oleh ISO
• Tidak terstandarkan: GUI
Aspek ketanggapan
Ketanggapan aplikasi (application responsiveness) berkaitan dengan berapa lama waktu yang dibutuhkan sistem untuk bereaksi dan memberi respon atas tindakan dari pengguna.
3 jenis desain ketanggapan aplikasi:1. berorientasi batch2. on-line3. real-time
Aplikasi batch
• Aplikasi berdasar batch memproses transaksi secara berkelompok (batch).
• Transaksi yang masuk ditampung dalam periode waktu tertentu, setelah itu diproses pada jadwal yang telah ditentukan.
Alur pemrosesan aplikasi berdasar batch
Aplikasi on-line
• Pengertian on-line dalam konteks ini berbeda dengan pengertian on-line dalam konteks jaringan
• Pemrosesan secara on-line berarti: program tetap berada dalam memori, sehingga dapat langsung merespon transaksi tanpa loading kembali
Alur pemrosesan aplikasi dengan pendekatan on-line
Batch vs on-line
• Aplikasi berdasar batch: – passing data antar modul dilakukan dengan menggunakan file– tidak ada syntax controlling pada entri transaksi
• Aplikasi on-line: – passing data antar modul dilakukan secara langsung– ada syntax controlling pada entri transaksi
Aplikasi real-time
• Aplikasi real-time adalah aplikasi on-line di mana perubahan data direspon langsung oleh sistem, sehingga aplikasi memberikan informasi berdasarkan kondisi terkini dari data.
• Contoh: mesin ATM, mesin barcode, reservasi tiket pesawat, dll.