Catatan Kuliah Catatan Kuliah
Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak
(Software Engineering) (Software Engineering)
Bagian 2 Bagian 2
copyright © 2006
R.S. Pressman & Associates, Inc M. Idham Ananta Timur, S.T., M.Kom,
Dahlan Abdullah
Hanya digunakan di lingkungan Universtias
Hanya boleh digandakan untuk mahasiswa di lingkungan universitas yang menggunakan buku Software Engineering: A Practitioner's Approach.
Selain itu dilarang keras menggandakan.
Software Engineering: A Practitioner’s Approach, 6/e Software Engineering: A Practitioner’s Approach, 6/e
Bab 5 Bab 5
Praktek : Sebuah Pandangan Umum Praktek : Sebuah Pandangan Umum
copyright © 1996, 2001, 2005, 2006
R.S. Pressman & Associates, Inc.
M. Idham Ananta Timur, S.T., M.Kom
Hanya digunakan di lingkungan Universtias
Hanya boleh digandakan untuk mahasiswa di lingkungan universitas
yang menggunakan buku Software Engineering: A Practitioner's Approach.
Apakah “Praktek”?
Apakah “Praktek”?
Praktek adalah sejumlah konsep, prinsip, metode dan Praktek adalah sejumlah konsep, prinsip, metode dan tools
tools that yang harus dimiliki ketika software that yang harus dimiliki ketika software direncanakan dan dikembangkan.
direncanakan dan dikembangkan.
Dia menunjukkan detail Dia menunjukkan detail —Konsideran teknis dan —Konsideran teknis dan
praktis, yang berada di dalam proses perangkat lunak, praktis, yang berada di dalam proses perangkat lunak,
sesuatu yang dibutuhkan untuk membangun perangkat sesuatu yang dibutuhkan untuk membangun perangkat
lunak komputer berkualitas tinggi.
lunak komputer berkualitas tinggi.
Esensi Praktek Esensi Praktek
George Polya, di dalam buku yang ditulis di tahun 1945 George Polya, di dalam buku yang ditulis di tahun 1945 menggambarkan esensi dari praktek RPL …
menggambarkan esensi dari praktek RPL …
Memahami permasalahan (komunikasi dan analisis). Memahami permasalahan (komunikasi dan analisis).
Merencanakan solusi Merencanakan solusi (pemodelan dan desain PL). (pemodelan dan desain PL).
Melaksanakan rencana (pembuatan kode). Melaksanakan rencana (pembuatan kode).
Memeriksa akurasi hasil (menguji dan QA). Memeriksa akurasi hasil (menguji dan QA).
Pada prinsipnya praktek yang baik adalah pemecahan Pada prinsipnya praktek yang baik adalah pemecahan masalah yang umum
masalah yang umum
Prinsip Inti RPL Prinsip Inti RPL
Menyediakan nilai pada konsumen dan Menyediakan nilai pada konsumen dan pengguna
pengguna
KIS—keep it simple! KIS—keep it simple!
Mengelola produk dan visi project Mengelola produk dan visi project
Apa yang anda hasilkan, yang lain akan Apa yang anda hasilkan, yang lain akan memanfaatkan
memanfaatkan
Terbukalah pada masa depan Terbukalah pada masa depan
Rencaana ke depan untuk menggunakan Rencaana ke depan untuk menggunakan kembali
kembali
Berpikir! Berpikir!
Praktek-Praktek RPL Praktek-Praktek RPL
Memahami bingkai kerja proses umum : Memahami bingkai kerja proses umum :
komunikasi komunikasi
perencanaan perencanaan
pemodelan pemodelan
konstruksi konstruksi
deployment deployment
Di sini kita akan mengidentifikasi : Di sini kita akan mengidentifikasi :
Prinsip-prinsip Prinsip-prinsip
Bagaimana memulai praktek Bagaimana memulai praktek
Sekelompok tugas yang bisa diperpendek Sekelompok tugas yang bisa diperpendek
Praktek Komunikasi Praktek Komunikasi
Prinsip-prinsip Prinsip-prinsip
Mendengar Mendengar
Persiapkan sebelum komunikasi Persiapkan sebelum komunikasi
Fasilitasi komunikasi Fasilitasi komunikasi
Tatap muka adalah yang terbaik Tatap muka adalah yang terbaik
Buat keputusan dan catatan tertulis Buat keputusan dan catatan tertulis
Kolaborasi dengan konsumen Kolaborasi dengan konsumen
Tetap fokus Tetap fokus
Buat gambar ketika ada sesuatu yang tidak jelas Buat gambar ketika ada sesuatu yang tidak jelas
Terus bergerak Terus bergerak
Negosiasi sukses ketika dua belah pihak menang. Negosiasi sukses ketika dua belah pihak menang.
Communication Practices Communication Practices
Inisiasi Inisiasi
Pihak terkait harus dekat satu dengan yang lain Pihak terkait harus dekat satu dengan yang lain
Pastikan komunikasi interaktif Pastikan komunikasi interaktif
Ciptakan ekosistem tim yang solid Ciptakan ekosistem tim yang solid
Gunakan struktur tim yang tepat Gunakan struktur tim yang tepat
Sekelompok tugas yang dapat diperpendek Sekelompok tugas yang dapat diperpendek
Kenali siapa yang perlu diajak bicara Kenali siapa yang perlu diajak bicara
Tentukan mekanisme terbaik untuk komunikasi Tentukan mekanisme terbaik untuk komunikasi
Buat tujuan keseluruhan dan tentukan ruang lingkup Buat tujuan keseluruhan dan tentukan ruang lingkup
Buat lebih detail Buat lebih detail
Stakeholder harus mendefinisikan skenario penggunaan Stakeholder harus mendefinisikan skenario penggunaan
Ambil fungsi-fungsi utamanya Ambil fungsi-fungsi utamanya
Review hasilnya dengan semua stakeholder Review hasilnya dengan semua stakeholder
Praktek Perencanaan Praktek Perencanaan
Prinsip-prinsip : Prinsip-prinsip :
Pahami ruang lingkup proyek Pahami ruang lingkup proyek
Libatkan konsumen (dan stakeholder yang lain) Libatkan konsumen (dan stakeholder yang lain)
Kenali bahwa perencanaan adalah iteratif Kenali bahwa perencanaan adalah iteratif
Lakukan estimasi berdasar apa yang anda ketahui Lakukan estimasi berdasar apa yang anda ketahui
Sadari resiko Sadari resiko
Realistis Realistis
Sesuaikan hal-hal kecil yang berserakan ketika anda Sesuaikan hal-hal kecil yang berserakan ketika anda merencanakan
merencanakan
Tentukan bagaimana kualitas dapat digapai Tentukan bagaimana kualitas dapat digapai
Tentukan bagaimana anda dapat mengakomodasi perubahan Tentukan bagaimana anda dapat mengakomodasi perubahan
Lacak apa yang telah anda rencanakan Lacak apa yang telah anda rencanakan
Praktek Perencanaan Praktek Perencanaan
Inisiasi Inisiasi
Berikan pertanyaan-pertanyaan Boehm : Berikan pertanyaan-pertanyaan Boehm :
Mengapa sistem mulai dikembangkan ? Mengapa sistem mulai dikembangkan ?
Apa yang akan dikerjakan ? Apa yang akan dikerjakan ?
Kapan itu akan selesai? Kapan itu akan selesai?
Siapa yang akan bertanggung jawab? Siapa yang akan bertanggung jawab?
Dimana mereka ditempatkan (secara organisatoris)? Dimana mereka ditempatkan (secara organisatoris)?
Bagaimana tugas diselesaikan, baik secara teknis maupun Bagaimana tugas diselesaikan, baik secara teknis maupun manajerial ?
manajerial ?
Berapa banyak untuk masing-masing sumberdayanya ? Berapa banyak untuk masing-masing sumberdayanya ?
Praktek Perencanaan Praktek Perencanaan
Sekelompok tugas yang bisa diperpendek Sekelompok tugas yang bisa diperpendek
Periksa kembali ruang lingkup project Periksa kembali ruang lingkup project
Periksa resiko Periksa resiko
Evaluasi fungsi/fitur Evaluasi fungsi/fitur
Pahami fungsi/fitur infrastruktur Pahami fungsi/fitur infrastruktur
Buat rencana bertahap : Buat rencana bertahap :
Jumlah tahapan PL Jumlah tahapan PL
Jadwal keseluruhan Jadwal keseluruhan
Tanggal penyajian untuk setiap tahapan Tanggal penyajian untuk setiap tahapan
Buat rencana awal yang baik untuk tahapan Buat rencana awal yang baik untuk tahapan pertama
pertama
Periksa kemajuan Periksa kemajuan
Praktek Pemodelan Praktek Pemodelan
Kita membuat model untuk mendapatkan pemahaman Kita membuat model untuk mendapatkan pemahaman yang lebih baik terhadap entitias aktual yang akan
yang lebih baik terhadap entitias aktual yang akan dibangun
dibangun
Model Analisis Model Analisis menampilkan kebutuhan konsumen menampilkan kebutuhan konsumen
dengan melukiskan PL dalam tiga domain yang berbeda dengan melukiskan PL dalam tiga domain yang berbeda
: domain informasi, domain fungsi, dan domain : domain informasi, domain fungsi, dan domain
perilaku.
perilaku.
Model Desain Model Desain menampilkan karakteristik PL yang menampilkan karakteristik PL yang membatu praktisi untuk mengkonstruksinya secara membatu praktisi untuk mengkonstruksinya secara
efektif : arsitektur, antarmuka, detail level komponen.
efektif : arsitektur, antarmuka, detail level komponen.
Praktek Pemodelan Analisis Praktek Pemodelan Analisis
Prinsip-prinsip pemodelan analisis Prinsip-prinsip pemodelan analisis
Menampilkan domain informasi Menampilkan domain informasi
Menampilkan fungsi PL Menampilkan fungsi PL
Menampikan perilaku PL Menampikan perilaku PL
Partisi dari tiga representasi ini Partisi dari tiga representasi ini
Bergerak dari esensi menuju implementasi Bergerak dari esensi menuju implementasi
Elemen-elemen model analisis (Bab 8) Elemen-elemen model analisis (Bab 8)
Data model Data model
Flow model Flow model
Class model Class model
Behavior model Behavior model
Praktek Pemodelan Desain Praktek Pemodelan Desain
Prinsip-prinsip : Prinsip-prinsip :
Desain harus dapat dilacak dari model analisis Desain harus dapat dilacak dari model analisis
Senantiasa memahami arsitektur Senantiasa memahami arsitektur
Fokus pada desain data Fokus pada desain data
Antarmuka (pengguna maupun internal) harus didesain Antarmuka (pengguna maupun internal) harus didesain
Komponen harus menunjukkan independensi fungsional Komponen harus menunjukkan independensi fungsional
Komponen-komponen harus “loosely coupled” Komponen-komponen harus “loosely coupled”
Representasi desain harus mudah dipahami Representasi desain harus mudah dipahami
Model desain harus dikembangkan secara iteratif Model desain harus dikembangkan secara iteratif
Elemen-elemen model desain Elemen-elemen model desain
Data design Data design
Architectural design Architectural design
Component design Component design
Interface design Interface design
Praktek Konstruksi Praktek Konstruksi
Prinsip Persiapan : Sebelum anda menulis satu baris Prinsip Persiapan : Sebelum anda menulis satu baris kode, pastikan bahwa anda :
kode, pastikan bahwa anda :
Memahami permasalahan yang anda coba selesaikan (lihat Memahami permasalahan yang anda coba selesaikan (lihat komunikasi
komunikasi dan dan pemodelan pemodelan ) )
Memahami prinsip dan konsep desain dasar. Memahami prinsip dan konsep desain dasar.
Mengambil bahasa pemrograman yang memenuhi kebutuhan PL Mengambil bahasa pemrograman yang memenuhi kebutuhan PL untuk dibangun dan lingkungan dimana dia beroperasi.
untuk dibangun dan lingkungan dimana dia beroperasi.
Pilih lingkungan pemrograman yang menyediakan tool untuk Pilih lingkungan pemrograman yang menyediakan tool untuk memudahkan perkerjaan anda.
memudahkan perkerjaan anda.
Buat sejumlah tes unit yang akan dilakukan ketika kode komponen Buat sejumlah tes unit yang akan dilakukan ketika kode komponen sudah lengkap
sudah lengkap.
Praktek Konstruksi Praktek Konstruksi
Prinsip-prinsip coding: Prinsip-prinsip coding: ketika mulai menulis program, pastikan anda : ketika mulai menulis program, pastikan anda :
Batasi algoritma anda dengan mengikuti ketentuan pemrograman Batasi algoritma anda dengan mengikuti ketentuan pemrograman terstruktur.
terstruktur.
Pilih struktur data yang memenuhi kebutuhan desain. Pilih struktur data yang memenuhi kebutuhan desain.
Pahami arsitektur PL dan buat antarmuka yang konsisten dengannya. Pahami arsitektur PL dan buat antarmuka yang konsisten dengannya.
Jaga logika kondisional sesederhana mungkin. Jaga logika kondisional sesederhana mungkin.
Buat perulangan bersarang dg cara yang membuatnya mudah untuk diuji. Buat perulangan bersarang dg cara yang membuatnya mudah untuk diuji.
Pilih nama-nama variabel yang bermakna, dan ikuti standar lokal yang lain. Pilih nama-nama variabel yang bermakna, dan ikuti standar lokal yang lain.
Tulislah kode yang self-documenting. Tulislah kode yang self-documenting.