Upload
others
View
104
Download
12
Embed Size (px)
REKAYASAPERANGKATLUNAK
FAJRIYAH, S.KOM., M.KOM.STMIK PRABUMULIH
REKAYASA
PERANGKAT
LUNAK
Rekayasa Sistem Rekayasa perangkat lunak terjadi sebagai konsekuensi dari suatu
proses yang disebut rekayasa sistem.
Rekayasa sistem memfokuskan diri pada berbagai elemen, analisis, perancangan, dan pengorganisasian elemen-elemen tersebut ke dalamsuatu sistem yang dapat menjadi sebuah produk, jasa, atau teknologiuntuk mentransformasi informasi atau kontrol.
Proses rekayasa sistem disebut rekayasa informasi bila konteks kerjarekayasa berfokus pada perusahaan bisnis. Pada saat produk akandibuat, proses itu disebut rekayasa produk.
Rekayasa Sistem (2)
Rekayasa informasi bertujuan menentukan arsitektur yang memungkinkan suatu bisnis menggunakan informasi secara efektif.
Rekayasa informasi menghasilkan suatu rencana menyeluruh gunamengimplementasikan arsitektur- arsitektur berikut :
¤ arsitektur data
¤ arsitektur aplikasi
¤ infrastruktur teknologi,
menyangkut HW dan SW untuk mendukung aplikasi dan data
Rekayasa Sistem (3)
Rekayasa produk dimaksudkan untukmenterjemahkan keinginan pelanggan denganserangkaian kemampuan yang terbatas kedalam produk yang dapat bekerja (operasional).
Lingkup Proyek Perangkat Lunak
¤ Pengembangan perangkat lunak
¤ Pengembangan perangkat lunak, danpengadaan perangkat keras
¤ Pembenahan sistem prosedur, danpengembangan perangkat lunak
¤ Pembenahan sistem prosedur, pengembangan perangkat lunak danpengadaan perangkat keras
Rekayasa Perangkat Lunak.. Apa
sih ??
• Inti yang akan dipelajari di RPL adalah
Mempelajari teknik-teknik dan tools yang digunakandalam pembangunan perangkat lunak
Mata kuliah yang mendasari penguatan pemahaman dalambelajar RPL :
– IMK
– Konsep pemrograman
– Algoritma pemrograman
– Basisdata
Definisi Perangkat Lunak
IEEE-Standar Glossary of Software Engineering Terminology, 1990:
(Institute of Electrical and Electronic Engineering )
• Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.
• Terjemahan bebasnya:
Perangkat lunak merupakan kumpulan dari berbagai item (program, prosedur, dan dokumen data yang saling terkait) yang merepresentasikan masalah di dunia nyata yang dikonfigurasikan dalam satu bentuk aplikasi yang harusdikerjakan komputer.
Produk Perangkat Lunak (1)
• Perangkat lunak tidak sama dengan produkperangkat keras
• Produk perangkat lunak dikembangkan (developed)atau direkayasa (engineered) Tidak dipabrikkanseperti pabrik perangkat keras, misal komputer,mobil.
• Perangkat lunak secara pemakaian tidak pernahaus/usang layaknya suku cadang perangkat keras
Produk Perangkat Lunak (2)
Perangkat lunak sebagian besar dikembangkan/dibangunberdasarkan pemesanan hanya sebagian kecil yang dibuatsecara paket
Bentuk produk perangkat lunak
Umum/generik
Dibuat untuk keperluan yang luas dan tidak berdasarkanpada permintaan pihak tertentu.
Pesanan/custome/by tailor
Dibuat spesifik sesuai sistem yang dibutuhkan olehpemesan
Produk Perangkat Lunak (3)
• Karakteristik perangkat lunak yang baik:
- Mempunyai daya guna yang tinggi (usability)
- Mempunyai kinerja sesuai fungsi yang dibutuhkan pemakai
- Mampu diandalkan (be reliable)
- Mudah dirawat/diperbaiki (maintenability)
- Lebih efisien
- Mempunyai antarmuka yang menarik (eye cathcing user interface)
- Mempunyai siklus hidup yang cukup lama (long life time)
Jenis-jenis Aplikasi PL (1)
• Perangkat lunak sistemSekumpulan program yang ditulis untuk melayani program-program lain
Misal: sistem operasi, driver, kompilator, interpreter, utility, dll
• Perangkat lunak waktu nyata (realtime)Perangkat lunak yang berfungsi untuk memonitor, menganalisis, mengontrol dan memberikan laporan tentang kejadian dunianyata dan meresponnya dalam waktu kurang dari 1 menit.
Misal: pengontrol arus udara, pengontrol reaksi nuklir,dll
Jenis-jenis Aplikasi PL (2)
• Perangkat lunak teknik dan ilmu pengetahuan
(scientific & engineering software)
Perangkat lunak yang menangani bidang teknik dan ilmupengetahuan secara rinci
Misal: simulasi, astronomi, vulkanologi, analisis otomatif, dinamika orbit pesawat ruang angkasa, biologi molekuler, otomasi pabrik, dll
• Embeded system
Perangkat lunak yg ditempelkan/dilekatkan padaperangkat lainnya (lunak/keras).
Misal: pada kamera digital, GPS, automobil, microwave, kulkas cerdas, dll
Jenis-jenis Aplikasi PL (3)
• Perangkat lunak pengolah data (data processing)
Perangkat lunak yang khusus digunakan untuk mengolahdata dan menghasilkan suatu keputusan tertentu.
Misal: billing telepon, pengolah statistik
• Perangkat lunak sistem informasi (information system)
Perangkat lunak yang mampu memberi informasi darisuatu sistem secara lebih detail.
Misal: web site, perpustakaan digital, dll
Jenis-jenis Aplikasi PL (4)
• Perangkat lunak sensorPerangkat lunak yang mampu mengukur dan mengatursuatu keadaan khusus, kadang digolongkan dalamembedded system juga.
Misal: pengatur cuaca, pengatur suhu ruangan, dll
• Perangkat lunak komunikasi(communication software)Perangkat lunak yang berfungsi untuk menghubungkanatau mengkomunikasikan suatu objek satu dengan lainnya.
Misal: router, handphone, dll
Jenis-jenis Aplikasi PL (5)
• Perangkat lunak kantor (offices)Perangkat lunak yang dirancang untuk membantutugas-tugas perkantoran.Misal: word processing, spreedsheet processing, video conferences, dll
• Perangkat lunak pengolah grafisPerangkat lunak yang digunakan untuk melakukanperancangan grafisMisal: pembuatan film, pembuatan poster
Jenis-jenis Aplikasi PL (6)
Perangkat lunak kecerdasanPerangkat lunak yang menggunakan algoritmauntuk memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau analisissecara langsung
Misal: sistem pakar, game strategi, jaringansaraf tiruan, dll
Evolusi Perangkat Lunak (1)
• Perangkat lunak telah semakin berkembang sejakpertama kali diciptakan tahun 1945
• Fokus utama pembuatannya
Untuk mengembangkan praktik dan teknologidalam meningkatkan produktivitas para praktisipengembang PL dan kualitas aplikasi yg dapatdigunakan oleh pemakai
• Evolusi dipicu adanya tuntutan bisnis danlingkungan kerja yang berkembang sangat dinamis
Evolusi Perangkat Lunak (2)
• Era I (1945 – 1960):- Munculnya teknologi perangkat keras di tahapawal- Penggunaan perangkat lunak yg berorientasi batch- Distribusi perangkat lunak masih terbatas- Didominasi perangkat lunak model custome- Munculnya istilah software engineering (akhir1950- an/awal 1960-an)- Belum didefinisikan secara jelas tentang aspeksoftware engineering
Evolusi Perangkat Lunak (3)
• Era II (1960 – 1970)
- Disebut era krisis perangkat lunak (software crisis).
- Penggunaan perangkat lunak sudah meluas
- Telah hadir perusahaan yang membangun software (software house)
- Perangkat lunak sdh mengenal multiprogram, multiuser, real-time, dan penggunaan database.
- Banyak project PL yg gagal:
- Over budget/anggaran
- Meledaknya Roket Ariane kesalahan perintah dlm PL
Dua konferensi tentang software engineering:
- Disponsori Komite Sains NATO
- Tahun 1968 dan 1969
- Profesi resmi bidang software engineering
Evolusi Perangkat Lunak (4)
Era III (1975 – 1985)
- Pengembangan sistem mengarah ke konsepsistem terdistribusi.
- Penerapan sistem embeded intelligence
- Harga perangkat keras sudah jauh lebihmurah sehingga pemakaian meluas
- Pemanfaatan jaringan global dan lokal sertasudah diperkenalkan komunikasi digital
Evolusi Perangkat Lunak (5)
Era IV (1985 – 2000)- Kemampuan PC sudah setara dengan komputer
mainframe
- Penerapan teknologi yang berorientasi padaobjek
- Implementasi sistem pakar,
- Jaringan saraf tiruan
- Komputasi paralel
- Jaringan komputer sudah semakin canggih
Evolusi Perangkat Lunak (6)
• Era V (2000 – sekarang)- Penggunaan media digital- Media web berkembang pesat- Wireless sudah meluas- Teknologi meluas hingga di mobile computing, mobile programming- Perangkat keras sudah semakin kecil namunpowerfull- Dilakukan berbagai penelitian yang menghasilkan model proses/paradigmapengembangan PL utk mengatasi krisis PL
Era V (2000 – sekarang)
- Muncul teknik-teknik baru:
- Pemrograman terstruktur
- Pemrograman berientasi objek
- Perangkat bantu pengembangan (CASE tools)
- Standarisasi PL
- Metode UML
Perangkat Lunak adalah suatu aplikasi program komputeryang di dalamnya terdapat: program itu sendiri, konfigurasi yang digunakan, dokumentasi yang menjelaskan struktur sistem, dokumentasi yang menjelaskan bagaimana menggunakan
sistem, dan informasi tentang versi terbaru
Produk Perangkat Lunak dikembangkan sesuai dengansiapa pemakai perangkat lunak tersebut.
Produk Perangkat lunak dibagi menjadi: Produk Generik, yang dijual pada pasar terbuka Produk Spesifik, yang dibuat dan dijual sesuai pesanan dari
pemakai.
Definisi Perangkat Lunak
Software is developed or engineered, not manufactured
Software doesn’t “wear out”
Most software are custom built, not assembled from existing component
Karateristik Perangkat Lunak
Tidak memiliki waktu yang cukup dalam mengumpulkan data pada proses pembuatan perangkat lunak.
Ketidakpuasan user pada S/W yang dibuat
Kualitas S/W terkadang meragukan.
Sulit dalam memaintenance S/W sekarang
Problem dalam Pembuatan
Perangkat Lunak
Perangkat Lunak Berdasarkan Pemakai Generik: Perangkat lunak yang bisa digunakan
secara umum Spesifik: Perangkat lunak yang dibuat
berdasarkan pesanan
Perangkat Lunak Berdasarkan Fungsional Interfacing Operating System Perangkat Lunak Aplikasi CASE Tools
Macam-Macam Perangkat
Lunak
Generik: Perangkat lunak yang digunakan secara umum. Sebagai contoh: Operating System, seperti Microsoft Windows, Word Processing, seperti Microsoft Word, WordPad Spreadsheet, seperti Microsoft Excell Beberapa aplikasi khusus bisa dibuat menjadi generik dengan
membuatnya general dan mudah digunakan siapa saja sepertiaplikasi akuntansi, aplikasi sekolah, dan lain-lain
Spesifik: Perangkat lunak yang dibuat berdasarkanpesanan. Banyak Software House yang menghasilkanperangkat lunak ini berdasarkan proyek/pesanantertentu. Sebagai contoh: Aplikasi Rumah Sakit, AplikasiPendidikan, Aplikasi Kesehatan, dan lain-lain
Perangkat Lunak
Berdasarkan Pemakai
INTERFACING: Perangkat lunak inimenghubungkan suatu perangkat kerastertentu, seperti hardware driver, interfaces dengan perangkat keras lain. Misal: Driver untuk Kamera, Handphone atau perangkat
keras lainnya
Program interface seperti Sensor Suhu denganLM555, PPI 8255, Komunikasi Serial RS232.
Perangkat Lunak
Berdasarkan Fungsionalnya
OPERATING SYSTEM: Perangkat lunak yang menjalankan sistem komputer danmerupakan interface dari sistem komputerdan program aplikasi yang berjalandiatasnya.
Beberapa OS yang dikenal secara luas: Microsoft Windows Linux dan varians-nya, seperti Redhat, SuSE,
Mandrake, Debian, dsb. Unix FreeBSD Macintosh (Apple)
Perangkat Lunak
Berdasarkan Fungsionalnya
PROGRAM APLIKASI: program inidigunakan untuk keperluan tertentu, yang tujuannya membantu pekerjaan manusiamenjadi lebih mudah. Program ini yang banyak dibahas dalam pembuatanperangkat lunak.
Program Aplikasi ini tergantung padakebutuhan dari program itu sendiri, seperti: Program Office Program Graphics Design Program Multimedia dan lain-lain
Perangkat Lunak
Berdasarkan Fungsionalnya
Perangkat lunak harus memberikan bantuandalam merepresentasikan dan mengakses file-file eksternal yang dibuat dengan alat bantu lain.
Persyaratan Fungsional dan Non-Fungsional
Persyaratan User
Persyaratan Sistem
Dokumentasi Persyaratan Perangkat Lunak
Persyaratan Perangkat Lunak
Persyaratan Fungsional: Pernyataan layanantentang bagaimana sistem harus bereaksiterhadap input, sistem harus berlaku padasituasi-situasi tertentu. Secara khususmenyatakan apa yang tidak boleh dilakukansistem.
Persyaratan Non Fungsional: Pernyataantentang batasan layanan dan fungsi yang diberikan sistem.
Persyaratan Domain: Persyaratan yang datang dari domain aplikasi sistem danmerefleksikan karakteristik domain tersebut
Persyaratan Fungsional dan
Non-Fungsional
Persyaratan Produk: persyaratan yang diambil dari spesifikasi produk, sepertipersyaratan hardware untuk mendukungkinerja.
Persyaratan Organisasi: persyaratan yang berasal dari kebijakan dan prosedur padaorganisasi.
Persyaratan Eksternal: Persyaratan yang berasal dari faktor eksternal terhadap sistemdan proses pengembangannya.
Persyaratan Non Fungsional
Kecepatan dalam: Transaksi yang diproses/detik, waktu tanggal user/event atau waktu refresh layar
Ukuran dalam: KB atau jumlah Chip RAM Kemudahan penggunaan dalam: waktu pelatihan
atau jumlah frame help Kehandalan dalam: waktu rata-rata kegagalan,
probabilitas ketidaksediaan, kecepatan terjadinyakegagalan, atau ketersediaan
Ketahanan dalam: waktu start ulang setelahkegagalan, prosentase event yang gagal, atauprobabilitas korupsi data
Portabilitas dalam: prosentase pernyataantergantung target, atau jumlah sistem target
Ukuran Persyaratan Non
Fungsional
Mendeskripsikan persyaratan fungsional dannon-fungsional sehingga dapat dipahami olehuser yang tidak memiliki pengetahuan teknik.
Persyaratan user harus ditulis memakai bahasanatural, formal dan diagram intuitif yang sederhana. Persyaratan user tidak bolehdidefinisikan memakai model implementasi.
Masalah yang sering muncul: Tidak Adanya Kejelasan
Kesimpang-siuran Persyaratan
Penggabungan Persyaratan
Persyaratan User
Persyaratan sistem ini lebih rinci daripersyaratan user, dan berfungsi sebagai dasarkontrak untuk implementasi sistem.
Persyaratan sistem ini digunakan sebagai titikawal perancangan sistem.
Bahasa natural banyak digunakan dalammendefinisikan persyaratan sistem
Persyaratan Sistem
Rekayasa Perangkat
Lunak
Rekayasa Perangkat Lunak adalah disiplin ilmuyang membahas semua aspek produksiperangkat lunak, mulai tahap awal spesifikasisistem sampai pemeliharaan sistem setelahdigunakan.
Perekayasa Perangkat Lunak memakaipendekatan yang sistematis dan terorganisiruntuk menghasilkan perangkat lunakberkualitas tinggi.
Definisi Rekayasa
Perangkat Lunak
Meningkatkan keakuratan, performance & efficiency produk secara keseluruhan dalampengembangan
Menerapkan metodologi yang terdefinisidengan baik untuk resolusi software
Tujuan Rekayasa Perangkat
Lunak
Ilmu Komputer berhubungan dengan teori danmetode yang mendasari sistem komputer danperangkat lunak. Teori ini merupakan suatu model fisik dan analitik untuk menyelesaikan kasus yang spesifik.
Rekayasa Perangkat Lunak berhubungan denganmasalah-masalah praktis untuk menghasilkan suatuperangkat lunak. Pendekatan dilakukan denganmodel bisnis dan strategi bisnis suatu perangkatlunak.
Perbedaan Rekayasa Perangkat
Lunak dan Ilmu Komputer
Rekayasa Sistem berhubungan dengan semuaaspek pengembangan sistem berbasiskomputer, termasuk perangkat keras, perangkatlunak dan rekayasa proses.
Rekayasa Perangkat Lunak adalah bagian dariRekayasa Sistem
Perbedaan Rekayasa Perangkat
Lunak dan Rekayasa Sistem
Proses perangkat lunak adalah serangkaiankegiatan yang tujuannya untukmengembangkan atau evolusi perangkat lunak.
Kegiatan-kegiatan tersebut adalah:
Spesifikasi perangkat lunak,
Pengembangan perangkat lunak,
Validasi perangkat lunak,
Evolusi perangkat lunak
Proses Perangkat Lunak
Model proses perangkat lunak adalahrepresentasi yang disederhanakan dariproses perangkat lunak yang dipresentasikan dari sudut pandangtertentu
Paradigma pengembangan model sistem : Waterfall Development Model Evolutionary Development Model Spiral Development Model Incremental Development Model
Model Pengembangan Sistem
Waterfall Development Model
Development activities are performed in sequential order, with possibly minor overlap, and minimal or no iteration between activities.
User needs are determined, requirements are defined, and the full system is designed, built, and tested for ultimate delivery at one point in time. Some people refer to this as a stage-wise model.
Pendekatan Waterfall Model
Pengembangan Eksplorasi:
Sistem berubah dengan adanya fitur-fiturtambahan dari user.
Prototype yang dapat dibuang (Throw-Away):
Memahami persyaratan user untuk mendapatkandefinisi persyaratan yang lebih baik.
Evolutionary Development
Model
Evolutionary Development
Model
Penjelasan
Garis Besar
Spesifikasi
Pengembangan
Validasi
Versi Awal
Versi Menengah
Versi Akhir
Masalah-masalah dalam PengembanganEvolusioner Proses tidak dapat dilihat
Sistem seringkali mempunyai struktur yang tidakbaik
Mungkin diperlukan alat bantu khusus
Model pengembangan evolusioner inicocok untuk aplikasi yang kecil dan life-cycle yang pendek.
Evolutionary Development
Model
Spiral Development Model
Spiral Model Description
The development spiral consists of four quadrants
Quadrant 1: Determine objectives, alternatives, and constraints.
Quadrant 2: Evaluate alternatives, identify, resolve risks.
Quadrant 3: Develop, verify, next-level product.
Quadrant 4: Plan next phases.
Spiral Development Model
Incremental Development Model
Proses perangkat lunak dibagi menjadiserangkaian increment yang dikembangkansecara bergantian.
Keuntungan Pengembangan Incremental User tidak perlu menunggu seluruh sistem dikirimkan,
karena increment pertama mempunyai persyaratan kritisdan perangkat lunak segera dapat digunakan.
User dapat memakai increment pertama sebagaiprototype
Resiko kegagalan proyek secara keseluruhan lebih rendah Pengujian paling ketat diberlakukan pada increment
pertama.
Incremental Development
Model
Studi Kelayakan
Elisitasi dan Analisis Persyaratan
Spesifikasi Persyaratan
Validasi Persyaratan
Fase Utama Persyaratan
Perangkat Lunak
Spesifikasi Persyaratan Perangkat Lunak
Studi
Kelayakan
Elisitasi dan
Analisis
Persyaratan
Spesifikasi
Persyaratan
Validasi
PersyaratanLaporan
KelayakanModel Sistem
Persyaratan
User dan Sistem
Dokumen
Persyaratan
Perancangan Arsitektural
Spesifikasi Abstrak
Perancangan Interface
Perancangan Komponen
Perancangan Struktur Data
Perancangan Algoritma
Kegiatan Perancangan
Perangkat Lunak
Perancangan dan ImplementasiPerangkat Lunak
SpesifikasiPersyaratan
PerancanganArsitektural
SpesifikasiAbstrak
PerancanganInterface
PerancanganKomponen
PerancanganStruktur Data
PerancanganAlgoritma
ArsitekturSistem
SpesifikasiPerangkat Lunak
SpesifikasiInterface
SpesifikasiKomponen
SpesifikasiStruktur data
SpesifikasiAlgoritma
Validasi Perangkat LunakPengujian
Unit
Pengujian
Modul
Pengujian
Sub Sistem
Pengujian
Sistem 1
Pengujian
Sistem 2
PengujianKomponen
Pengujian Integrasi Pengujian User
Evolusi Perangkat Lunak
Definisi
Persyaratan
Sistem
Nilai Sistem
Yang Ada
Pengajuan
Perubahan
Sistem
Modifikasi
Sistem
Sistem
Yang Ada
Sistem
Baru
Metodologi Pengembangan
Perangkat Lunak
Ketidak efisienan, kurang berhasilnya bahkan kegagalanpengembangan sistem pada pertengahan tahun 60 sampai70-an.
Tidak tersedianya teknik pengembangan perangkat lunakyang baik.
Metodologi-metodologi pengembangan perangkat lunakyang cukup baik mulai muncul pada awal tahun 70-an.
Pengembangan perangkat lunak
Pengembangan Perangkat Lunak
proses membuat suatu perangkat lunak baru untukmenggantikan perangkat lunak lama secara keseluruhanatau memperbaiki perangkat lunak yang telah ada.
Metodologi pengembangan perangkat lunak
suatu proses pengorganisasian kumpulan metode dankonvensi notasi yang telah didefinisikan untukmengembangkan perangkat lunak.
suatu strategi pengembangan yang memadukanproses, metode, dan perangkat (tools).
Tujuan untuk membantu menghasilkan perangkatlunak yang berkualitas.
Komponen Metodologi Pengembangan Perangkat
Lunak
Menurut Pressman (1997) Komponen metodologi pengembanganperangkat lunak dapat dibagi dalam tiga unit, yaitu :
Metode, yaitu suatu cara atau teknik pendekatan yang sistematik yang dipergunakan untuk mengembangkan perangkat lunak. Metode inimencakup : Perencanaan proyek dan perkiraan, analisis keperluansistem dan perangkat lunak, perancangan struktur data, arsitekturprogram, prosedur algoritma, Coding, uji coba dan pemeliharaan.
Alat bantu (Tools), yaitu alat-alat (manual atau otomatis) yang mendukung pengembangan perangkat lunak. Terdapat 2 alat Bantu yang dapat digunakan yaitu : alat Bantu manual dan alat Bantu otomatis.
Prosedur, yang dipergunakan untuk mendefinisikan urut-urutan pekerjaan (daur) dari metode dan alat bantu tersebut.
Daur Hidup Pengembangan PerangkatLunak
Phase
ImplementasiDesainAnalisis Pengujian Perawatan
Tahapan
Tahapan analisis dan perancanganmerupakan tahapan yang paling penting tahapan awal yang pentingdalam suatu paradigma pemgembangan perangkat lunak, karenasangat mempengaruhi tahapan selanjutnya Tahap implementasi perangkat lunakbertujuan untuk menerapkan spesifikasi kebutuhan perangkat lunakke dalam bahasa pemrograman tertentu. Tahap pengujian perangkat lunakdilakukan untuk menemukan kesalahan (bug) yang mungkin terdapatdi dalam sebuah perangkat lunak. Tahap perawatan perangkat lunakfokusnya adalah pengubahan. Ada tiga pengubahan yaitu : pembetulan, adaptasi (perbaikanterhadap lingkungan) dan perluasan (penambahan karenapermintaan pemakai).
Proses Pengembangan Perangkat Lunak
suatu proses dimana kebutuhan pemakai diterjemahkan menjadi produkperangkat lunak.
Proses ini mencakup aktivitas penerjemahan kebutuhan pemakai menjadikebutuhan perangkat lunak, transformasi kebutuhan perangkat lunakmenjadi desain, penerapan desain menjadi kode program, uji coba kodeprogram, dan instalasi serta pemeriksaan kebenaran perangkat lunak untukoperasional (IEEE. 1990).
Tahapan proses pengembangan perangkat lunak :
1. Menentukan APA yang harus dikerjakan oleh perangkat lunak dalamsatu rentang waktu tertentu.
2. Mendefinisikan BAGAIMANA perangkat lunak dibuat, mencakuparsitektur perangkat lunaknya, antar muka internal, algoritma, dansebagainya.
3. Penerapan (penulisan program) dan pengujian unit-unit program.
4. Integrasi dan pengujian modul-modul program.
5. Validasi perangkat lunak secara keseluruhan (pengujian sistem).
Siklus Pengembangan Perangkat Lunak
• Periode waktu yang diawali dengan keputusan untukmengembangkan produk perangkat lunak dan berakhirsetelah perangkat lunak diserahkan. Umumnya sikluspengembangan ini terdiri dari tahap analisis kebutuhan, perancangan, penerapan, pengujian, dan instalasi sertapemeriksaan.
• Periode waktu yang diawali dengan keputusan untukmengembangkan produk perangkat lunak dan berakhirsaat produk tidak dapat ditingkatkan lebih jauh lagi olehpengembang.
Model Pengembangan PerangkatLunak
Linier Squensial model
Prototyping Model MPSI
PROTOTYPING.ppt
RAD Model MPSI RAD.ppt
Spiral Model MPSI SPIRAL.ppt
Model Proses Pengembangan Perangkat
Lunak
Linear Sequential Model
Cakupan aktivitas :
1. Rekayasa sistem dan Analisis (Sistem Engineering and Analysis)
2. Analisis kebutuhan perangkat lunak (Software Requirements Analysis)
3. Perancangan (Design)
4. Pembuatan kode (Coding)
5. Pengujian (Testing)
6. Pemeliharaan (Maintenance)
• Corrective Maintenance : Mengoreksi kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan
• Adaptive Maintenance : Penyesuaian dengan lingkungan baru, misalnyasistem operasi atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahan printer driver
• Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan olehpemakai. Pemeliharaan ditujukan untuk menambah kemampuannya sepertimemberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
Kelemahan model linear sequential: 1. Proyek yang sebenarnya jarang mengikuti alur sekuensial
seperti diusulkan, sehingga perubahan yang terjadi dapatmenyebabkan hasil yang sudah didapat tim harus diubahkembali/iterasi sering menyebabkan masalah baru.
2. Linear sequential model mengharuskan semua kebutuhanpemakai sudah dinyatakan secara eksplisit di awal proses, tetapikadang-kadang ini tidak dapat terlaksana karena kesulitan yang dialami pemakai saat akan mengungkapkan semuakebutuhannya tersebut.
3. Pemakai harus bersabar karena versi dari program tidak akandidapat sampai akhir rentang waktu proyek.
4. Adanya waktu menganggur bagi pengembang, karena harusmenunggu anggota tim proyek lainnya menuntaskanpekerjaannya.
PROTOTYPING
Prototype memberikan ide bagi pembuat atau pemakaipotensial tentang cara sistem berfungsi dalam bentuklengkap.
Jenis Prototyping Type I
Langkah-langkahnya :1. Mengidentifikasikan kebutuhan pemakai
Analis sistem mewawancarai pemakai untuk menentukan apa yang diinginkanpemakai terhadap sistem.
2. Mengembangkan prototypingAnalis sistem menggunakan satu atau lebih alat prototyping untuk mengembangkanprototyping.
cth : - IAG (integrated application generator)Software system jadi yang mampu menghasilkan semua tampilan
yang diinginkan dalam sistem baru.- Prototyping Toolkits
Mencakup sistem-sistem software terpisah yang masing-masingmampu untuk menghasilkan sebagian tampilan sistem yang diinginkan.
3. Menentukan apakah prototyping dapat diterimaAnalis mendidik pemakai dan memberikan kesempatan pada pemakai untukmembiasakan diri dengan sistem. Jika pemakai dapat menerima sistem, langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulangi langkah 1, 2 dan 3.
4. Menggunakan prototypingPrototype menjadi sistem operasional
Pengembangan Prototipe Jenis I
1.
2.
3.
4.
N
Identifikasi Kebutuhan
Pengembangan
prototipe
Prototipe
diterima?
Y
Menggunakan
Prototipe
Jenis Prototyping
Type II
Langkah-langkahnya :Tiga langkah pertama sama seperti Ptototype Type I.1. Mengkodekan sistem operasional
Programmer menggunakan prototype sebagai dasar untuk pengkodean(coding) sistem operasional
2. Menguji sistem operasional3. Menentukan apakah sistem operasional dapat diterima
pemakai memberikan masukan kepada analis apakah sistem dapat diterima. Jika ya, langkah 7 akan diambil. Jika tidak, langkah 4 dan 5 diulangi.
4. Menggunakan sistem operasional
Pengembangan
Prototipe
Jenis II
N
Identifikasi
kebutuhan
Pengembangan
Prototipe
Penggunaan Sistem
Operasional
Prototipe
diterima?
Sistem
diterima?
Y
Y
N
Pengkodean Sistem
Operasional
Menguji Sistem
Operasional
1.
2.
4.
5.
6.
7.
3.
Empat model Prototype : Prototype kertas
Gambaran sistem yang dibuat pada media kertas.Kelemahannya tidak dapat diuji dan diimplementasikan
Prototype Berbasis PCPermodelan sistem yang dibuat dengan memanfaatkan media aplikasi-aplikasiuntuk presentasi.
Prototype KerjaPrototype yang telah mengimplementasikan sebagian dari fungsi sistem.
Prototype ProgramPada permodelan ini program benar-benar dibuat dan bisa bekerja. Bagian-bagian program yang sudah jadi terus-menerus ditambah dan dilengkapisampai terbentuk sistem yang diinginkan.
Permasalahan sistem yang tidak jelasAdakalanya user tidak dapat mendefinisikan dengan jelas tentang kebutuhan dankeinginanya terhadap sistem yang akan dikembangkan.
Kebutuhan dialog user-komputer yang interaktifUntuk membuat sistem yang menghendaki dialog yang baik dan mudah antara user dankomputer.
Sistem diminati oleh banyak pemakaiUntuk mencari kesamaan persepsi dari banyak user sehingga dapat diperolehkesepakatan tentang sistem yang akan dikembangkan.
User berkeinginan sistem cepat selesaiUntuk mengakomodir keinginan user supaya cepat selesai dan terlihat bentuk kerjasistemnya.
Kebutuhan user selalu berubah-ubahUser sulit menjelaskan kebutuhannya secara baik sehingga menimbulkankeinginan yanhg selalu berubah-ubah. Untuk itu dapat dibantu denganmemberikan gambaran sistem yang akan dibuat melalui prototype yang diajukan oleh pengembang.
Prototyping baik digunakan pada keadaan :
Potensi Kegagalan Prototyping
Ketergesaan membuat prototipe mungkinmenghasilkan jalan pintas dalam definisipermasalahan, evaluasi dan dokumentasi.
Pemakai mungkin sangat tertarik dengan protitipetersebut sehingga mereka mengharapkan sesuatuyang tidak realistis dari sistem operasional
Prototipe jenis I mungkin tidak seefisien sistemyang dikodekan dalam bahasa pemrograman
Hubungan komputer-manusia yang disediakanmungkin tidak mencerminkan teknik perancanganyang baik
Kelemahan Prototyping :
Pelanggan yang melihat prototype darimodel yang dimintanya tidak menyadaribahwa mungkin saja prototype dibuatterburu-buru dan dirancang tidaktersusun dengan baik
Pengembang kadang-kadang membuatimplementasi sembarangan karena inginbekerja dengan cepat.
Kelebihan Prototyping : Peran pemakai sistem dalam pengembangan sistem menjadi
meningkat.
Keterlibatan user tersebut disebabkan adanya evaluasi oleh user berkali-kali untuk mencapai kebutuhan yang diinginkan.
Sangat membantu penganalisian kebutuhan user
Dengan komunikasi yang intensif, pengembang akan tahu kebutuhapemakai sistem yang sesungguhnya.
Waktu mengerjakan perangkat lunak dapat menjadi lebih cepat danuser dapat mengikuti tahapan demi tahapan
Mempermudah dalam tahap implementasi
Hal ini disebabkan karena user merasa telah mengenal dan memilikiperangkat lunak yang dihasilkan
METODE PENGEMBANGAN PERANGKAT
LUNAK
Metodologi Rapid Application Development
(RAD)
RAD ( Rapid Application
Development)
Merupakan model proses pengembanganperangkat lunak yang menekankan pada sikluspengembangan yang sangat singkat.
RAD mengadopsi model waterfall danpembangunan dalam waktu yang singkat.
Waktu yang singkat adalah batasan yang pentingdalam model ini
Jika kebutuhan dapat dipahami dengan baik,proses RAD dapat memungkinkan timpengembang menciptakan Sistem secara utuhdalam waktu yang sangat pendek (kira-kira 60-90hari)
Team #1
Team #2Team #3
Business
Modeling
Data
Modeling
Process
Modeling
Application
Generation
Testing &
Turnover
Business
Modeling
Data
Modeling
Process
Modeling
Application
Generation
Testing &
Turnover
Business
ModelingData
ModelingProcess
ModelingApplication Generation
Testing &
Turnover
60-90 hari
RAD Model
Pendekatan RAD model :
Permodelan bisnisUntuk menjawab pertanyaan : informasi apa yang mengendalikan prosesbisnis? Informasi apa yang dihasilkan? Siapa yang menghasilkan informasi?dan Siapa yang mengolah informasi? Kebutuhan dari sistem
Permodelan dataAliran informasi yang sudah didefinisikan disusun menjadi sekumpulan objekdata. Ditentukan karakteristik/atribut dan hubungan antar objek data tersebut Analisis kebutuhan dan data
Permodelan prosesObjek data yang sudah didefinisikan diubah menjadi aliran informasi yangdiperlukan untuk menjalankan fungsi-fungsi bisnis.
Pembuatan aplikasiRAD menggunakan komponen program yang sudah ada atau membuatkomponen yang bisa digunakan kembali selama diperlukan
Pengujian dan pergantianKarena meggunakan komponen yang sudah ada, maka kebanyakan komponensudah melalui tahap pengujian. Hanya komponen baru yang harus diuji.
Kelemahan RAD model : Tidak cocok untuk proyek skala besar, karena
membutuhkan sumber daya yang cukup untukmembentuk sejumlah tim RAD
RAD membutuhkan pengembang dan pemakai yangmempunyai komitmen untuk melaksanakanaktivitas melengkapi sistem dalam kerangka waktuyang singkat, karena proyek bisa gagal akibat waktuyang disepakati tidak terpenuhi.
Akan menimbulkan masalah jika sistem tidak dapatdibuat secara modular.
RAD tidak cocok digunakan untuk sistem yangberesiko teknis tinggi
Waktu pengembangan yang singkat Bagi pengembang proses pengerjaan menjadi
lebih mudah karena pengerjaan dibagi dalamtim-tim permodular, sehingga dapat terfokusdalam satu permasalahan.
Pada tahap pengujian, waktu yang digunakandapat dipersingkat karena RAD menekankanpada pemakaian kembali komponen yang sudahada, sehingga komponen baru saja yang harusdiuji.
Kelebihan RAD model :
SPIRAL MODEL
METODE PENGEMBANGAN
PERANGKAT LUNAK
SPIRAL MODEL
Merupakan model proses perangkat lunak yang
memadukan wujud perulangan dari model
prototyping dengan aspek pengendalian dan
sistematika dari waterfall model, dengan
penambahan elemen baru yaitu analisis resiko.
Aktivitas didalam Model Spiral Komunikasi Pemakai (Customer Communication)
Membangun komunikasi yang baik dengan pengguna sistem.
Perencanaan (Planning)Penentuan tujuan, alternatif dan batasan.
Analisis resiko (Risk Analysis)Analisis alternatif dan identifikasi / pemecahan resiko
Rekayasa (Engineering)Pembangunan contoh-contoh aplikasi, misalnya prototype.
Pembangunan & Realisasi (Construction & Release)Pembangunan sistem, test, install dan support
Evaluasi Pemakai (Customer Evaluation)Penilaian terhadap hasil dari fase rekayasa dan fase pembangunan & realisasi oleh pengguna.
Bentuk spiral memberikan gambaran
bahwa semakin besar iterasinya, maka
menunjukkan makin lengkap versi dari
perangkat lunak yang dibuat.
Kelemahan Model Spiral
Sulit untuk meyakinkan pemakai (saat
situasi kontrak) bahwa penggunaan
pendekatan ini akan dikendalikan
Memerlukan tenaga ahli untuk
memperkirakan resiko, dan harus
mengandalkannya supaya sukses
Belum terbukti apakah metode ini cukup
efisien karena usianya relatif baru.
Keuntungan Model Spiral Pada model spiral, resiko sangat
dipertimbangkan. Resiko adalah sesuatu yang mungkin mengakibatkan kesalahan.
Model spiral merupakan pendekatan yang realistik untuk pengembangan perangkat lunak / sistem berskala besar.
Pengguna dan pembangun bisa memahami dengan baik perangkat lunak yang dibangun karena setiap kemajuan yang dicapai selama proses dapat dinikmati dengan baik.
in conjunction with
Software Engineering: A
Practitioner’s Approach,
6/e and are provided with
permission by R.S.
Pressman & Associates,
Inc., copyright © 1996,
2001, 2005
95
Metode Pengembangan Sistem Dinamis
(Dynamic Systems Development Method)
Dipromosikan oleh konsorsium DSDM (www.dsdm.org)
DSDM—karakter yang membedakan Mirip dalam banyak dengan XP dan/atau ASD
Sembilan prinsip-prinsip panduan : Pelibatan user secara aktif adalah keharusan.
Tim DSDM harus diberdayakan untuk mengambil keputusan.
Fokus pada penyajian produk sesering mungkin.
Penerimaan dari tujuan bisnis adalah kriteria esensial untuk penerimaan penyajian.
Pengembangan bertahap dan berulang dibutuhkan untuk fokus pada solusi bisnis yang akurat.
Semua perubahan selaman pengembangan dapat dibalik.
Kebutuhan adalah dasar pada level tinggi
Pengujian terintegrasi dalam siklus kehidupan.
96
Dynamic Systems Development Method
DSDM Life Cycle (with permission of the DSDM consortium)
97
Scrum
Diusulkan oleh Schwaber dan Beedle
Scrum—Karakter yang membedakanKerja pengembangan dipartisi menjadi “paket”
Pengujian dan dokumentasi berjalan seiring dengankonstruksi produk
Kerja terjadi dalam “Sprint” dan diturunkan dari“backlog” kebutuhan yang ada
Pertemuan sangat pendek dan beberapa kali diadalah tanpa kursi
“Demo” ditunjukkan pada konsumen dengan alokasitime-box
in conjunction with
Software Engineering: A
Practitioner’s Approach,
6/e and are provided with
permission by R.S.
Pressman & Associates,
Inc., copyright © 1996,
2001, 2005
98
Scrum
Scrum Process Flow (used with permission)
in conjunction with
Software Engineering: A
Practitioner’s Approach,
6/e and are provided with
permission by R.S.
Pressman & Associates,
Inc., copyright © 1996,
2001, 2005
99
Crystal
Diusulkan Cockburn dan Highsmith
Crystal—karakter yang membedakan
Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar karakteristikpermasalahan
Komunikasi tatap muka ditekankan
Menyarankan penggunaan workshop refleksi untukreview kebiasaan kerja tim
in conjunction with
Software Engineering: A
Practitioner’s Approach,
6/e and are provided with
permission by R.S.
Pressman & Associates,
Inc., copyright © 1996,
2001, 2005
100
Feature Driven Development
Diusulkan oleh Peter Coad et al
FDD—karakter yang membedakan
Penekanan pada definisi “features”
a feature “is a client-valued function that can be implemented intwo weeks or less.”
Menggunakan template feature <action> the <result> <by | for | of | to> a(n) <object>
Daftar feature dibuat dan “perencanaan berdasar “feature”dilakukan
Desain dan konstruksi bergabung dalam FDD
in conjunction with
Software Engineering: A
Practitioner’s Approach,
6/e and are provided with
permission by R.S.
Pressman & Associates,
Inc., copyright © 1996,
2001, 2005
101
Feature Driven Development
Reprinted with permission of Peter Coad
in conjunction with
Software Engineering: A
Practitioner’s Approach,
6/e and are provided with
permission by R.S.
Pressman & Associates,
Inc., copyright © 1996,
2001, 2005
102
Agile Modeling Diusulkan oleh Scott Ambler
Menyarankan prinsip2x agile modeling
Model dengan sebuah tujuan
Menggunakan banyak model
Isi lebih penting dari representasi
Mengetahui model dan tool yang digunakan untukmembuatnya
Beradaptasi secara lokal
MANAJEMEN PROYEK PERANGKAT LUNAK
Proses-proses Dalam Manajemen Proyek1.
Satuan Ukuran Produktivitas2.
Satuan Ukuran Kualitas Parangkat Lunak 3.
Proses-proses Dalam Manajemen Proyek
Manajemen proyek merupakan lapisan pertama dalamproses rekayasa perangkat lunak skala besar.
Untuk menuju pada proyek yang berhasil, perludimengerti tentang : • Lingkup pekerjaan • Resiko yang dapat ditimbulkan • Sumber-sumber yang diperlukan • Tugas yang harus dilaksanakan • Patokan yang harus diikuti • Usaha atau biaya yang dikeluarkan • Dan Penjadwalan
Awal Proyek Perangkat Lunak
Untuk mengestimasi biaya, pembagian tugas,dan penjadwalan, sebelum sebuah proyekdirencanakan perlu :
• Memastikan tujuan dan ruang lingkup
• Memperhatikan alternatif-alternatif solusi
• Identifikasi batasan teknik dan manajerial
Pengukuran dan Satuan Ukuran
Pengukuran dan satuan ukuran akan membantuuntuk mengerti proses-proses dalampengembangan produk dan produk itu sendiri.Proses dan produk diukur dalam usaha untukmeningkatkan kualitasnya.
Estimasi
Dalam aktifitas utama proyek yaituperencanaan, dilakukan estimasi :
• Sumber daya manusia (ukuran orang/bulan)
• Jangka waktu kronologis (Ukuran waktukalender)
• Biaya (Ukuran uang Rp)
Analisis Resiko Analisis resiko sangat penting dalam manajemen proyek
perangkat lunak. Beberapa hal yang harus diperhatikanberkaitan dengan resiko adalah ;
• Masa yang akan datang : resiko apa yang mempengaruhitrend (kecenderungan) proyek perangkat lunak
• Perubahan : Bagaimana perkembangan duniamempengaruhi keawetan dan kesuksesan perangkatlunak
• Pilihan : metode apa yang dipakai, berapa orangdiperlukan, seberapa tinggi kualitas perangkat lunak dansebagainya
Analsis resiko merupakan serangkaian langkahuntuk menyiasati resiko, yaitu :
• Identifikasi resiko
Identifikasi resiko melist semua resiko sesuaidengan kategori(secara makro) sebagai berikut: 1. Resiko proyek : masalah pembiayaan, penjadwalan,
personil, sumber daya, pelanggan dan kebutuhandikaitkan dengan akibatnya terhadap pelanggan.
2. Resiko teknis : masalah desain, implementasi,antarmuka, verifikasi dan pemeliharaan.
3. Resiko bisnis : termasuk di dalamnya adalah resikopasar, resiko manajemen, dan resiko pembiayaan.
Salah satu metode terbaik untuk mengerti tiap resiko adalahdengan sejumlah pertanyaan seperti :
1. Adakah orang-orang yang paling top (The best) ?
2. Sesuaikah keahlian orang-orang tersebut?
3. Cukupkah orang-orang yang tersedia?
4. Apakah staf cukup dapat dipercaya untuk keseluruhanproyek?
5. Akan adakah staf yang bekerja paruh waktu?
6. Apakah staf telah memiliki persepsi yang benar tentangpekerjaannya?
7. Sudah cukupkah pelatihan untuk staf?
8. Cukup rendahkah tingkat pelimpahan kerja untukmenjamin kelanjutan proyek?
Penjadwalan
Langkah-langkah yang dilakukan dalampenjadwalan :
• Identifikasi sekumpulan tugas
• Pastikan keterkaitan antar tugas
• Estimasi usaha untuk tiap-tiap tugas
• Tentukan pekerja dan sumber-sumber lainnya
• Buat jaringan tugas
• Buat jadwal kerja berdasarkan waktu
Penelusuran dan Pengendalian
Penelusuran dan pengendalian dilakukansetelah ada penjadwalan yang pasti, yaitumemeriksa apakah tugas telah dilaksanakansesuai dengan jadwal.
Satuan Ukuran Produktivitas dan Kualitas
Perangkat Lunak
Pengukuran perangkat lunak dilakukan untuk : • Indikasi kualitas produk• Perkiraan produktivitas orang-orang yang menghasilkan produk• Perkiraan manfaat dari penerapan metode dan tools • Membentuk dasar dari estimasi• Menegaskan (Justify) permintaan tools baru dan pelatihan
Satuan ukuran perangkat lunak dikategorikan ke dalam : • Satuan ukuran produktivitas : Output dari proses rekayasa• Satuan ukuran kualitas : indikasi tingkat pemenuhan kebutuhan konsumen • Satuan ukuran teknik : Karakteristik perangkat lunak
Kategori lain untuk pengukuran :
• Pengukuran berorientasi besarnya (Ukuran) :
Besarnya perangkat lunak = jumlah baris program.
Pengukuran berorientasi ukuran merupakan pengukuranlangsung. Pengukuran berorientasi ukuran menggunakantabel berisi data berorientasi ukuran yang merupakan daftarproyek pengembangan perangkat lunak yang telahdiselesaikan dikaitkan dengan data berorientasi ukuranuntuk proyek yang bersangkutan
• Pengukuran berorientasi fungsi :
fungsi = ruang lingkup informasi dan tingkat kesulitannyaMerupakan pengukuran tidak langsung, yang menitikberatkan pada fungsionalitas atau utilitasprogram. Disebut juga metode Function Point sesuaidengan informasi-informasi yang didefinisikan:
o Jumlah masukan dari pemakai
o Jumlah keluaran dari pemakai
o Jumlah penyelidikan dari pemakai
o Jumlah file
o Jumlah antarmuka eksternal
Satuan Ukuran Kualitas Parangkat Lunak
Kualitas perangkat lunak dihitung pada saatproses rekayasa perangkat lunak ataupunsetelah diserahkan kepada pemakai. Satuanukuran kualitas perangkat lunak pada saatproses rekayasa :
o Kompleksitas program
o Modularitas yang efektif
o Besarnya program
Definisi pengukuran kualitas menurut Gilb:
• Kebenaran (Correctness) : Program harus bekerja dengan benar. Kebenaran merupakan tingkat perangkat lunak bekerja sesuaidengan fungsi yang dibutuhkan. Pengukuran yang umum adalahcacat (defect) /KLOC
• Perawatan (Maintainability) : Kemudahan perbaikan jika adakesalahan, penyesuaian terhadap perubahan lingkungan ataupeningkatan sesuai permintaan pemakai
• Integritas (Integrity) : Pengukuran tingkat ketahanan perangkatlunak terhadap serangan (disengaja/tidak) pada program, data dandokumen
• Kegunaan (Usability) : Berkaitan dengan kemudahan pemakaianyang diukur berdasarkan keahlian yang diperlukan untukmempelajari sistem, waktu yang dibutuhkan untuk dapatmenggunakan sistem, peningkatan produktivitas denganpenggunaan sistem dan perkiraan yang sifatnya subjektif padakelakuan pemakai
Menurut Basili dan Zelkowitz ada 5(lima) faktor yang mempengaruhi produktivitas perangkat lunak :
• Faktor manusia : jumlah dan tingkat keahlian tim
• Faktor masalah : Tingkat kerumitan masalah yang harusdipecahkan
• Faktor proses : Teknik analisis dan desain, bahasa dan tools
• Faktor produk : keandalan dan performansi sistemberbasis komputer
• Faktor sumber daya : ketersediaan tools, sumber-sumberperangkat keras dan perangkat lunak
PENGUJIAN PERANGKAT LUNAK
Pengertian Pengujian1.
Tujuan Pengujian2.
Tahap-tahap Pengujian3.
Pengujian Tahap Analisis4.
Pengujian Tahap Perancangan5.
Pengujian Tahap Implementasi6.
Pengujian Tahap Pengujian7.
Pengertian Pengujian
Proses menjalankan dan mengevaluasi sebuahperangkat lunak secara manual maupunotomatis untuk menguji apakah perangkatlunak sudah memenuhi persyaratan ataubelum, atau untuk menentukan perbedaanantara hasil yang diharapkan dengan hasilsebenarnya.
Beberapa prinsip pengujian yang harus diperhatikan.
1. Dapat dilacak hingga ke persyaratan atau dokumen SRS
2. Pengujian harsu direncanakan sebelum pelaksanaan pengujian
3. Pengujian harus dimulai dari hasl yang kecil, diteruskan ke hal-hal yang besar.
4. Pengujian yang berlebihan tidak akan mungkin dapat dilaksanakan
5. Pengujian sebaiknya dilakukan oleh pihak ketiga.
Tujuan Pengujian
1. Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
2. Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan.
3. Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah ditentukan.
Tahap-tahap Pengujian
1. Tentukan apa yang akan diukur melalui pengujian 2. Bagaimana pengujian akan dilaksanakan 3. Membangun suatu kasus uji (test case), yaitu
sekumpulan data atau situasi yang akan digunakan dalam pengujian.
4. Tentukan hasil yang diharapkan atau hasil sebenarnya
5. Jalankan kasus pengujian 6. bandingkan hasil pengujian dan hasil yang
diharapkan.
Pengujian Tahap Analisis
Pengujian pada tahap analisis ditekankan pada validasi terhadap kebutuhan, untuk menjamin bahwa kebutuhan telah dispesifikasikan dengan benar.
Tujuan pengujian pada tahap ini adalah untuk mendapatkan kebutuhan yang layak dan untuk memastikan apakah kebutuhan tersebut sudah dirumuskan dengan baik.
Faktor-faktor pengujian yang dilakukan pada tahap analisis ini meliputi :
1. Kebutuhan yang berkaitan dengan metodelogi
2. Pendefinisian spesifikasi fungsional
3. Penentuan spesifikasi kegunaan
4. Penentuan kebutuhan portabilitas
5. Pendefinisian antar muka sistem.
Pengujian Tahap Perancangan Pengujian tahap perancangan bertujuan untuk menguji
struktur perangkat lunak yang diturunkan dari kebutuhan. Kebutuhan yang bersifat umum dirinci menjadi bentuk yang lebih spesifik .
Faktor-faktor pengujian yang dilakukan pada tahap perancangan meliputi :
1. Perancangan yang berkaitan dengan kebutuhan 2. Kesesuaian perancangan dengan metodologi dan teori. 3. Portabilitas rancangan 4. Perancangan yang dirawat 5. Kebenaran rancangan berkaitan dengan fungsi dan
aliran data. 6. Kelengkapan perancangan antar muka.
Pengujian Tahap Implementasi
Pengujian pada tahap ini merupakan pengujianunit-unit yang dibuat sebelum diintegrasikan mejadiaplikasi keseluruhan.
Faktor-faktor pengujian yang dilakukan pada tahapimplementasi meliputi :1. Kendali integritas data2. Kebenaran program3. kemudahan pemakaian4. Sifat coupling5. Pengembangan prosedur operasi.
Pengujian Tahap Pengujian Tujuan pengujian pada tahap ini adalah untuk
menilai apakah spesifikasi program telah ditulismenjadi instruksi-instruksi yang dapat dijalankanpada mesin. Selain itu, juga untuk menilai apakahinstruksi yang ditulis tersebut telah sesuai denganspesifikasi program.
Faktor-faktor pengujian yang dilakukan pada tahapini meliputi :1. Pengujian fungsional2. Dukungan manual3. Kemudahan operasi.
Pengujian dengan Kasus Uji
Pengujian yang dilakukan meliputi pengujian unit (berupa prosedur atau fungsi) dan pengujian sistem. Dalam pengujian unit, unit-unit yang diuji meliputi unit-unit yang ada dalam sistem.
Sedangkan pengujian sistem dilakukan terhadap sistem secara keseluruhan. Setiap pengujian dilakukan dengan menggunakan berbagai data masukan, baik data yang valid maupun tidak.
Teknik Pengujian
Ada dua teknik pengujian yang dapat digunakan untuk menguji perangkat lunak, yaitu
1. black box testing
2. white box testing
Pengujian Black Box Pengujian black box digunakan untuk menguji
fungsi-fungsi khusus dari perangkat lunak yangdirancang.
kebenaran perangkat lunak yang diuji hanya dilihatberdasarkan keluaran yang dihasilkan dari dataatau kondisi masukan yang diberikan untuk fungsiyang ada tanpa melihat bagaimana proses untukmendapatkan keluaran tersebut.
Dari keluaran yang dihasilkan, kemampuan programdalam memenuhi kebutuhan pemakai dapat diukursekaligus dapat diiketahui kesalahan-kesalahannya.
Beberapa jenis kesalahan yang dapat diidentifikasi :
• Fungsi tidak benar atau hilang
• Kesalahan antar muka
• Kesalahan pada struktur data (pengaksesan basisdata)
• Kesalahan inisialisasi dan akhir program
• Kesalahan performasi.
Walaupun sulit untuk menelusuri kesalahan yangmungkin didapat, teknik pengujian black box lebihsering dipilih untuk menguji perangkat lunakkarena kemudahan dalam pelaksanaannya.
Pengujian White Box
Berbeda dengan teknik black box teknik inidigunakan untuk mengetahui cara kerja suatuperangkat lunak secara internal.
Pengujian dilakukan untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yangtelah ditetapkan dengan menggunakan strukturkendali dari prosedur yang dirancang.
Pelaksanaan pengujian white box :
• Menjamim seluruh independent path dieksekusipaling sedikit satu kali. Independent pathadalah jalur dalam program yang menunjukkanpaling sedikit satu kumpulan proses ataupunkondisi baru.
• Menjalani logical decision pada sisi dan false
• Mengeksekusi pengulangan (looping) dalambatas-batas yang ditentukan
• Menguji struktur data internal.
Strategi Pengujian Digunakan untuk mengintegrasikan
metode-metode perancangan kasuspengujian perangkat lunak menjadi suatulangkah-langkah terencana dengan tujuanmendapatkan perangkat lunak yang sukses.
Setiap strategi pengujian perangkat lunakharus meliputi perencanaan pengujian,perancangan kasus-kasus uji, eksekusipengujian, pengumpulan data, sertaevaluasi.
1. Pengujian unit program
Pengujian difokuskan pada unit terkecil dari suatu modul program. Dilaksanakan dengan menggunakan driver dan stub. Driver adalah suatu program utama yang berfungsi mengirim atau menerima data kasus uji dan mencetak hasil dari modul yang diuji. Stub adalah modul yang menggantikan modul sub-ordinat dari
modul yang diuji.
2. Pengujian integrasi
Pengujian terhadap unit-unit program yang saling berhubungan (terintegrasi) dengan fokus pada masalah interfacing. Dapat dilaksanakan secara top-down integration atau bottom-up integration.
3. Pengujian validasi
Pengujian ini dimulai jika pada tahap integrasi tidak ditemukan kesalahan. Suatu validasi dikatakan sukses jika perangkat lunak berfungsi pada suatu cara yang diharapkan oleh pemakai.
4. Pengujian sistem
Pengujian yang dilakukan sepenuhnya pada sistem berbasis komputer. • Recovery testing
Pengujian dilakukan dimana sistem diusahakan untuk gagal, kemudian diuji normalisasinya.
• Security testing
Dilakukan untuk menguji mekanisme proteksi
• Stess testing
Pengujian yang dirancang untuk menghadapkan
suatu perangkat lunak kepada situasi Yang tidak
normal.