( RPL )
MULAI MATERI
Tujuan Pembelajaran
1. Memahami dan rnenggunakan metode-metode pengemhangan perangkat
lunak termasuk pernbuatan, peneliharaan, rnanajemen organisa,si
pengernbangan perangkat lunak, kebutuhan sisteul dan manajemen kualitas
untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan
efektif untuk pengguna.
2. Memahami konsep dasar rekayasa perangkat lunak, Software Requirement,
Spesifikasi Kebutuhan Perangkat Lunak (SKPL), Proses Perangkat Lunak,
tnodel dan metode lekayasa perangkat lunak, practice Rekayasa Perangkat
Lunak,
3. Menerapan berbagai model dan metode proses Perangkat Lunak, Strategi
Pengujian Perangkat Lunak dan Teknik Pargujian Perangkat Lunak.
Capaian Pembelajaran
Mahasiswa diharapkan mampu :
1. Memahami Konsep Dasar Rekayasa Perangkat Lunak
2. Memahami Software Requerement
3. Memahami Spesifikasi Kebutuhan Perangkat l,unak (SKPL)
4. Memahami Proses Perangkat Lunak
5. Memahami Metode Rekayasa Perangkat Lunak
6. Memahami Practice Rekayasa Perangkat Lunak
7. Memahami Model Proses Perangkat Lunak
8. Memahami Strategi Pengujian Perangkat Lunak
9. Memahami Teknik Pengujian Perangkat Lunak
Metode Pembelajaran
Ceramah Praktek
Latihan Project
Metode Penilaian
10%
Kehadiran
20%
Tugas Harian
30% Project Akhir
20%
UTS
20%
UAS
Peraturan Kelas
Introduction
PERTEMUAN 1
PENGENALAN PERANGKAT LUNAK
Definisi Perangkat Lunak
• Perangkat Lunak (Pressman, 1997).
– Instruksi (program komputer) yang bila dieksekusi
dapat menjalankan fungsi tertentu
– Struktur data yang dapat membuat program
memanipulasi informasi
– Dokumen yang menjelaskan operasi dan
penggunaan program
Karateristik Perangkat Lunak
• Perangkat lunak dikembangkan atau direkayasa, jadi tidak
diproduksi dalam pengertian klasik
• Merupakan produk yang unik (tidak ada seri produksi).
• Perangkat lunak tidak pernah akan rusak/aus karena selalu
diperbaharui
• Tidak terlihat (invisible).
• Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi
tidak dibentuk dari komponen yang sudah ada.
• Fleksibel, sehingga mudah dimodifikasi.
• Dihubungkan (linked) dengan sistem komputer.
Aplikasi Perangkat Lunak
• Dilihat dari sudut pandang fungsinya:
1. Perangkat Lunak Sistem
2. Perangkat Lunak Aplikasi
• Dilihat dari sudut pandang Aplikasinya:
1. Perangkat Lunak Sistem (Sistem Software)
2. Perangkat Lunak Waktu Nyata (Real Time Software)
3. Perangkat Lunak Bisnis (Business Software)
4. Perangkat Lunak Rekayasa dan Sains (Engineering and Scientific Software)
5. Embedded Software
6. Perangkat Lunak Komputer Pribadi (Personal Computer Software)
7. Perangkat Lunak Intelegensia Buatan (Artificial Intelligent Software)
Instalasi dan Konfigurasi AppServ
2. License Agreement : AppServ berada dibawah lisensi GNU/GPL. Anda harus membaca
persetujuan ini sebelum install. If you agree for this license click Next to go to next step. If
you not agree click Cancel to cancel install.
Instalasi dan Konfigurasi AppServ
3. Choose Install Location: AppServ default location is C:AppServ. If you need to change
destination click Browse botton to change your destination for AppServ program and then
click Next to go to next step.
Instalasi dan Konfigurasi AppServ
4. Select Components : AppServ default package components it's checked all package.
If you need to choose some package to install. You can click at check box.
- Apache HTTP Server is a Web Server.
- MySQL Database is a Database Server.
- PHP Hypertext Preprocessor is a PHP Programming processor.
- phpMyAdmin is a MySQL Database control via WWW. If you complete choosing it click Next
to go next step.
Instalasi dan Konfigurasi AppServ
5. Apache Configuration : This screen for specify Apache configure.
Server Name You must specify Server Name e.g. www.appservnetwork.com.
HTTP Port You must specify HTTP port for Apache Web Server.
Instalasi dan Konfigurasi AppServ
6. MySQL Configuration :
Root Password You must enger root password for MySQL Database.
Default user for this password is root .
Character Sets Specify for data storage language and collations.
Old Password If you have problem when you coding PHP code with
Old MySQL API.
And found error Client does not supportauthentication
protocol requested by server;
consider upgrading MySQL client
You must check this option to avoid error.
Enable InnoDB If you use InnoDB must check this option.
Instalasi dan Konfigurasi AppServ
Instalasi dan Konfigurasi AppServ
7. Complete AppServ setup : Setup ask for start Apache and MySQL
immediately. Click Finish to end this setup and AppServ prompt to use.
CLICK HERE
Tahapan System Development
Life Cycle (SDLC)
1) System initiation adalah perencanaan awal untuk sebuah proyek guna
mendefinisikan lingkup, tujuan, jadwal dan anggaran bisnis awal yang
diperlukan untuk memecahkan masalah atau kesempatan yang
direpresentasikan oleh proyek.
Lingkup proyek yang mendefinisikan area bisnis yang akan ditangani oleh
proyek dan tujuan-tujuan yang akan dicapai. Lingkup dan tujuan pada
akhirnya berpengaruh pada komitmen sumber yaitu jadwal dan anggaran
yang harus dibuat supaya berhasil menyelesaikan proyek.
Tahapan System Development
Life Cycle (SDLC)....continue
2) System analysis ialah studi domain masalah bisnis untuk merekomendasikan
perbaikan dan menspesifikasikan persyaratan dan prioritas bisnis untuk
solusi. Analisis system ditujukan untuk menyediakan tim proyek dengan
pemahaman yang lebih menyeluruh terhadap masalah-masalah dan
kebutuhan-kebutuhan yang memicu proyek. Area bisnis dipelajari dan
dianalisis untuk memperoleh pemahaman yang lebih rinci mengenai apa
yang bekerja, apa yang tidak bekerja dan apa yang dibutuhkan.
Tahapan System Development
Life Cycle (SDLC) ....continue
3) System design adalah spesifikasi atau konstruksi solusi yang teknis dan
berbasis komputer untuk persyaratan bisnis yang diidentifikasikan dalam
analisis sistem.
Selama desain sistem, pada awalnya akan mengekspolarasi solusi teknis
alternatif. Setelah alternatif solusi disetujui, maka fase desain sistem
mengembangkan cetak biru (blueprint) dan spesifikasi teknis yang
dibutuhkan untuk mengimplementasikan database, program, antarmuka
pengguna dan jaringan yang dibutuhkan untuk sistem informasi,
Tahapan System Development
Life Cycle (SDLC) ....continue
4) System implementation adalah konstruksi, instalasi, pengujian dan
pengiriman sistem ke dalam produksi (artinya operasi sehari-hari).
Implementasi sistem mengontruksi sistem informasi baru dan
menempatkannya ke dalam operasi, selanjutnya dilaksanakan pengujian.
Penilaian dan Pengembangan
Proses Perangkat Lunak
Penilaian proses perangkat lunak digunakan untuk mengevaluasi bentuk dan isi proses perangkat
lunak dengan beberapa kriteria khusus.
Penilaian proses dilakukan di semua level organisasi.
Penilaian proses perangkat lunak meriview kriteria entry dan exit perangkat lunak, faktor dan
manajemen resiko.
Penilaian proses perangkat lunak berbeda dengan audit. Penilaian dilakukan untuk menetapkan
level dari kemampuan atau kematangan untuk memperbaiki proses perangkat lunak.
Sedangkan audit dilakukan untuk memastikan kesesuaian perangkat lunak dengan kebijakan dan
standar.
Faktor kesuksesan penilaian dan pengembangan proses perangkat lunak yaitu sponsor,
perencanaan, pelatihan, pemimpin yang mampu dan berpengalaman, komitmen tim, manajemen
sasaran, penggunaan agen perubahan, proyek percontohan dan percobaan dengan alat.
Penilaian dan Pengembangan Proses
Perangkat Lunak......continue
Perancangan
sistem dan
perangkat lunak
Implementasi dan
pengujian unit
Integrasi dan
pengujian sistem
Operasi dan
pemeliharaan
3) Implementasi dan pengujian unit. Pada tahap ini, perancangan perangkat lunak
direalisasikan sebagai serangkaian program atau unit program. Pengujian unit
melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasi.
4) Integrasi dan pengujian sistem. Unit program atau program individual diintegrasikan
dan diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem
telah dipenuhi. Setelah pengujian sistem, perangkat lunak dikirim kepada pelanggan.
5) Operasi dan pemeliharaan. Biasanya merupakan fase siklus hidup yang paling lama.
Sistem diinstall dan dipakai. Pemeliharaan mencakup koreksi dan berbagai error yang
tidak ditemukan pada tahap-tahap terdahulu, perbaikan atas implementasi unit
sistem dan pengembangan pelayanan system, sementara persyaratan-persyaratan
baru ditambahkan.
2. Model Sekuensial Linier
Sekuensial linier untuk rekayasa perangkat lunak, yang sering disebut juga dengan “siklus
kehidupan klasik” atau “fase lingkaran”.
Definisi Masalah
Penyatuan Solusi
Status Solution
Quo Integration
Teknikal
Development
Problem
Definition
Status Solution
Quo Integration
Status Quo
Teknikal
Development
Problem
Definition
Status Solution
Quo Integration
Teknikal
Development
Gambar 1.2b Fase-fase di dalam fase lingkaran pemecahan masalah (Raccoon, 1995)
2. Model Sekuensial Linier
d) Generasi Kode
Desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca.
Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan
cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.
e) Pengujian
Sekali kode dibuat, pengujian program dimulai. Proses pengujian berfokus
pada logika internal perangkat lunak, memastikan bahwa semua pernyataan
sudah diuji, dan pada eksternal fungsional – yaitu mengarahkan pengujian
untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang
akan memberikan hasil actual yang sesuai dengan hasil yang dibutuhkan.
2. Model Sekuensial Linier
f) Pemeliharaan
Perangkat lunak akan mengalami perubahan setelah disampaikan kepada
pelanggan (perkecualian yang mungkin adalah perangkat lunak yang
dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan ditentukan,
karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan-
perubahan di dalam lingkungan eksternalnya (contohnya perubahan yang
dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang
baru), atau karena pelanggan membutuhkan perkembangan fungsional atau
unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase
program sebelumnya dan tidak membuat yang baru lagi.
2. Model Sekuensial Linier
d) Pelanggan harus bersikap sabar. Sebuah versi kerja dari program-program itu
tidak akan diperoleh sampai akhir waktu proyek dilalui. Sebuah kesalahan
besar, jika tidak terdeteksi sampai program yang bekerja tersebut dikaji
ulang, bias menjadi petaka.
e) Pengembang sering melakukan penundaan yang tidak perlu. Di dalam
analisis yang menarik tentang proyek actual, (Bradac, 1994) mendapatkan
bahwa sifat alami dari siklus kehidupan klasik membawa kepada blocking
state dimana banyak anggota tim proyek harus menunggu tim yang lain
untuk melengkapi tugas yang saling memiliki ketergantungan. Kenyataannya,
waktu yang dipakai untuk menunggu bisa mengurangi waktu untuk usaha
produktif! Blocking state cenderung menjadi lebih lazim pada awal dan akhir
sebuah proses sekuensial linier.
2. Model Sekuensial Linier
Penjelasan garis
besar Pengembangan Versi menengah
Versi akhir
Versi akhir
Perancangan Sistem
dengan pemakaian
ulang
Pengembangan dan
integrasi
What … ?
Apakah “Praktik”?
• Praktek adalah sejumlah konsep, prinsip,
metode dan tools that yang harus dimiliki
ketika software direncanakan dan
dikembangkan.
• Konsideran teknis dan praktis, yang berada di
dalam proses perangkat yang berada di dalam
proses perangkat lunak, sesuatu yang
dibutuhkan untuk membangun perangkat lunak
komputer berkualitas tinggi.
Esensi dari Praktek
• Esensi dari Praktek Rekayasa Perangkat Lunak
diantaranya:
1. Memahami Permasalahan (Komunikasi dan
Analisis)
2. Merencanakan Solusi (Pemodelan dan Desain
Perangkat Lunak)
3. Melaksanakan Rencana (Pembuatan Kode)
4. Memeriksa Akurasi Hasil (Menguji dan Quality
Assurance)
Prinsip Inti RPL
• Menyediakan nilai pada konsumen dan pengguna
• KIS—keep it simple!
• Mengelola produk dan visi project
• Apa yang anda hasilkan, yang lain akan
memanfaatkan
• Terbukalah pada masa depan
• Rencaana ke depan untuk menggunakan kembali
• Berpikir !
Praktek-Praktek RPL
Kerangka kerja proses Mengidentifikasi :
umum :
• Prinsip-prinsip
• Komunikasi
• Perencanaan • Bagaimana memulai
• Pemodelan praktek
• Konstruksi • Sekelompok tugas yang
• Deployment bisa diperpendek
Praktek Komunikasi
Prinsip dasar komunikasi
• Mendengar • Kolaborasi dengan
konsumen
• Persiapkan sebelum • Tetap fokus
komunikasi • Buat gambar ketika ada
• Fasilitasi komunikasi sesuatu yang tidak jelas
• Tatap muka adalah • Terus bergerak
yang terbaik • Negosiasi sukses ketika dua
belah pihak menang /
• Buat keputusan dan mendapat kesepakatan
catatan Tertulis
Praktek Komunikasi
(countinue..)
Inisiasi
• Pihak terkait harus dekat satu dengan Buat lebih detail
yang lain • Stakeholder harus
• Pastikan komunikasi interaktif mendefinisikan
• Ciptakan ekosistem tim yang solid skenario penggunaan
• Gunakan struktur tim yang tepat • Ambil fungsi-fungsi
Sekelompok tugas yang dapat utamanya
diperpendek Review hasilnya
• Kenali siapa yang perlu diajak bicara dengan semua
• Tentukan mekanisme terbaik untuk stakeholder
komunikasi
• Buat tujuan keseluruhan dan
Praktek Perencanaan
Prinsip-prinsip :
• Pahami ruang lingkup proyek • Sesuaikan hal-hal kecil yang
• Libatkan konsumen (dan berserakan ketika anda
stakeholder yang lain) merencanakan
• Kenali bahwa perencanaan • Tentukan bagaimana kualitas dapat
adalah iteratif digapai
• Lakukan estimasi berdasar • Tentukan bagaimana anda dapat
apa yang anda ketahui mengakomodasi perubahan
• Sadari resiko • Lacak apa yang telah anda
• Realistis rencanakan
Praktek Perencanaan (continuee..)
Inisiasi
Berikan pertanyaan-
pertanyaan :
• Mengapa sistem mulai • Dimana mereka ditempatkan
dikembangkan ? (secara organisatoris)?
• Apa yang akan dikerjakan ? • Bagaimana tugas diselesaikan,
• Kapan itu akan selesai ? baik secara teknis maupun
• Siapa yang akan bertanggung manajerial ?
jawab? • Berapa banyak untuk masing-
masing sumberdayanya ?
Praktek Perencanaan
(continuee..)
• Prinsip-prinsip Pengujian
• Semua tes harus bisa dilacak dari requirement
• Pengujian harus bisa direncanakan
• Pengujian mulai dari “kecil” dan bergerak ke
“besar” Pengujian yang melelahkan tidak
mungkin
Praktek Deployment
• Prinsip-prinsip :
• Kelola harapan pengguna pada setiap tahap
• Paket penyajian lengkap harus disusun terpadu dan teruji
• Tim pendukung harus disediakan harus disediakan
• Materi pelatihan harus disediakan pada pengguna akhir
• PL yang buggy, diperbaiki dulu, baru disajikan
PERTEMUAN 10-11
PENERAPAN MODEL PROSES PERANGKAT
LUNAK
Materi
RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada
pengembangan model dengan menggunakan Unified Model Language (UML).
Melalui gambar dibawah dapat dilihat bahwa RUP memiliki, yaitu:
• Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili aspek-
aspek dinamis dari pengembangan perangkat lunak. Aspek ini dijabarkan dalam
tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major
milestone yang menandakan akhir dari awal dari phase selanjutnya. Setiap
phase dapat berdiri dari satu beberapa iterasi. Dimensi ini terdiri atas Inception,
Elaboration, Construction, dan Transition.
• Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili aspek-aspek
statis dari proses pengembangan perangkat lunak yang dikelompokkan ke dalam
beberapa disiplin. Proses pengembangan perangkat lunak yang dijelaskan
kedalam beberapa disiplin terdiri dari empat elemen penting, yakni who is
doing, what, how dan when. Dimensi ini terdiri atas
•
Gambar
Arsitektur Rational Unified Process
Fase USP
1. Inception/insepsi 3. Construction/konstruksi
– Menentukan Ruang lingkup proyek – Melakukan sederetan iterasi
– Membuat ‘Business Case’ – Pada setiap iterasi akan melibatkan proses
berikut: analisa desain, implementasi dan
– Menjawab pertanyaan “apakah yang
testing
dikerjakan dapat menciptakan ‘good
business sense’ sehingga proyek dapat 4. Transition/transisi
dilanjutkan – Membuat apa yang sudah dimodelkan menjadi
2. Elaboration/elaborasi suatu produk jadi
– Menganalisa berbagai persyaratan dan – Dalam fase ini dilakukan:
resiko • Beta dan performance testing
• Membuat dokumentasi tambahan seperti;
– Menetapkan ‘base line’
training, user guides dan sales kit
– Merencanakan fase berikutnya yaitu • Membuat rencana peluncuran produk ke
construction komunitas pengguna
UNIFIED SOFTWARE DEVELOPMENT PROCESS
(USDP)
USDP
1. High-value & working App system, diharapkan dengan memakai agile development methods
dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di
tekan dan perangkat lunak bisa berjalan dengan baik.
2. Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang
iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang
singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak
sesuai dengan kebutuhan klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu
kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering
bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.
3. Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan
perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon
kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak
bisa dikontrol.
TUJUAN AGILE
4. High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa
dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap
fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.
5. Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin
mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari
pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk
hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering
dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun
bisa diminimalisir.
6. Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas
perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak,
sehingga tim bisa berkolaborasi dengan maksimal.
7. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan
mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agile, developer dapat memanajemen
dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan
klien. Sehingga terciptalah tim yang solid.
CARA KERJA AGILE
DEVELOPMENT METHODS
2. Story
1. Komposisi tim
Story adalah bagian terpenting dari Scrum,
Owner / Klien Seperti :
Manajer / Scrum Master • ID : Identifikasi unik
Sistem Analis • Nama : Nama story bersifat deskriptif
Developer • Kepentingan : Derajat kepentingan
yang diberikan oleh klien terhadap
story
• Perkiraan awal : Perkiraan awal tim
tentang berapa banyak kerja yang
diperlukan untuk mengimplemen-
tasikan sebuah story
Sprint
Kelebihan : Kekurangan :
• 82% Menambah produktivitas • Agile tidak akan berjalan dengan baik jika
tim. komitmen tim kurang.
• 77% Menambah kualitas • Tidak cocok dalam skala tim yang besar
perangkat lunak. (>20 orang).
• 78% Menambah kepuasan klien. • Perkiraan waktu release dan harga
• 37% Menghemat biaya. perangkat lunak sulit ditentukan.
UWE
UML-BASED WEB ENGINEERING
DIAGRAM
UWE
Uji coba white box adalah metode perancangan test case yang
menggunakan struktur kontrol dari perancangan prosedural untuk
mendapatkan test case. Dengan menggunakan metode white box,
analis sistem akan dapat memperoleh test case yang :
• Menjamin seluruh independent path di dalam modul yang
dikerjakan sekurang-kurangnya sekali
• Mengerjakan seluruh keputusan logikal
• Mengerjakan seluruh loop yang sesuai dengan batasannya
• Mengerjakan seluruh struktur data internal yang menjamin
validitas
Apa yang di uji dengan
white box
Struktur Data
Statement
Kondisi
Statement
Perulangan
Syarat Menjalankan
white box
Uji coba basis path adalah teknik uji coba white box yg diusulkan
Tom McCabe. Metode ini memungkinkan perancang test case
mendapatkan ukuran kekompleksan logical dari perancangan
prosedural dan menggunkan ukuran ini sbg petunjuk untuk
mendefinisikan basis set dari jalur pengerjaan. Test case yg didapat
digunakan untuk mengerjakan basis set yg menjamin pengerjaan
setiap perintah minimal satu kali selama ujicoba.
Notasi Diagram Alir
Lingkaran/node : menggambarkan
satu/lebih perintah prosedural. Urutan
proses dan keputusan dapat dipetakan
dalam satu node.
Tanda panah/edge : menggambarkan
aliran kontrol. Setiap node harus
mempunyai tujuan node
Region adalah daerah yg dibatasi oleh
edge dan node. Termasuk daerah
diluar grafik alir.
Kompleksitas Siklomatis
Matrik Grafis
1. Matrik grafis adalah matriks bujur sangkar yang ukurannya
sama dengan jumlah simpul pada grafik alir.
2. Masing-masing baris dan kolom sesuai dengan yang
diidentifikasikan, dan entri matriks sesuai dengan edge di
antara simpul
Control Structure Testing