REKAYASA PERANGKAT LUNAK (RPL)
REKAYASA PERANGKAT LUNAK(RPL)
A. SEJARAH RPL
Rekayasa perangkat lunak telah berkembang sejak pertama
kali diciptakan pada tahun 1940-an hingga kini. Fokus utama pengembangannya
adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan
produktivitas para praktisi pengembang perangkat lunak dan kualitas aplikasi
yang dapat digunakan oleh pemakai.
1945 - 1965: Awal
Istilah software engineering digunakan pertama kali pada
akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat debat tajam mengenai
aspek engineering dari pengembangan perangkat lunak.
Pada tahun 1968 dan 1969, komite sains NATO mensponsori
dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat
terhadap perkembangan rekayasa perangkat lunak. Banyak yang menganggap bahwa
dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat
lunak.
1965 - 1985: krisis perangkat lunak
Pada tahun 1960-an hingga 1980-an, banyak masalah yang
ditemukan para praktisi pengembangan perangkat lunak. Banyak projek yang gagal,
hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan
pengembangan perangkat lunak terjadi mulai dari projek yang melebihi anggaran,
hingga kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus
yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat
lunak.
1985 - kini: tidak ada senjata pamungkas
Selama bertahun-tahun, para peneliti memfokuskan usahanya
untuk menemukan teknik jitu untuk memecahkan masalah krisis perangkat lunak.
Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai
senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman
terstruktur, pemrograman berorientasi object, perangkat pembantu pengembangan
perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal
diagung-agungkan sebagai senjata pamungkas untuk menghasilkan software yang
benar, sesuai anggaran dan tepat waktu.
Pada tahun 1987, Fred Brooks menulis artikel No Silver
Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang
sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembangan
perangkat lunak dalam tempo 10 tahun. Sebagian berpendapat, no silver bullet
berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian
yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa
perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun,
tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.
B. DEFINISI REKAYASA PERANGKAT LUNAK
Berikut adalah beberapa definisi dari istilah
Rekayasa Perangkat Lunak :
Ø Menurut Stephen R.Schach
Sebuah disiplin dimana dalam menghasilkan
perangkat lunak bebas dari kesalahan dan dalam pengiriman anggaran tepat waktu
serta memuaskan keinginan pemakai.
Ø Menurut Fritz Bauer
Penetapan dan penggunaan prinsip rekayasa
dalam rangka memperoleh perangkat lunak yang dapat dipercaya dan dapat bekerja
secara efisien pada mesin nyata.
Ø Menurut IEEE 610.12
Sebuah studi pendekatan dan aplikasi secara
sistematis, disiplin pengembangan operasi dan pemeliharaan PL yang kesemuanya
itu merupakan aplikasi rekayasa yang berkaitan dengan PL.
Ø Menurut Wikipedia ,“Software engineering is the application of a
systematic, disciplined, quantifiable approach to the development, operation,
and maintenance of software“. Secara ringkasnya adalah bahwa SE mencakup
pembuatan, pengembangan, dan pemeliharaan suatu software.
Pembuatan meliputi bagaimana suatu software dibuat mulai dari user
requirements, spesifikasi, desain, testing, dokumentasi (misal berupa manual
pembuatan program), dan sebagainya. Sedangkan pengembangan adalah untuk
menambah fitur-fitur baru yang belum ada pada versi sebelumnya. Pemeliharaan
digunakan untuk memperbaiki bugs atau errors yang tidak ketahuan ketika dalam
tahap pembuatan. Pemeliharaan ini biasanya dapat berupa Service Pack, dan
sebagainya.
Faktor-faktor yang melatarbelakangi munculnya
RPL :
-
Ketidakmampuan
organisasi memprediksi waktu, usaha dan beaya u/ membangun perangkat lunak
-
Perubahan nisbah/rasio beaya perangkat keras
thd harga perangkat lunak
-
Kemajuan
pesat perangkat keras
-
Kemajuan
dalam teknik-teknik pembuatan perangkat lunak
-
Tuntutan
yang lebih tinggi thd jumlah perangkat lunak
-
Tuntutan
yang lebih tinggi thd mutu perangkat lunak
-
Meningkatnya
peran pemeliharaan
C. TUJUAN RPL
Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Mari
kita perhatikan Gambar 1.2. berikut ini.
Dari Gambar 1.2 dapat diartikan bahwa bidang rekayasa akan selalu berusaha
menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian
yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah :
a) Memperoleh
biaya produksi perangkat lunak yang rendah.
b) Menghasilkan
perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.
c) Menghasilkan
perangkat lunak yang dapat bekerja pada berbagai jenis platform.
d) Menghasilkan
perangkat lunak yang biaya perawatannya rendah.
D. FUNGSI RPL
1. Agar
seseorang dapat mengembangkan perangkat lunak yang bermanfaat bagi user
2. Agar
seseorang mampu mengembangkan perangkat lunak yang sudah ada menjadi lebih baik
lagi
3. Menciptakan
sebuah perangkat lunak yang ramah dan user friendly
4. Agar
sebuah system perangkat lunak bisa diintegrasikan dengan peralatan mekanikal
yang ada,sehingga menjadi lebih bermanfaat
5. Agar
seseorang mampu untuk melakukan perawatan dan maintanence dari perangkat lunak
yang sudah ada
E. ELEMEN KUNCI RPL
a) Metode : how to‟ yang bersifat
teknis. Meliputi bidang-bidang perencanaan proyek, estimasi, analisis persyaratan, perancangan, coding, pengujian dan pemeliharaan.
b) Tools : memberikan dukungan
automasi bagi metode dikenal dengan CASE
c) Prosedur : mengintegrasikan metode dan
tool untuk mendefinisikan kapan suatu metode akan
digunakan, hasil yang
diharapkan, pengendalian untuk menjamin kualitas hasil, milestone yang dapat digunakan
untuk mengevaluasi kemajuan
F. RUANG LINGKUP RPL
Sesuai definisi yang telah disampaikan sebelumnya, maka
ruang lingkup RPL dapat digambarkan sebagai berikut.
· Software
requirements berhubungan dengan spesifikasi
kebutuhan dan persyaratan perangkat lunak.
· Software design mencakup proses penentuan arsitektur, komponen,
antarmuka, dan karakteristik lain dari perangkat lunak.
· Software
construction berhubungan dengan detil
pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan
pencarian kesalahan.
· Software testing meliputi pengujian pada keseluruhan perilaku perangkat
lunak.
· Software
maintenance mencakup upaya-upaya perawatan
ketika perangkat lunak telah dioperasikan.
· 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.
G. REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU KOMPUTER
Disiplin ilmu komputer (Computer Science) lahir pada awal-awal tahun
1940-an yang merupakan integrasi dari teori algoritma, logika matematika dan
ditemukannya cara penyimpanan program secara elektronik pada komputer. Sejak
itu ilmu komputer mengalami perkembangan yang terus menerus sehingga cakupannya
menjadi semakin meluas. Cakupan pengetahuan dalam ilmu komputer seringkali
didiskripsikan sebagai suatu studi sistematis pada proses-proses algoritma yang
menjelaskan dan mentransformasikan informasi (Denning, 2000). Termasuk di sini
adalah teori, analisis, disain, efisiensi, penerapan dan aplikasinya. Ada
beberapa model pengelompokkan sub-bidang ilmu dalam disiplin ilmu komputer
seperti terlihat pada Gambar 1.4, 1.5 dan 1.6.
Berdasarkan pengelompokkan
Denning (2000) dan Wikipedia (2007), RPL merupakan sub-bidang ilmu komputer
yang setara dengan sub-bidang lainnya. Sedangkan menurut ACM (Association for Computing Machinery), RPL merupakan bagian dari Section D (Perangkat Lunak).
Meskipun terlihat terpisahpisah, namun dalam penerapannya, sub-bidang RPL
selalu membutuhkan dukungan dari sub-bidang lain, terutama sub-bidang Algoritma
dan Struktur Data, Bahasa Pemrograman, Basis Data, Sistem Operasi dan Jaringan,
dan Sistem Informasi.
H. REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN
Cakupan ruang lingkup yang cukup luas, membuat RPL sangat
terkait dengan disiplin bidang ilmu lain. Tidak saja dengan sub-bidang dalam
disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain di luar ilmu komputer.
Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada Gambar 1.7.
Bidang ilmu manajemen meliputi akutansi, finansial,
pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber
daya manusia, kebijakan dan strategi bisnis.
o Bidang ilmu matematika meliputi aljabar linier, kalkulus,
peluang, statistik, analisis numerik dan matematika diskrit.
o Bidang ilmu manajemen proyek meliputi semua hal yang
berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja,
kualitas, manajemen resiko, dan penjadwalan proyek.
o Bidang ilmu manajemen kualitas meliputi pengembangan
sistem kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan
metode-metode kuantitatif.
o Bidang ilmu ergonomika menyangkut hubungan (interaksi)
antara manusia dengan komponen-komponen lain dalam sistem komputer.
o Bidang ilmu rekayasa sistem meliputi teori sistem,
analisis biayakeuntungan, pemodelan, simulasi, proses dan operasi bisnis.
I. POSISI REKAYASA PERANGKAT LUNAK
Ø
Cakupan
ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin
bidang ilmu lain.
Ø
Tidak
saja dengan sub-bidang dalam disiplin ilmu komputer namun dengan beberapa
disiplin ilmu lain di luar ilmu komputer.
¨ Bidang ilmu manajemen meliputi akutansi, finansial, pemasaran,
manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya
manusia, kebijakan dan strategi bisnis.
¨ Bidang ilmu matematika meliputi aljabar linier, kalkulus,
peluang, statistik, analisis numerik dan matematika diskrit.
¨ Bidang ilmu manajemen proyek meliputi semua hal yang
berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja,
kualitas, manajemen resiko, dan penjadwalan proyek.
¨ Bidang ilmu manajemen kualitas meliputi pengembangan
sistem kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan
metode-metode kuantitatif.
¨ Bidang ilmu ergonomika menyangkut hubungan (interaksi)
antara manusia dengan komponen-komponen lain dalam sistem komputer.
¨ Bidang ilmu rekayasa sistem meliputi teori sistem,
analisis biayakeuntungan, pemodelan, simulasi, proses dan operasi bisnis.
J.PERKEMBANGAN REKAYASA PERANGKAT LUNAK
Meskipun baru
dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup
panjang, Gambar 1.8 menyajikan intisari perkembangan RPL. Dari sisi disiplin
ilmu, RPL masih relatif muda dan akan terus berkembang. Arah
perkembangan yang saat ini sedang dikembangkan antara lain meliputi : Agile Software
Development, Experimental Software Development, Model-Driven. Software
Development dan Software Product Lines.
K. BAGAIMANA SEHARUSNYA DITERAPKAN RPL
Cakupan RPL :
1.
Produk = Software
Ø
Programs
Ø
Documents
Ø
Data
2.
Proses bagaimana membangun perangkat lunak
§
Management process
§
Technical process
L.
PRODUK RPL
·
Produk diperoleh melalui tahapan
Pengembangan
= Software Development Life Cycle (SDLC)
·
Contoh siklus hidup (SDLC):
–
Waterfall model
– V
model
–
Spiral model
–
Fountain model
–
Prototyping
M. PROSES RPL
Ø
Technical Process, digambarkan sebagai metode yang akan
diterapkan dalam tahap tertentu dari SDLC
– Analysis methods
– Design methods
– Programming methods
– Testing methods
Ø
Metode teknis ini yang memunculkan paradigma seperti
berorientasi terstruktur, objek, aspek, dll
A. Kapan
diterapkan RPL :
-
Pre-project
-
Project Initiation
-
Project Realisation
-
Software Delivery & Maintenance
B. Siapa
yang terlibat RPL
a) Manager
– Project Manager
– Configuration Manager
– Quality Assurance Manager
b) Software
Developer:
– Analyst
– Designer
– Programmer
c) Support
– Administration
– Technical Support for
Customer (help desk,customer care)
– Welfare (Kesejahteraan)
C. Tanggung
Jawab Profesional dan Etis
- RPL
melibatkan tanggung jawab yang lebih besar dari sekedar penerapan keahlian teknis.
- Rekayasawan
perangkat lunak harus berlaku secara jujur dan etis jika ingin dihargai sebagai
profesional.
- Perilaku
etis lebih dari sekedar menjunjung tinggi hukum.
D. Tanggung
Jawab Profesional
- Kerahasiaan
Rekayasawan harus menghargai kerahasiaan pegawai
atau kliennya.
- Kompeten
Rekayasawan tidak boleh memberi gambaran yang salah
tentang tingkat kompetensinya. Mereka tidak boleh secara sadar menerima
pekerjaan yang diluar kompetensinya.
E. Apa
saja tantangan utama yang dihadapi RPL?
- Heterogeneity
(keberagaman)
Mengembangkan
teknik untuk membangun perangkat lunak yang dapat mengatasi platform
dan lingkungan eksekusi.
- Delivery
(pengiriman)
Mengembangkan
teknik yang mengakibatkan pengiriman perangkat lunak lebih cepat.
- Trust
(kepercayaan)
Mengembangkan teknik yang menunjukkan bahwa perangkat
lunak dapat dipercaya oleh para penggunanya.









Komentar
Posting Komentar