Rekayasa Perangkat Lunak (Software Engineering) Graha Prakarsa, ST. MT. Sekolah Tinggi Teknologi Bandung Memahami pengertian kebutuhan perangkat lunak. Memahami apa yang dimaksud dengan analisis kebutuhan dan tahap pelaksanaannya. Mengetahui arti, fungsi, dan sistematika penulisan dokumen Spesifikasi Kebutuhan Perangkat Lunak. 1 2 Kebutuhan perangkat lunak kondisi atau kemampuan yang harus dimiliki oleh perangkat lunak untuk memenuhi apa yang disyaratkan atau diinginkan pemakai. Tiga buah jenis kebutuhan perangkat lunak Kebutuhanfungsional u gso a (functional o a requirement) e e Kebutuhan antarmuka (interface requirement) Kebutuhan unjuk kerja (performance requirement) Disebut juga kebutuhan operasional, yaitu kebutuhan yang berkaitan dengan fungsi atau proses transformasi yang harus mampu dikerjakan oleh perangkat lunak. Contoh: Perangkat lunak harus dapat menyimpan semua rincian data pesanan pelanggan. Perangkat lunak harus mampu mencetak laporan penjualan sesuai periode yang diinputkan. Perangkat lunak harus mampu menyajikan informasi jalur pengiriman terpendek. 3 4 1
Kebutuhan antarmuka yang menghubungkan perangkat lunak dengan elemen perangkat keras, perangkat lunak lain, atau basis data. Contoh: Akses ke basis data menggunakan ODBC (Open Data Base Connectivity). Perangkat untuk memasukkan data menggunakan keyboard, mouse, dan scanner. Kebutuhan yang menetapkan karakteristik unjuk kerja yang harus dimiliki oleh perangkat lunak, seperti kecepatan, ketepatan, atau frekuensi. Contoh: Waktu tanggap penyajian informasi maksimal selama satu menit. Perangkat lunak harus mampu mengolah data sampai 1 jutarecorduntuk setiap transaksi. Perangkat lunak harus dapat digunakan secara multi user sesuai otoritas yang diberikan kepada masing masing pemakai. 5 6 Proses mempelajari kebutuhan pemakai untuk mendapatkan definisi kebutuhan sistem atau perangkat lunak (IEEE, 1993). Proses untuk menetapkan fungsi dan unjuk kerja perangkat lunak, menyatakan antarmuka perangkat lunak dengan elemen elemen sistem lain, dan menentukan kendala yang harus dihadapi oleh perangkat lunak (Pressman, 2001). Pendefinisian kebutuhan yang baik dapat menjadi faktor sukses pelaksanaan pengembangan perangkat lunak. Sebaliknya akan menyebabkan banyak kegagalan. Menurut hasil survey DeMarco, 56% kegagalan proyek perangkat lunak adalah karena ketidaklengkapan pendefinisian kebutuhan. Menurut Davis (1993) Produk perangkat lunak yang tidak sempurna akan dh dihasilkan karena kesalahan pada saat menentukan spesifikasi kebutuhan. Jika kesalahan tersebut diketahui di akhir siklus hidup pengembangan, usaha untuk memperbaikinya akan sangat mahal (sekitar 82% dari total biaya perbaikan). 7 8 2
the real problem Requirements Design Implementation Testing correct correct design correct program correct functions erroneous erroneous design programming error correctable errors design based on erroneous program based on erroneous design uncorrectable errors imperfect program products program based on erroneous hidden errors Perangkat lunak yang dihasilkan tidak akan memenuhi kebutuhan pemakai yang sebenarnya. Intepretasi kebutuhan yang berbeda beda sehingga dapat menyebabkan ketidaksepakatan antara pelanggan dan pengembang, menyia nyiakan waktu dan biaya serta mungkin akan menimbulkan perkara hukum. Pengujian kesesuaian perangkat lunak dengan kebutuhan yang dimaksud tidak akan mungkin dilaksanakan dengan benar. Waktu dan biaya akan terbuang percuma untuk membangun perangkat lunak yang salah. 9 10 Tahap kebutuhan perangkat lunak dimulai dengan (Davis, 1993): Adanya masalah yang membutuhkan penyelesaian: orientasi aplikasi, misalnya inventory orientasi bisnis, misalnya produk baru, peramalan pendapatan orientasi peningkatan produk, misalnya pemeliharaan Munculnya ide untuk membuat sebuah perangkat lunak baru. Th Tahap kbth kebutuhan berakhir apabila deskripsi i lengkap dari perilaku eksternal perangkat lunak yang akan dibangun sudah didapat, termasuk dokumentasi seluruh antarmuka perangkat lunak dengan lingkungannya (perangkat keras, perangkat lunak lain, pemakai) yang dicatat dalam Spesifikasi Kebutuhan Perangkat Lunak (SKPL). 11 1. Mempelajari dan memahami persoalan 2. Mengidentifikasi kebutuhan pemakai 3. Mendefinisikan kebutuhan perangkat lunak 4. Membuat dokumen spesifikasi kebutuhan 5. Mengkaji ulang (review) kebutuhan 12 3
Siapa pemakai yang akan menggunakan perangkat lunak? Dimana perangkat lunak akan digunakan? Pekerjaan apa dari pemakai yang akan dibantu oleh perangkat lunak? Dari dan sampai mana cakupan pekerjaan tersebut, dan bagaimana mekanisme pelaksanaannya? Apa yang menjadi kendala atau keterbatasannya dilihat dari sisi teknologi yang akan digunakan atau dari sisi hukum dan standar? Cara yang digunakan: wawancaradengan pemakai observasi atau pengamatan lapangan Kuesioner mempelajari referensi atau dokumen dokumen yang digunakan, seperti dokumen hasil analisis dan perancangan sistem Hasil pemahaman masalah tersebut selanjutnya digambarkan dalam bentuk model model tertentu sesuai dengan jenis masalahnya. Sebagai contoh, untuk masalah bisnis dapat menggunakan flowmapatau business use case. 13 14 Tahap identifikasi kebutuhan pemakai (user requirement) ini pada prakteknya dilaksanakan bersamaan dengan pemahaman masalah. Cara yang digunakan pun relatif sama. Hanya saja, substansi yang ditanyakan biasanya adalah: Data atau informasi apa yang akan diproses? Fungsi apa yang diinginkan? Perilaku sistem apa yang diharapkan? Antarmuka apa yang tersedia (user interfaces, hardware interfaces, software interfaces, dan communications interfaces)? Untuk dapat menangkap kebutuhan pemakai dengan baik diperlukan kesamaan persepsi dengan cara: Komunikasi dan brainstorming yangintensif. Prototype perangkat lunak, atau screen snapshot. Data atau dokumen yang lengkap. 15 Saat mengidentifikasi kebutuhan pemakai, informasi yang diperoleh belum bl terstruktur. Pemakai akan mengungkapkan k apa yang dibutuhkannya dengan bahasa sehari hari yang biasa digunakan pemakai. Sebagai contoh, ungkapan kebutuhan pemakaidibagianakuntansi,misalnya: saya ingin data yang dimasukkan oleh Bagian Penjualan bisa langsung dijurnal. informasi neraca bisa saya lihat kapan saja. Pada tahap ini, kebutuhan pemakai yang belum terstruktur tersebut dianalisis, diklasifikasikan, dan diterjemahkan menjadi kebutuhan fungsional, antarmuka, dan unjuk kerja perangkat lunak. 16 4
Sebagai gambaran, kebutuhan data yang dimasukkan oleh Bagian Penjualan dapat langsung dijurnal setelah dianalisis, diklasifikasikan, dan diterjemahkan, mungkin memberikan hasil: 1. Kebutuhan fungsional: entry dan rekam data transaksi penjualan. retrieve nilai transaksi penjualan untuk periode tertentu (sesuai periode yang diinputkan melalui keyboard). rekam nilai akumulasi transaksi penjualan periode tertentu ke jurnal umum berikut account pasangannya (kas). 2. Kebutuhan antarmuka: antarmuka pemakai untuk merekam data penjualan. antarmuka pemakai untuk menyajikan dan menjurnal informasi nilai transaksi penjualan periode tertentu. jaringan lokal untuk menghubungkan perangkat lunak aplikasi di Bagian Penjualan dengan perangkat lunak aplikasi di Bagian Akuntansi. 3. Kebutuhan unjuk kerja: adaotoritas pemakaian ki perangkat lunak kdanakses data. proses jurnal hanya dapat dilakukan sekali setelah data transaksi penjualan direkam. Selanjutnya, kebutuhan tersebut diubah menjadi model atau gambar tertentu dengan memanfaatkan teknik analisis dan alat bantu tertentu. Sebagai gambaran, kebutuhan fungsional dapat dimodelkan dengan menggunakan: Data Flow Diagram, kamus data, dan spesifikasi proses jika menggunakan teknik terstruktur. Diagram Use Case dan skenario sistem jika menggunakan pendekatan objek. 17 18 Semua kebutuhan yang telah didefinisikan selanjutnya dibuatkan dokumentasinya, yaitu Spesifikasi Kebutuhan Perangkat Lunak (SKPL) atau Software Requirements Specification (SRS). SKPL yang dibuat harus dapat menyatakan secara lengkap apa yang dapat dilakukan oleh perangkat lunak, termasuk deskripsi lengkap dari semua antarmuka yang digunakan. SKPL bisa terdiri dari banyak dokumentasi yang saling melengkapi. Proses untuk memeriksa (validasi) SKPL apakah sudah konsisten, lengkap, dan sesuai dengan apa yang diinginkan pemakai. Proses ini mungkin dilakukan lebih dari satu kali, dan sering kali muncul kebutuhan kebutuhan baru dari pemakai. Untuk itu, diperlukan negosiasi i antara pihak pengembang dengan pemakai sesuai prinsip winwin solution sampai kebutuhan tersebut dapat disepakati kedua belah pihak. 19 20 5
SKPL adalah dokumen yang berisi pernyataan lengkap dari apa yang harus dilakukan atau dipenuhi oleh perangkat lunak, tanpa menjelaskan bagaimana hal tersebut dilaksanakan oleh perangkat lunak. Selain itu, SKPL pun berisi deskripsi lengkap dari semua antarmuka yangada dl dalam perangkat ktlunak. Sarana komunikasi antara pelanggan, pemakai, analis, dan perancang perangkat lunak. Dasar untuk merencanakan dan melaksanakan pengujian sistem. Acuan untuk melakukan perbaikan atau pengubahan perangkat lunak. 21 22 Memastikan kesamaan antara kebutuhan untuk pengembangan dengankebutuhan kb yang ditulis dl dalam dokumen. Mendefinisikan kerangka kerja bersama untuk proses proses pengembangan perangkat lunak. Memperjelas peran dan antarmuka bagi para pihak yang terlibat dalam proses proses pengembangan perangkat lunak. Memperjelas jenis dan isi dari dokumen. Mengenali tugas tugas, tahapan tahapan, baselines, aktivitas kaji ulang, dan dokumentasinya. Belajar dari pendekatan praktis yang diterapkan di dunia industri. Menghilangkan jebakan jebakan dan persoalan persoalan seperti yang dialami di masa lalu. Memberikan penjelasan yang berlebih lebihan dan berulangulang sehingga menjadi tidak jelas. Menggunakan istilah secara tidak konsisten. Menyatakan keterukuran kebutuhan secara tidak jelas, misalnya dengan menggunakan kata kata: minimal, maksimal, optimial, cepat, user friendly, mudah, sederhana, normal, efisien, fleksibel, dan/atau, dan lain lain, atau dan sebagainya. Menuliskan mimpi mimpi, yaitu hal hal yang tidak akan dapat dilakukan oleh perangkat lunak. 23 24 6
1. Benar 2. Tidak bias (unambiguous) 3. Lengkap 4. Dapat diverifikasi 5. Konsisten 6. Dapat dipahami oleh pelanggan 7. Dapat dimodifikasi 8. Dapat ditelusuri 9. Mempunyai keterangan (annotated) 10. Ringkas 11. Terorganisasi 1. Pemakai 2. Pelanggan 3. Analis Sistem (System Engineer) 4. Software Engineer 5. Pemrogram 6. Test Integration Group 7. Maintenance Group 8. Technical Support 9. Staf dan Clerical Work 25 26 1. PENDAHULUAN 1.1 Kegunaan 1.2 Ruang Lingkup gup 1.3 Definisi, Akronim, dan Singkatan 1.4 Referensi 1.5 Ikhtisar 2.DESKRIPSI UMUM 2.1 Perspektif Produk 2.2 Fungsi Produk 2.3 Karakteristik Pemakai 2.4 Batasan batasan 2.5 Asumsi dan Ketergantungan 3. KEBUTUHAN RINCI 3.1 Kebutuhan Antarmuka Eksternal 3.1.1 Antarmuka Pemakai 3.1.2 Antarmuka Perangkat Keras 3.1.3 Antarmuka Perangkat Lunak 3.1.4 Antarmuka Komunikasi 3.2 Kebutuhan Fungsional 3.2.1 Deskripsi Kebutuhan Fungsional 3.2.2 Diagram Konteks 3.2.3 Diagram Aliran Data 3.2.3.1 Diagram Aliran Data Proses 1 3.2.3.2 3 Diagram a Aliran Data Proses 2.. 3.2.3.n Diagram Aliran Data Proses n 3.2.4 Kamus Data 3.2.4.1 Tempat Penyimpanan Data 3.2.4.2 Aliran Data 3.2.5 Spesifikasi Proses 3.2.5.1 Proses 1 3.2.5.2 Proses 2.. 3.2.5.m Proses m 3.3 Kebutuhan Performansi 3.4 Kendala Perancangan 3.5 Atribut Sistem Perangkat Lunak 3.6 Kebutuhan Lain 27 Kebutuhan perangkat lunak dapat diartikan sebagai sesuatu (kemampuan, kondisi, kriteria) yang harus ada atau dipenuhi oleh perangkat lunak. Ada tiga jenis kebutuhan, yaitu fungsional, antarmuka, dan unjuk kerja. Kebutuhan perangkat lunak didefinisikan melalui proses analisis kebutuhan. Ada serangkaian tahap yang harus dilaksanakan sebelum dapat mendefinisikan kebutuhan ini. Hasil dari proses analisis kebutuhan dapat menjadi faktor sukses pelaksanaan pengembangan perangkat lunak. Kebutuhan perangkat lunak ditulis secara sistematis dalam suatu dokumen yang disebut SKPL, sehingga dapat dijadikan acuan oleh pemakai dan pengembang saat dan setelah pelaksanaan pembuatan perangkat lunak. Untuk itu, ada beberapa hal, seperti atribut dan sistematika, yang harus diperhatikan untuk dapat menuliskan SKPL yang baik. 28 7
AnalisisTerstruktur Setelah UTS kumpulkan fungsi fungsi/modul modul perangkat lunak apa saja yang nanti akan dikembangkan. Tugas dikumpulkan dalam bentuk power point (3 6 slide sudah cukup). Tugas dikumpulkan melalui email hari minggu tanggal 13 12 2015 jam 24.00 ke gprakarsa@gmail.com Tanggal 14 12 2015 (pertemuan setelah UTS) dipresentasikan. Isi tugas: 1. Nama dan anggota Kelompok, contoh: PASTI JADI CORP. 2. Kumpulan fungsi/modul, contoh: modul input data penjualan & pembelian, pencetakan laporan., dll. Intinya menceritakan software nya nanti memiliki fungsi apa saja. 29 30 Kelompok 1: Restoran (Ahmad) Kelompok 2: Hotel (Dejan) Kelompok 3: Bioskop (Dede) 31 8