Resume RPL
Resume RPL
Erlina Pujiasri A
207533408610
2/26/2010
Malang State University
Erlina Pujiasri A.
Daftar Isi
1. Perangkat Lunak ...................................................................................................... 1
1.1 Karakteristik Perangkat Lunak ...................................................................... 1
1.2 Komponen Perangkat lunak ............................................................................ 2
1.3 Aplikasi Perangkat Lunak ............................................................................... 2
2. Rekayasa Perangkat Lunak ..................................................................................... 4
2.1 Tujuan Rekayasa Perangkat Lunak ............................................................... 5
2.2 Ruang Lingkup.................................................................................................. 5
3. Mitos Rekayasa Perangkat Lunak .......................................................................... 6
4. Proses Perangkat Lunak .......................................................................................... 8
5. Model Proses Perangkat Lunak............................................................................... 9
5.1 Model Konvensional ......................................................................................... 9
Linear SequentialModel/ Waterfall Model ............................................................. 9
Model Prototyping .................................................................................................. 10
RAD (Rapid Application Development) ............................................................... 11
5.2 Model Evolusioner .......................................................................................... 12
1. Incremental Model (Original: Mills) ............................................................. 12
2. Spiral Model (Original: Boehm) .................................................................... 13
1
1. Perangkat Lunak
Perangkat lunak, adalah program komputer yang berfungsi sebagai sarana
interaksi antara pengguna dan perangkat keras. Perangkat lunak dapat juga
dikatakan sebagai 'penterjemah' perintah-perintah yang dijalankan pengguna
komputer untuk diteruskan ke atau diproses oleh perangkat keras. Perangkat lunak
ini dibagi menjadi 3 tingkatan: tingkatan program aplikasi (application program
misalnya OpenOffice.org), tingkatan sistem operasi (operating system misalnya
Ubuntu), dan tingkatan bahasa pemrograman (yang dibagi lagi atas bahasa
pemrograman tingkat tinggi seperti Pascal dan bahasa pemrograman tingkat
rendah yaitu bahasa rakitan).
Perangkat lunak merupakan program komputer yang isi instruksinya dapat
diubah dengan mudah. Perangkat lunak umumnya digunakan untuk mengontrol
perangkat keras (yang sering disebut sebagai device driver), melakukan proses
perhitungan, berinteraksi dengan perangkat lunak yang lebih mendasar lainnya
(seperti sistem operasi, dan bahasa pemrograman), dan lain-lain.
Gambaran tentang perangkat lunak di dalam sebuah buku teks mungkin
mengambil bentuk berikut :
1. Perangkat lunak merupakan perintah (program komputer) yang bila dieksekusi
memberikan fungsi dan unjuk kerja seperti yang diinginkan.
2. Perangkat lunak adalah struktur data yang memungkinkan program
memanipulasi informasi secara proporsional, dan
3. Perangkat lunak merupakan dokumen yang menggambarkan operasi dan
kegunaan program.
1
3. Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat
dirakit dari komponen yang sudah ada. Perhatikan bagaimana perangkat keras
untuk produksi berbasis mikroprosesor dirancang dan dibuat. Setelah masing-
masing komponen diseleksi, perangkat keras dapat dipesan secara terpisah.
Sementara pada perangkat lunak, tidak katalog komponen perangkat lunak.
Memang memungkinkan untuk memesan perangkat lunak secara terpisah,
tetapi tetap merupakan satu kesatuan yang lengkap, bukan sebagai komponen
yang dapat dipasangkan ke dalam program-program yang baru.
2
Perangkat Lunak Sistem. Perangkat lunak sistem merupakan sekumpulan
program yang ditulis untuk melayani program-program yang lain. Banyak
perangkat lunak sistem (misal kompiler, editor, dan utilitas pengatur file)
memproses struktur-struktur informasi yang lengkap namun tetap. Perangkat
lunak sistem ditandai dengan eratnya interaksi dengan perangkat keras komputer.
Perangkat Lunak Teknik dan Ilmu Pengetahuan. Perangkat lunak teknik dan
ilmu pengetahuan ditandai algoritma number crunching. Perangkat lunak ini
memiliki jangkauan aplikasi mulai dari astronomi sampai vulkanologi, dari
analisis otomotif sampai dinamika orbit pesawat ruang angkasa, dan dari biologi
molekuler sampai pabrik yang sudah diotomatisasi. Computer-aided design,
simulasi sistem, dan aplikasi interaktif yang lain, sudah mulai memakai ciri-ciri
perangkat lunak sistem genap dan real-time.
3
Perangkat Lunak Komputer Personal. Pengolah kata, spreadsheet, grafik
komputer, multimedia, hiburan, manajemen database, aplikasi keuangan, bisnis
dan personal, jaringan eksternal atau akses database hanya merupakan beberapa
saja dari ratusan aplikasi yang ada.
4
2.1 Tujuan Rekayasa Perangkat Lunak
Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain.
Mari kita perhatikan Gambar 1. berikut ini.
5
Software configuration management berhubungan dengan usaha
perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan
tertentu.
Software engineering management berkaitan dengan pengelolaan dan
pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
Software engineering tools and methods mencakup kajian teoritis tentang
alat bantu dan metode RPL.
Software engineering process berhubungan dengan definisi, implementasi,
pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
Software quality menitikberatkan pada kualitas dan daur hidup perangkat
lunak.
6
Mitos : Jika kita mentaati jadwal, kita dapat menambah lebih banyak lagi
pemrogram dan mengejar ketinggalan (kadang-kadang disebut
“Mongolian horde concept”).
Kenyataan : Perkembangan perangkat lunak bukan merupakan proses
mekanis seperti pemanufakturan. Semakin manusia bertambah, para
personil yang sudah bekerja lebih lama harus menggunakan waktu untuk
membimbing pendatang baru, sehingga akan mengurangi jumlah waktu
yang digunakan dalam fase pengembangan produksi.
Mitos Para Praktisi. Seperti yang ditulis sebelumnya, selama masa awal
perangkat lunak, pemrograman dilihat sebagai sebuah karya seni. Cara dan
kebiasaan lama tetap sukar lenyap.
Mitos: Sekali kita menulis program, dan dapat membuatnya bekerja,
pekerjaan kita akan terselesaikan.
Kenyataan: Data industri menunjukkan bahwa antara 50 sampai 70 dari
semua usaha yang dilakukan pada sebuah program akan terus dilakukan
sampai program diantar ke tangan konsumen untuk yang pertama kalinya.
7
Mitos: Saya benar-benar tidak mempunyai cara untuk “menilai” kualitas
program, kecuali jika saya dapat membuat program itu “berjalan”.
Kenyataan: Salah satu dari mekanisme jaminan kualitas perangkat lunak
yang paling efektif dapat diperkirakan dari awal proyek – formal technical
review. Tinjauan perangkat lunak merupakan “filter kualitas” yang lebih
efektif daripada pengujian untuk menemukan kelas-kelas kesalahan
perangkat lunak yang khusus.
8
5. Model Proses Perangkat Lunak
Merupakan suatu representasi proses software yang disderhanakan,
dipresentasikan dari perspektif khusus
5.1 Model Konvensional
Model konvensional pada proses perangkat lunak mulai dikembangkan
sebelum pertengahan 1970-an. Dengan ciri cara spesifikasi narrative Victorian
novel, hard to read, hard to understand, dan virtually impossible to maintain.
Banyak macam model konvensional “klasik”, antara lain:
Linear Sequential Model / Waterfall Model
Prototyping Model
RAD (Rapid Application Development) Model
9
3. Implementation and unit testing: desain program diterjemahkan ke dalam
kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan.
Program yang dibangun langsung diuji baik secara unit.
4. Integration and system testing: Penyatuan unit-unit program kemudian diuji
secara keseluruhan (system testing).
5. Operation and maintenance: mengoperasikan program dilingkungannya dan
melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi
dengan situasi sebenarnya.
Kekurangan yang utama dari model ini adalah kesulitan dalam
mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus
lengkap dan selesai sebelum mengerjakan fase berikutnya.
Masalah dengan waterfall :
1. Perubahan sulit dilakukan karena sifatnya yang kaku.
2. Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara
lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada
kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan
kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar
terjadi.
3. Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana
proyek dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa
bagian sub-proyek.
Model Prototyping
Kadang-kadang klien hanya memberikan beberapa kebutuhan umum
software tanpa detil input, proses atau detil output. Di lain waktu mungkin dimana
tim pembangun (developer) tidak yakin terhadap efisiensi dari algoritma yang
digunakan, tingkat adaptasi terhadap sistem operasi atau rancangan form user
interface. Ketika situasi seperti ini terjadi model prototyping sangat membantu
proses pembangunan software.
Proses pada model prototyping yang digambarkan pada gambar 1, bisa
dijelaskan sebagai berikut:
pengumpulan kebutuhan: developer dan klien bertemu dan menentukan tujuan
umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan
dibutuhkan berikutnya. Detil kebutuhan mungkin tidak dibicarakan disini,
pada awal pengumpulan kebutuhan
perancangan : perancangan dilakukan cepat dan rancangan mewakili semua
aspek software yang diketahui, dan rancangan ini menjadi dasar pembuatan
prototype.
Evaluasi prototype: klien mengevaluasi prototype yang dibuat dan digunakan
untuk memperjelas kebutuhan software.
10
Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan
terpenuhi. Prototype-prototype dibuat untuk memuaskan kebutuhan klien dan
untuk memahami kebutuhan klien lebih baik.
Prototype yang dibuat dapat dimanfaatkan kembali untuk membangun
software lebih cepat, namun tidak semua prototype bisa dimanfaatkan.
Sekalipun prototype memudahkan komunikasi antar developer dan klien,
membuat klien mendapat gambaran awal dari prototype , membantu mendapatkan
kebutuhan detil lebih baik namun demikian prototype juga menimbulkan masalah:
1. dalam membuat prototype banyak hal yang diabaikan seperti efisiensi,
kualitas, kemudahan dipelihara/dikembangkan, dan kecocokan dengan
lingkungan yang sebenarnya. Jika klien merasa cocok dengan prototype yang
disajikan dan berkeras terhadap produk tersebut, maka developer harus kerja
keras untuk mewujudkan produk tersebut menjadi lebih baik, sesuai kualitas
yang seharusnya.
2. developer biasanya melakukan kompromi dalam beberapa hal karena harus
membuat prototype dalam waktu singkat. Mungkin sistem operasi yang tidak
sesuai, bahasa pemrograman yang berbeda, atau algoritma yang lebih
sederhana.
Agar model ini bisa berjalan dengan baik, perlu disepakati bersama oleh
klien dan developer bahwa prototype yang dibangun merupakan alat untuk
mendefinisikan kebutuhan software.
11
Fase-fase di atas menggambarkan proses dalam model RAD. Sistem
dibagi-bagi menjadi beberapa modul dan dikerjakan dalam waktu yang hampir
bersamaan dalam batasan waktu yang sudah ditentukan.
1. Business modelling : menjawab pertanyaan-pertanyaan: informasi apa yang
mengendalikan proses bisnis? Informasi apa yang dihasilkan? Siapa yang
menghasilkan informasi? Kemana informasi itu diberikan? Siapa yang
mengolah informasi? kebutuhan dari sistem
2. Data modelling: aliran informasi yang sudah didefinisikan, disusun menjadi
sekumpulan objek data. Ditentukan karakteristik/atribut dan hubungan antar
objek-objek tersebut analisis kebutuhan dan data
3. Process Modelling : objek data yang sudah didefinisikan diubah menjadi
aliran informasi yang diperlukan untukmenjalankan fungsi-fungsi bisnis.
4. Application Generation: RAD menggunakan component program yang sudah
ada atau membuat component yang bisa digunakan lagi, selama diperlukan.
6. Testing and Turnover: karena menggunakan component yang sudah ada,
maka kebanyakan component sudah melalui uji atau testing. Namun
component baru dan interface harus tetap diuji.
12
1) kombinasikan element-element dari waterfall dengan sifat iterasi/perulangan.
2) element-element dalam waterfall dikerjakan dengan hasil berupa produk
dengan spesifikasi tertentu, kemudian proses dimulai dari fase pertama hingga
akhir dan menghasilkan produk dengan spesifikasi yang lebih lengkap dari
yang sebelumnya. Demikian seterusnya hingga semua spesifikasi memenuhi
kebutuhan yang ditetapkan oleh pengguna.
3) produk hasil increment pertama biasanya produk inti (core product), yaitu
produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh
pengguna atau menjalani review/pengecekan detil. Hasil review tersebut
menjadi bekal untuk pembangunan pada increment berikutnya. Hal ini terus
dikerjakan sampai produk yang komplit dihasilkan.
4) model ini cocok jika jumlah anggota tim pengembang/pembangun PL tidak
cukup.
5) Mampu mengakomodasi perubahan secara fleksibel.
6) Produk yang dihasilkan pada increment pertama bukanlah prototype, tapi
produk yang sudah bisa berfungsi dengan spesifikasi dasar.
Masalah dengan Incremental model:
a. cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding)
b. mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam
rencana spesifikasi masing-masing hasil increment
Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari
software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop
selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan
desain sistem dan seterusnya. Setiap Loop dibagi menjadi beberapa sektor :
1. Objective settings (menentukan tujuan): menentukan tujuan dari fase yang
ditentukan. Batasan-batasan pada proses dan produk sudah diketahui.
Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif
13
strategi sudah disiapkan berdasarkan resiko-resiko yang diketahui, dan sudah
direncanakan.
2. Risk assessment and reduction (Penanganan dan pengurangan resiko): setiap
resiko dianalisis secara detil pada sektor ini. Langkah-langkah penanganan
dilakukan, misalnya membuat prototype untuk mengetahui ketidakcocokan
kebutuhan.
3. Development and Validation (Pembangunan dan pengujian): Setelah evaluasi
resiko, maka model pengembangan sistem dipilih. Misalnya jika resiko user
interface dominan, maka membuat prototype User Interface. Jika bagian
keamanan yang bermasalah, makamenggunakan model formal dengan
perhitungan matematis, dan jika masalahnya adalah integrasi sistem model
waterfall lebih cocok.
4. Planning: Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus
ke fase loop selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya
rencana untuk loop selanjutnya.
Pembagian sektor tidak bisa saja dikembangkan seperti pada pembagian
sektor berikut pada model variasi spiral di bawah ini:
14