BAB 1
PENGANTAR RPL
Rekayasa perangkat lunak merupakan sebuah
disiplin ilmu yang bertujuan mengembangkan sistem perangkat lunak yang efektif
dari segi biaya. Perangkat lunak bersifat abstrak dan tidak nyata. Rekayasa
perangkat lunak masih merupakan disiplin yang relatif muda. Istilah rekayasa
perangkat lunak pertama kali diajukan pada tahun 1968.
1.1 PENGERTIAN RPL
Banyak orang menyamakan istilah perangkat lunak
dengan program komputer. Sesungguhnya pandangan ini terlalu dangkal, perangkat
lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan
konfigurasi data yang berhubungan (Sommerville, 2003). Rekayasa perangkat lunak
adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai
dari tahap awal spesifikasi sistem sampai pemeliharaan.
Di sisi lain terdapat istilah yang juga tidak
kalah populer adalah computer science atau ilmu komputer.
Pada intinya computer science
berhubungan dengan teori dan metode yang mendasari sistem komputer dan
perangkat lunak. Sedangkan rekayasa perangkat lunak berhubungan dengan
masalah-masalah praktis dalam memproduksi perangkat lunak. Pengetahuan tetang computer science sangat penting bagi
perekayasa perangkat lunak sama seperti pengetahuan tentang fisika sangat
penting bagi teknik kelistrikan.
Istilah lain yang juga populer adalah rekayasa
sistem atau rekayasa sistem berbasis komputer. Rekayasa sistem berhubungan
dengan pengembangan perangkat keras, perancangan kebijakan dan proses, dan
penyebaran sistem sebagaimana pada rekayasa perangkat lunak. Rekayasa sistem
merupakan disiplin yang lebih tua dari rekayasa perangkat lunak.
1.1.1
Product
Saat ini perangkat lunak memiliki dua peran. Peran pertama berfungsi sebagai sebuah produk
dan peran kedua sebagai kendaraan yang mengantarkan sebuah produk (Pressman,
2002). Sebagai produk perangkat lunak
mengantarkan potensi perhitungan yang dibangun oleh perangkat lunak komputer.
Tidak peduli apakah perangkat lunak ada dalam telepon seluler, dalam mainframe
komputer. Perangkat lunak merupakan transformer
informasi yang memproduksi, mengatur, memperoleh, memodifikasi, menampilkan
atau menyebarkan informasi dimana pekerjaan ini dapat menjadi sederhana suatu
bit tunggal atau sekompleks simulasi multimedia. Sebagai kendaraan yang dipakai
untuk mengantarkan produk, perangkat
lunak berlaku sebagai dasar untuk kontrol komputer (sistem operasi), komunikasi
informasi (jaringan komputer).
Untuk memperoleh pemahaman tentang perangkat
lunak serta pemahaman tentang rekayasa perangkat lunak penting juga untuk
mengetahui karakteristik yang membuat perangkat lunak berbeda dengan dengan
produk lain yang dihasilkan oleh manusia. Ketika perangkat lunak dibuat proses
kreatif manusia (analisis, desain, konstruksi dan pengujian) diterjemahkan ke
dalam bentuk fisik.
1.1.2 Process
Proses perangkat lunak merupakan serangkaian
kegiatan dan hasil-hasil relevan yang menghasilkan perangkat lunak. Kegiatan-kegiatan ini sebagian besar dilakukan
oleh perekayasa perangkat lunak. Ada empat kegiatan proses dasar perangkat
lunak:
1)
Spesifikasi
perangkat lunak, fungsional perangkat lunak dan batasan kemampuan operasinya
harus didefinisikan.
2)
Pengembangan
perangkat lunak, perangkat lunak yang memenuhi spesifikasi tersebut harus
dipenuhi.
3)
Validasi
perangkat lunak, perangkat lunak harus divalidasi untuk menjamin bahwa
perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
4)
Evolusi
perangkat lunak, perangkat lunak harus dikembangkan untuk memenuhi kebutuhan
pelanggan yang berubah-ubah.
Proses perangkat lunak yang berbeda mengatur kegiatan
ini dengan cara yang berbeda dan dijelaskan dengan tingkat kerincian yang
berbeda pula. Waktu kegiatan bervariasi, sebagaimana hasilnya.
Proses perangkat lunak sangat rumit dan seperti
semua proses intelektual, bergantung pada penilaian manusia. Karena dibutuhkan
penilaian dan kreatifitas keberhasilan usaha untuk mengotomasi proses perangkat
lunak menjadi terbatas. Satu alasan mengapa otomasi proses memiliki cakupan
terbatas adalah adanya keragaman proses perangkat lunak. Tidak ada proses yang
ideal dan organisasi berbeda yang mengembangkan pendekatan yang benar-benar
berbeda dalam pengembangan perangkat lunak.
1.1.2.1 Model Proses Perangkat Lunak
Model proses perangkat lunak merupakan
deksripsi yang disederhanakan dari proses perangkat lunak yang dipresentasikan
dengan sudut pandang tertentu. Model sesuai sifatnya, merupakan penyederhanaan
sehingga model proses bisa mencakup kegiatan yang merupakan bagian dari proses
perangkat lunak, produk perangkat lunak, peran orang yang terlibat pada
rekayasa perangkat lunak.
1)
Model Air Terjun (Waterfall)
Model ini
dikenal sebagai model air terjun atau siklus hidup pengembangan perangkat
lunak. Model ini dapat dilihat pada Gambar 1.1. Tahap-tahap utama dari model
ini memetakan kegiatan-kegiatan pengembangan dasar, yaitu:
1) Analisis dan Definisi persyaratan.
Pelayanan, batasan dan tujuan sistem ditentukan melalui konsultasi dengan user
sistem. Persyaratan ini kemudian didefinisikan secara rinci dan berfungsi
sebagai spesifikasi sistem.
2) Perancangan sistem dan perangkat
lunak. Proses perancangan sistem membagi persyaratan dalam sistem perangkat
keras atau perangkat lunak. Kegiatan ini menentukan arsitektur sistem secara
keseluruhan. Perancangan perangkat lunak melibatkan identifikasi dan deskripsi
abstraksi sistem perangkat lunak yang mendasar dan hubungan-hubungannya.
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.
Gambar 1.1
Model Waterfall
2)
Model Sekuensial Linier
Gambar 1.2a
menggambarkan sekuensial linier untuk
rekayasa perangkat lunak, yang sering disebut juga dengan “siklus kehidupan
klasik” atau “model air terjun.”
Gambar 1.2a Fase lingkaran pemecahan masalah (Raccoon, 1995)
Gambar 1.2b
Fase-fase di dalam fase lingkaran
pemecahan masalah (Raccoon, 1995)
Gambar 1.3
Model sekuensial linier
Sekuensial
linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang
sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada
seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Dimodelkan setelah
siklus rekayasa konvensional, model sekuensial linier melingkupi
aktivitas-aktivitas sebagai berikut:
a) Rekayasa dan Pemodelan Sistem/Informasi
Karena perangkat lunak selalu merupakan
bagian dari sebuah sistem (bisbis) yang lebih besar, kerja dimulai dengan
membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset
dari kebutuhan ke perangkat lunak tersebut. Pandangan sistem ini penting ketika
perangkat lunak harus berhubungan dengan elemen-elemen yang lain seperti
perangkat lunak, manusia, dan database. Rekayasa dan analisis sistem menyangkut
pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta
desain tingkat puncak. Rekayasa informasi mencakup juga pengumpulan kebutuhan
pada tingkat bisnis strategis dan tingkat area bisnis.
b) Analisis Kebutuhan Perangkat Lunak
Proses pengumpulan kebutuhan
diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami
sifat program yang dibangun, perekayasa perangkat lunak (analis) harus memahami
domain informasi, tingkah laku, unjuk kerja, dan antar-muka (interface) yang diperlukan. Kebutuhan
baik untuk sistem maupun perangkat lunak di dokumentasikan dan dilihat lagi
dengan pelanggan.
c) Desain
Desain perangkat lunak sebenarnya
adalah proses multi langkah yang berfokus pada empat atribut sebuah program
yang berbeda; struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma)
procedural. Proses desain menerjemahkan syarat/kebutuhan ke dalam sebuah
representasi perengkat lunak yang dapat diperkirakan demi kualitas sebelum
dimulai pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan
menjadi bagian dari konfigurasi perangkat lunak.
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.
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.
Model sekuensial linier adalah
paradigma rekayasa perangkat lunak yang paling luas dipakai dan paling tua.
Tetapi kritik dari paradigma tersebut telah menyebabkan dukungan aktif untuk
mempertanyakan kehandalannya (Hanna, 1995). Masalah-masalah yang kadang–kadang
terjadi ketika model sekuensial linier diaplikasikan adalah:
a) Jarang sekali proyek nyata mengikuti
aliran sekuensial yang dianjurkan oleh model. Meskipun model linier bias
mengakomodasi iterasi, model itu melakukannya dengan cara tidak langsung.
Sebagai hasilnya, perubahan-perubahan dapat menyebabkan keraguan pada saat tim
proyek berjalan.
b) Kadang-kadang sulit bagi pelanggan
untuk menyatakan semua kebutuhannya secara ekplisit. Model linier sekuensial
memerlukan hal ini dan mengalami kesulitan untuk mengakomodasi ketidakpastian
natural yang ada pada bagian awal beberapa proyek.
c) 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.
d) 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.
Masing-masing dari masalah tersebut
bersifat riil. Tetapi paradigm siklus kehidupan klasik memiliki tempat yang
terbatas namun penting di dalam kerja rekayasa perangkat lunak. Paradigma itu
memberikan template dimana metode
analisis, desain, pengkodean, pengujian, dan pemeliharaan bisa dilakukan.
Siklus kehidupan klasik tetap menjadi model bagi rekayasa perangkat lunak yang
paling luas dipakai. Sekalipun memiliki kelemahan, secara signifikan dia lebih
baik daripada pendekatan yang sifatnya sembrono kepada pengembangan perangkat
lunak.
3)
Model Prototipe
Sering
seorang pelanggan mendifinisikan serangkaian sasaran umum bagi perangkat lunak,
tetapi tidak melakukan mengidentifikasi kebutuhan output, pemrosesan, ataupun
input detail. Pada kasus yang lain, pengembang mungkin tidak memiliki kepastian
terhadap efisiensi algoritme, kemampuan penyesuaian dari sebuah system operasi,
atau bentuk-bentuk yang harus dilakukan oleh interaksi manusia dengan mesin.
Dalam hal ini, serta pada banyak situasi yang lain, prototyping paradigm mungkin menawarkan pendekatan yang terbaik.
Prototyping paradigma (Gambar 1.4) dimulai dengan
pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan
obyektif keseluruhan dari perangkat lunak, mengidentifikasi segala kebutuhan
yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan
keharusan kemudian dilakukan “perancangan kilat”. Perancangan kilat berfokus
pada penyajian dari aspek –aspek perangkat lunak tersebut yang akan Nampak bagi
pelanggan/pemakai (contohnya pendekatan input dan format output). Perancangan
kilat membawa kepada konstruksi sebuah prototype. Prototipe tersebut dievaluasi
oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan
perangkat lunak. Iterasi terjadi pada saat protipe disetel untuk memenuhi
kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk
secara lebih baik memahami apa yang harus dilakukannya.
Mendengarkan
Pelanggan
|
Uji Pelanggan-Mengendalikan Market
|
Membangun Memperbaiki Market
|
Gambar 1.4 Prototipe Paradigma
Secara ideal
prototype berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan
perangkat lunak. Bila prototype yang sedang bekerja dibangun, pengembang harus
mempergunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat
bantu (contohnya report generator, window manager, dll) yang memungkinkan
program yang bekerja untuk dimunculkan secara cepat.
Tetapi apa
yang kita lakukan dengan prototype tersebut pada saat dia sudah melayani usulan
yang digambarkan di atas? (Brooks, 1975) memberikan jawabannya:
Pada
sebagian besar proyek, system pertama yang dibangun baru saja bisa
dipergunakan. Sistem mungkin terlalu pelan, terlalu besar, janggal di dalam
pemakaian, atau bahkan ketiganya. Tidak ada alternatif lain selain mulai lagi,
tidak dengan halus tetapi dengan lebih halus lagi, dan membangun sebuah versi
yang dirancang kembali di mana masalah-masalah tersebut bisa diselesaikan …
Ketika sebuah konsep system baru atau teknologi baru dipergunakan, seseorang
harus membangun sebuah system sebagai pembuangan, bahkan untuk perencanaan
terbaik sekalipun, tidak akan mudah untuk membuatnya benar pada pertama
kalinya. Dengan demikian, pertanyaan manajemen tidaklah untuk membangun sebuah
system contoh dan untuk membuangnya. Anda akan melakukannya. Satu-satunya
pertanyaan adalah apakah akan merencanakan lebih dulu untuk membangun sebuah
pembuangan, atau menjanjikan untuk menyampaikan pembuangan tersebut kepada
pelanggan …………..
Prototipe
bisa berfungsi sebagai “system yang pertama”. Brooks setuju bila kita
membuangnya. Tetapi mungkin ini merupakan pandangan yang ideal. Memang benar
bahwa baik pelanggan maupun pengembang menyukai paradigma prototype. Para
pemakai merasa enak dengan system aktual, sedangkan pengembang bisa
membangunnya dengan segera. Tetapi prototyping bisa juga menjadi masalah karena alasan-alasan sebagai berikut:
a) Pelanggan melihat apa yang tampak
sebagai versi perangkat lunak yang bekerja tanpa melihat bahwa prototype itu
dijalin bersama-sama “dengan permen karet dan baling wire”, tanpa melihat bahwa di dalam permintaan untuk
membuatnya bekerja, kita belum mencantumkan kualitas perangkat lunak secara
keseluruhan atau kemampuan pemeliharaan untuk jangka waktu yang panjang. Ketika
diberi informasi bahwa produk harus dibangun lagi agar tingkat kualitas yang tinggi
bisa dijaga, pelanggan akan meneriakkan kecurangan dan permintaan agar dipakai
“beberapa campuran” untuk membuat protipe menjadi sebuah produk yang bekerja
yang lebih sering terjadi, sehingga manajemen pengembangan perangkat lunak
menjadi penuh dengan belas kasihan.
b) Pengembang sering membuat
kompromi-kompromi implementasi untuk membuat prototype bekerja dengan cepat.
Sistem operasi atau bahasa pemrograman yang tidak sesuai bisa dipakai secara
sederhana karena mungkin diperoleh dan dikenal; algoritma yang tidak efisien
secara sederhana bisa diimplementasikan untuk mendemontrasikan kemampuan.
Setelah selang waktu tertentu, pengembang mungkin mengenali pilihan-pilihan
tersebut dan melupakan semua alasan mengapa mereka tidak cocok. Pilihan yang
kurang ideal telah menjadi bagian integral dari sebuah system.
Meskipun
berbagai masalah bisa terjadi, prototype bisa menjadi paradigm yang efektif
bagi rekayasa perangkat lunak. Kuncinya adalah mmendefinisikan aturan-aturan
main pada saat awal; yaitu pelanggan dan pengembang keduanya harus setuju bahwa
prototype dibangun untuk berfungsi sebagai mekanisme pendefinisian kebutuhan.
Prototipe kemudian disingkirkan (paling tidak sebagian), dan perangkat lunak
actual direkayasa dengan tertuju kepada kualitas dan kemampuan pemeliharaan.
4)
Pengembangan Evolusioner
Pengembangan evolusioner berdasarkan ide untuk
mengembangkan implementasi awal, memperlihatkannya kepada user untuk
dikomentari, dan memperbaikinya versi demi versi sampai sistem yang memenuhi
persyaratan diperoleh. Model pengembangan evolusioner dapat dilihat pada Gambar
1.5.
Gambar 1.5
Model Evolusioner
5)
Pengembangan Sistem Formal
Pengembangan sistem formal merupakan pendekatan
terhadap pengembangan perangkat lunak yang memiliki kesamaan dengan model air
terjun (waterfall). Tetapi proses
pengembangannya didasarkan pada transformasi matematis dari spesifikasi sistem
menjadi program yang dapat dijalankan. Model pengembangan sistem formal dapat
dilihat pada Gambar 1.6.
Gambar 1.6
Model Sistem Formal
6)
Pengembangan Berorientasi Pemakaian
Ulang
Pada pengembangan perangkat lunak yang besar,
terjadi pemakaian ulang. Hal ini biasanya terjadi secara informal ketika orang
yang bekerja di proyek tersebut mengetahui adanya rancangan atau kode yang
mirip dengan yang dibutuhkan. Mereka mencari rancangan atau kode ini,
memodifikasinya sebagaimana dibutuhkan, dan menggabungkannya dalam sistem.
Model pengembangan berorientasi pemakaian ulang dapat dilihat pada Gambar 1.7.
Gambar 1.7
Model Pengembangan Berorientasi Pemakaian Ulang
1.2 KEGUNAAN RPL
Perangkat lunak kini sudah menjadi kekuatan
yang menentukan.
Perangkat lunak menjadi mesin yang mengendalikan pengambilan keputusan di dalam
dunia bisnis. Berfungsi sebagai dasar dari semua bentuk pelayanan serta
penelitian keilmuan modern. Perangkat lunak dilekatkan pada semua sistem,
seperti transportasi, medis, telekomunikasi, militer, proses industri, hiburan,
produk kantor dan sebagainya. Program-program perangkat lunak sudah tersebar
secara luas, dan masyarakat memandangnya sebagai kenyataan teknologi dalam
kehidupan.
1.3 PERKEMBANGAN RPL
Selama masa awal era komputer, perangkat lunak dilihat
hanya sebagai suatu permenungan. Pemrograman komputer menjadi seni di mana di
situ terdapat banyak metode yang sistematis. Perkembangan perangkat lunak
sebenarnya tidak dapat diatur sampai terjadi jadwal yang bergeser, atau biaya
yang mulai melonjak. Para pemrogram kemudian mulai berusaha untuk membuat
semuanya benar kembali.
Era kedua evolusi sistem komputer melingkupi decade pertengahan
tahun 1960 dan 1970-an. Sistem multiprogram dan multiprosesor memperkenalkan
konsep baru interkasi manusia dan komputer. Konsep ini membuka sebuah dunia
aplikasi yang baru serta tingkat kecanggihan perangkat lunak dan perangkat
keras yang baru pula. Sistem real-time dapat mengumpulkan, menganalisis, serta
mengubah data dari banyak sumber sehingga proses pengontrolan dan penghasilan
output tidak lagi berada dalam skala menit, melainkan detik. Kemajuan dalam
penyimpanan online membawa ke generasi pertama sistem manajemen database.
Tabel 1.1 perkembangan RPL
Tahun-Tahun
Awal
|
Era
Kedua
|
Era
Ketiga
|
Era
Keempat
|
- Orientasi Batch
- Distribusi terbatas
- Perangkat lunak customisasi
|
- Multiuser
- Real-time
- Database
- Perangkat lunak produk
|
- Sistem terdistribusi
- Embedded intelligence
- Perangkat keras rendah biaya
|
- System desktop bertenaga kuat
- Teknologi berorientasi objek
- Sistem pakar
- Jarigan syaraf tiruan
- Komputasi parallel
- Komputer jaringan
|
1.4 DESKRIPSI RPL
Secara umum rekayasa perangkat lunak memakai
pendekatan yang sistematis dan terorganisir terhadap pekerjaan karena cara ini
seringkali paling efektif untuk menghasilkan perangkat lunak. Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek
produksi perangkat lunak. Mulai dari tahap awal spesifikasi sistem sampai
pemeliharaan sistem setelah digunakan. Pada definisi ini ada dua istilah
kunci:
1)
Disiplin Rekayasa
Perekayasa membuat suatu alat bekerja. Mereka
menerapkan teori, metode, dan alat bantu yang sesuai. Selain itu mereka juga
menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap
permasalahan, walaupun tidak ada teori atau metode yang mendukung. Perekayasa
juga menyadari bahwa mereka harus bekerja dalam batasan organisasi dan
keuangan, sehingga mereka berusaha mencari solusi dalam batasan-batasan ini.
2)
Semua Aspek Produksi Perangkat Lunak
Rekayasa perangkat lunak tidak hanya berhubungan
dengan proses teknis dari pengembanga perangkat lunak, tetapi juga dengan
kegiatan seperti manajemen proyek perangkat lunak dan pengembangan alat bantu,
metode, dan teori untuk mendukung produksi perangkat lunak.
1. 5 KARAKTERISTIK RPL
Perangkat lunak lebih kepada
logika dan bukan semata elemen fisik. Perbedaan perangkat lunak dengan perangkat keras
yang mendasar adalah:
1)
Perangkat
lunak dibangun dan dikembangkan, tidak dibuat dalam bentuknya yang klasik.
2)
Perangkat
lunak tidak pernah usang.
Sebagian
besar perangkat lunak dibuat secara custom (pemesanan) serta tidak dapat
dirakit dari komponen yang sudah ada.
1.6 KOMPONEN RPL
Bersamaan dengan perkembangan disiplin keteknikan
diciptakan sekumpulan komponen perancangan standar. Komponen-komponen yang dapat digunakan lagi sudah diciptakan sehingga
ahli teknik dapat benar-benar berkonsentrasi pada elemen-elemen inovatif suatu
perancangan. Dalam dunia perangkat keras hal ini merupakan hal yang harus
dicapai dalam skala yang luas.
Reusability meruapakan suatu cirri penting dari komponen perangkat lunak
kualitas tinggi. Sebuah komponen perangkat lunak harus didesain dan
diimplementasi sehingga dapat dipakai lagi pada berbagai program yang berbeda.
Komponen perangkat lunak dibangun dengan bahasa pemrograman yang memiliki
kosakata terbatas, sebuah tata bahasa yang dibatasi secara eksplisit. Bahasa tingkat mesin merupakan
perwakilan simbolik dari serangkaian instruksi CPU. Bahasa tingkat menengah memungkinkan pengembang perangkat lunak
serta program tidak bergantung pada mesin.
1. 7 APLIKASI RPL
Perangkat lunak dapat diaplikasikan ke berbagai
situasi dimana serangkaian procedural (seperti algoritma) telah didefinisikan
(pengecualian-pengecualian yang dapat dicatatat pada aturan ini adalah sistem
pakar dan jaringan syaraf tiruan dalam aplikasi kecerdasan buatan). Kandundan informasi dan determinasi merupakan faktor penting dalam
menentukan sifat aplikasi perangkat lunak.
1.8 EVALUASI
1) Apakah yang dimaksud dengan
perangkat lunak?
2) Apakah rekayasa perangkat
lunak itu?
3) Apa perbedaan antara rekayasa
perangkat lunak dan computer science?
4) Apa perbedaan rekayasa
perangkat lunak dan rekayasa sistem?
5) Apakah yang dimaksud dengan
proses perangkat lunak?
6) Apakah model proses perangkat
lunak itu?