REKAYASA PERANGKAT LUNAK€¦ · Rekayasa Sistem Rekayasa perangkat lunak terjadi sebagai...

Preview:

Citation preview

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.

Recommended