Anda di halaman 1dari 12

Rekayasa Perangkat Lunak

Pertemuan Ke 1
PRODUK

1.1. Mengembangkan Peran Perangkat Lunak

Saat ini, perangkat lunak memiliki dua peran. Di satu sisi berfungsi sebagai
sebuah produk, dan di sisi lain sebagai kendaraan yang mengantarkan sebuah
produk. Sebagai produk, perangkat lunak mengantarkan potensi penghitungan
yang dibangun oleh perangkat lunak komputer.
Sebagai kendaraan yang dipakai untuk mengantarkan produk perangkat lunak
berlaku sebagai dasar untuk kontrol komputer (sistem operasi), komunikasi
informasi (jaringan) dan penciptaan serta kontrol dari program-program lain
(peranti dan lingkungan perangkat lunak).
Pada masa awal era komputer perangkat keras dengan tujuan umum menjadi
hal yang biasa, sementara perangkat lunak dirancang secara khusus untuk
aplikasi tertentu saja dan hanya memiliki areal distribusi yang terbatas. Produk
perangkat lunak (program yang dikembangkan untuk dijual kepada satu
pelanggan atau lebih) masih langka. Kebanyakan perangkat lunak
dikembangkan dan digunakan oleh orang atau organisasi yang sama. Pada era
ini tidak ada pendokumentasian.
Era kedua evolusi sistem komputer melingkupi dekade pertengahan tahun 1960
dan 1970-an (Gambar 1.1.). Sistem multiprogram dan multiuser
memperkenalkan konsep baru interaksi manusia dengan mesin. Teknik interaktif
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 di dalam
skala menit, melainkan detik. Kemajuan dalam penyimpanan on-line membawa
ke generasi pertama sistem manajemen database.

Lecture-Note Hal : 1
Rekayasa Perangkat Lunak

Tahun-tahun awal Era kedua Era ketiga Era keempat


 Orientasi  Multiuser  Sistem  Sistem desk-
batch  Real-time terdistribusi top bertenaga
 Distribusi  Database  Embedded kuat
terbatas  Perangkat intelligence  Teknologi
 Perangkat lunak produk  Perangkat berorientasi objek
lunak customize keras biaya  Sistem pakar
rendah  Jaringan
syaraf tiruan
 Computasi
paralel
 Komputer
jaringan

Era 2 Era 4

Era 1 Era 3

1950 1960 1970 1980 1990 2000

Gambar 1.1. Evolusi perangkat lunak

Era kedua juga ditandai dengan penggunaan produk perangkat lunak serta
kehadiran software houses.
Era ketiga evolusi sistem komputer dimulai pada pertengahan tahun 1970-an
dan berlangsung lebih dari satu dekade penuh. Sistem terdistribusi – multi
komputer, yang masing-masing melakukan fungsi secara konkuren dan
berkomunikasi satu dengan yang lain. Kesimpulan dari era ketiga ditandai
dengan kehadiran dan penyebaran pemakaian mikroprosesor.
Evolusi sistem komputer era keempat menjauhkan kita dari komputer individual
dan program komputer dan menuju pengaruh kolektif dari komputer dan
perangkat lunak. Mesin desktop yang kuat yang dikontrol oleh sistem operasi
yang canggih, jaringan lokal dan global, serta digabung dengan aplikasi
perangkat lunak yang maju, menjadi sebuah aturan. Teknologi yang berorientasi
pada objek dengan cepat menggantikan pendekatan pengembangan perangkat
lunak yang lebih konvensional dalam berbagai area aplikasi. Perangkat lunak

Lecture-Note Hal : 2
Rekayasa Perangkat Lunak

sistem pakar dan kecerdasan buatan pada akhirnya bergerak dari laboratorium
ke penerapan praktis untuk berbagai masalah dengan dengan jangkauan luas di
dunia nyata.
Tetapi selama era evolusi sistem berbasis komputer, serangkaian masalah yang
berhubungan dengan perangkat lunak masih muncul, dan intensitas masalah-
masalah tersebut terus bertambah.
1. Kemajuan perangkat keras terus berlanjut, melampaui kemampuan kita
untuk membangun perangkat lunak yang sesuai dengan perangkat keras
yang ada.
2. Kemampuan kita untuk membangun program baru tidak dapat memenuhi
kebutuhan akan program baru, juga tidak dapat membangun program yang
cukup cepat untuk memenuhi kebutuhan bisnis dan pasar.
3. Pemakaian komputer yang tersebar luas membuat masyarakat semakin
tergantung pada operasi perangkat lunak yang reliabel. Kerusakan ekonomis
yang besar dan potensi penderitaan manusia dapat muncul bila terjadi
kegagalan perangkat lunak.
4. Kita berjuang untuk membangun perangkat lunak komputer dengan
reliabilitas dan kualitas yang sangat tinggi.
5. Kemampuan kita untuk mendukung program yang ada terhambat oleh
buruknya desain serta sumber daya yang tidak memadai.

1.1.1. Perspektif Industri

Pada masa-masa awal penghitungan, sistem berbasis komputer dikembangkan


dengan menggunakan manajemen yang berorientasi pada perangkat keras.
Mereka menerapkan kontrol, metode dan alat-alat yang kita kenal sebagai
hardware engineering. Sayangnya, pada saat itu perangkat lunak belum banyak
dipikirkan.
Pada masa-masa awal, pemrograman masih dilihat sebagai “bentuk kesenian”.
Hanya sedikit saja metode yang ada dan lebih sedikit lagi orang yang

Lecture-Note Hal : 3
Rekayasa Perangkat Lunak

memahaminya. Para pemrogram bahkan kadang-kadang harus mempelajarinya


dengan cara coba-coba.

Dibanding perangkat keras, perangkat lunak komputer sudah berubah secara


dramatis. Dibanding perangkat keras, perangkat lunak merupakan salah satu
bentuk tunggal yang berbiaya tinggi. Selama hampir dua dekade ini, para
manajer dan para praktisi melontarkan pertanyaan-pertanyaan berikut :
 Mengapa membutuhkan waktu yang sangat lama untuk menyelesaikan
program?
 Mengapa biayanya sangat tinggi?
 Dapatkah kita menemukan kesalahan yang ada pada program sebelum
mendistribusikannya kepada pelanggan?
 Mengapa sangat sulit bagi kita untuk mengukur kemajuan pada saat
perangkat lunak dikembangkan?

1.1.2. Abad Pabrik Perangkat Lunak

Perusahaan-perusahaan, yang besar maupun kecil, memilki apa yang disebut


software plan. Ada ribuan aplikasi berbasis perangkat lunak dengan kondisi kritis
yang sangat perlu diperbaharui :
 Aplikasi sistem informasi yang ditulis 20 tahun yang lalu, yang mengalami
40 generasi perubahan dan sekarang tidak mungkin lagi dilakukan upaya
pembaruan.; bahkan modifikasi yang paling sederhana sekalipun sudah akan
membuat perangkat lunak tersebut gagal beroperasi.
 Aplikasi pengembangan yang dipakai untuk memproduksi desain data
telah kritis, dan karena cara pemeliharaan serta usia yang sudah tua,
membuat tidak ada orang yang mengetahui struktur internalnya.
 Embedded system (dipakai untuk mengontrol sumber tenaga, rambu
udara, dan perusahaan besar, di antara ribuan macam aplikasi) yang sangat
aneh serta kadang-kadang mempunyai kelakuan yang tidak dapat dijelaskan

Lecture-Note Hal : 4
Rekayasa Perangkat Lunak

tetapi tidak dapat dibawa keluar untuk diperbaiki, karena tidak ada lagi yang
dapat menggantikan posisinya.

1.1.2. Daya Saing Perangkat Lunak

Sekarang ini perangkat lunak sudah menjadi lahan yang sangat kompetitif.
Perangkat lunak yang dulu dibangun secara internal di dalam komputer sekarang
sudah dapat diproduksi secara terpisah.

1.2. Perangkat Lunak

Gambaran tentang perangkat lunak di dalam sebuah buku teks mungkin


mengambil bentuk berikut : Perangkat lunak adalah :
1. perintah (program komputer) yang bila dieksekusi memberikan fungsi dan
unjuk kerja seperti yang diinginkan.
2. struktur data yang memungkinkan program memanipulasi informasi
secara proporsional, dan
3. dokumen yang menggambarkan operasi dan kegunaan program.

1.2.1. Karakteristik Perangkat Lunak

Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen
sistem fisik. Dengan demikian, perangkat lunak memiliki ciri yang berbeda dari
perangkat keras :
1. Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk
yang klasik (pabrikasi). Biaya untuk perangkat lunak dikonsentrasikan kepada
pengembangan. Hal ini berarti proyek perangkat lunak tidak dapat diatur
seperti pengaturan proyek-proyek pemanufakturan.
2. Perangkat lunak tidak pernah usang. Perangkat lunak tidak rentan
terhadap pengaruh lingkungan yang merusak yang menyebabkan perangkat

Lecture-Note Hal : 5
Rekayasa Perangkat Lunak

keras menjadi usang. Selama hidupnya, perangkat lunak mengalami


perubahan (pemeliharaan). Aspek lain dari keusangan menggambarkan
perbedaan antara perangkat keras dan perangkat lunak. Bila komponen
suatu perangkat keras telah usang, komponen dapat diganti dengan suku
cadangnya. Namun tidak ada suku cadang bagi perangkat lunak. Setiap
kegagalan perangkat lunak menggambarkan kesalahan dalam perancangan
atau proses di mana rancangan diterjemahkan ke dalam kode mesin yang
dapat dieksekusi.
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.

1.2.2. Komponen Perangkat lunak

Reusability merupakan suatu ciri penting dari komponen perangkat lunak kualitas
tinggi. Sebuah komponen perangkat lunak harus didesain dan
diimplementasikan sehingga dapat dipakai lagi pada berbagai program yang
berbeda.
Komponen perangkat lunak dibangun dengan bahasa pemrograman yang
memiliki kosakata yang terbatas, sebuah tata bahasa yang dibatasi secara
eksplisit, serta aturan-aturan syntax dan semantik yang dibentuk secara baik.
Bahasa tingkat mesin merupakan perwakilan simbolik dari serangkaian instruksi
CPU. Bila program tidak dirancang dengan baik dan hanya memiliki sedikit
dokumentasi, maka bahasa tingkat mesin akan menjadi sebuah mimpi buruk.

Lecture-Note Hal : 6
Rekayasa Perangkat Lunak

Bahasa tingkat menengah memungkinkan pengambang perangkat lunak serta


program tidak tergantung pada mesin. Pada kenyataannya, bahasa tingkat
menengah meng-compile dan menginterpretasikan hasil bahasa tingkat mesin
sebagai keluaran.

Kode mesin, bahasa assembly (tingkat mesin), bahasa pemrograman tingkat


menengah, sering disebut tiga generasi bahasa komputer yang pertama. Dengan
bahasa-bahasa tersebut, pemrogram harus melihat dengan baik kekhususan
struktur informasi maupun kontrol pemrograman itu sendiri. Demikianlah bahasa
di dalam tiga generasi yang pertama dimasukkan ke dalam jenis bahasa
prosedural.
Bahasa generasi keempat, juga disebut bahasa nonprosedural menggerakkan
pengembang perangkat lunak untuk mengkhususkan pada detail prosedural.

1.2.3. Aplikasi Perangkat Lunak

Perangkat lunak dapat diaplikasikan ke berbagai situasi di mana serangkaian


langkah prosedural (seperti algoritma) telah didefinisikan. Kandungan informasi
dan determinasi merupakan faktor penting dalam menentukan sifat aplikasi
perangkat lunak. Content mengarah kepada arti dan bentuk dari informasi yang
masuk dan keluar.
Memang sulit untuk menentukan kategori umum untuk aplikasi perangkat lunak.
Ketika kompleksitas perangkat lunak mulai muncul, maka penggolongan yang
rapi menjadi hilang. Area perangkat lunak berikut menunjukkan luasnya aplikasi
potensial :
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.

Lecture-Note Hal : 7
Rekayasa Perangkat Lunak

Perangkat Lunak Real-Time. Program-program yang memonitor/menganalisis


kejadian dunia nyata pada saat terjadinya disebut perangkat lunak real-time.
Elemen-elemen perangkat lunak real-time mencakup komponen pengumpul data
yang mengumpulkan dan memformat informasi dari lingkungan eksternal,
sebuah komponen analisis yang mentransformasi informasi pada saat
dibutuhkan oleh aplikasi, sebuah komponen kontrol/output yang memberi respon
kepada lingkungan eksternal, serta sebuah komponen monitor yang
mengkoordinasi semua komponen lain agar respon real-timenya (I milidetik
sampai 1 menit) dapat tetap terjaga. Perlu dicatat di sini bahwa real-time
berbeda dengan interaksi atau timesharing. Sistem real-time harus merespon di
dalam suatu rentang waktu yang tetap. Waktu respon sebuah sistem interaktif
(timesharing) secara normal dapat diperpanjang tanpa memberikan risiko
kerusakan pada hasil.
Perangkat Lunak Bisnis. Sistem diskrit (contohnya payroll, account
receivable/payable, inventory) telah mengembangkan perangkat lunak sistem
informasi manajemen (MIS) yang mengakses satu atau lebih database besar
yang berisi informasi bisnis. Aplikasi perangkat lunak bisnis juga meliputi
penghitungan klien/server serta penghitungan interaktif (misal pemrosesan
transaksi point-of-sale).
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.
Embedded Software. Embedded software ada dalam read-only memory dan
dipakai untuk mengontrol hasil serta sistem untuk keperluan konsumen dan
pasar industri. Embedded software dapat melakukan fungsi yang terbatas serta
fungsi esoterik (misal key pad control untuk microwave) atau memberikan
kemampuan kontrol dan fungsi yang penting (contohnya fungsi dijital dalam

Lecture-Note Hal : 8
Rekayasa Perangkat Lunak

sebuah automobil seperti kontrol bahan bakar, penampilan dash-board, sistem


rem, dll).
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.
Perangkat Lunak Kecerdasan Buatan. Perangkat lunak kecerdasan buatan
(Artificial Inteligent /AI) menggunakan algoritma non-numeris untuk memecahkan
masalah kompleks yang tidak sesuai untuk perhitungan atau analisis secara
langsung. Perangkat lunak kecerdasan buatan adalah pengenalan pola (image
dan voice), pembuktian teorema, dan permainan game. Di tahun-tahun terakhir,
cabang perangkat lunak kecerdasan buatan yang baru, yang disebut artificial
neural network, telah berkembang. Jaringan syaraf mensimulasi struktur proses-
proses otak dan kemudian membawanya kepada perangkat lunak kelas baru
yang dapat mengenali pola-pola yang kompleks serta belajar dari pengalaman-
pengalaman masa lalu.

1.3. Perangkat Lunak : Krisis Di Masa Mendatang

Dalam Webster’s Dictionary kata crisis didefinisikan sebagai titik balik dalam
segala hal; waktu yang menentukan atau krusial, keadaan atau kejadian. Tetapi
untuk perangkat lunak, sudah tidak ada lagi “titik balik” tidak ada “waktu yang
menentukan,” dan yang ada hanya perubahan evolusi yang lambat. Dalam
industri perangkat lunak, kita telah mengalami krisis selama 30 tahun, dan
bentuknya sangat kontrakdiktif.
Masalah-masalah yang ada tidak hanya terbatas pada perangkat lunak yang
tidak berfungsi dengan baik, tetapi juga pada penderitaan yang melingkupi
masalah-masalah yang berhubungan dengan bagaimana kita mengembangkan
perangkat lunak, bagaimana kita memelihara suatu volume perangkat lunak
yang sedang tumbuh, dan bagaimana kita dapat mengejar kebutuhan akan lebih
banyak perangkat lunak lagi.

Lecture-Note Hal : 9
Rekayasa Perangkat Lunak

1.4. Mitos Perangkat Lunak

Sekarang ini kebanyakan kaum profesional yang memilki banyak pengetahuan


mengetahui berbagai mitos di bidang ilmu yang digelutinya – sikap yang salah
yang menyebabkan masalah yang serius bagi manajer serta masyarakat teknisi.
Tetapi sikap lama tersebut memang sangat sulit diubah, dan sisa-sisa mitos
perangkat lunak masih tetap dipercaya.

Mitos manajemen. Manajer yang bertanggung-jawab terhadap masalah


perangkat lunak, seperti juga manajer pada kebanyakan disimplin, sering
mengalami tekanan karena masalah pengaturan keuangan, menjaga jadwal agar
tidak kacau, dan peningkatan kualitas.
Mitos : Kita sudah memilki buku yang penuh dengan standar dan
prosedur untuk membuat perangkat lunak. Apakah buku itu tidak
memberikan semua yang ingin diketahui oleh staf saya?
Kenyataan : Buku standar mungkin ada, tetapi apakah buku-buku
tersebut dipakai? Apakah para praktisi perangkat lunak sadar akan
keberadaan buku-buku tersebut? Apakah dia benar-benar mencerminkan
praktik perkembangan perangkat lunak modern? Apakah sudah lengkap?
Dalam banyak hal, jawaban untuk semua pertanyaan di atas adalah
“tidak”.
Mitos : Staf saya sebenarnya memiliki alat pengembangan perangkat
lunak terkini, karena itulah kita membeli komputer baru bagi mereka.
Kenyataan : Dibutuhkan lebih dari sekedar mainframe model terakhir,
workstation atau PC untuk mengembangkan perangkat lunak berkualitas
tinggi. Computer-aided software engineering (CASE) lebih penting
daripada perangkat keras untuk mencapai kualitas dan produktivitas yang

Lecture-Note Hal :
10
Rekayasa Perangkat Lunak

tinggi, tetapi mayoritas pengembang perangkat lunak tetap belum


menggunakannya.
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 Pelanggan. Pelanggan mempercayai mitos tentang perangkat lunak


karena manajer dan para pelaksana yang bertanggung-jawab atas masalah
perangkat lunak hanya bekerja sedikit saja untuk memperbaiki kesalahan
informasi. Mitos ini membawa ke arah pengharapan yang salah (oleh pelanggan)
dan ketidak-puasan pengembang.
Mitos: pernyataan umum tentang obyektivitas sudah cukup untuk
memulai menulis program. Kita dapat mengisi detailnya nanti.
Kenyataan: Definisi awal yang buruk merupakan sebab utama gagalnya
kerja perangkat lunak. Deskripsi yang detail dan formal tentang domain
informasi, fungsi, unjuk kerja , interface, design constraint, dan kriteria
validasi merupakan hal yang mendasar. Ciri-ciri dapat ditentukan melalui
komunikasi yang hati-hati antara pelanggan dan pengembang.
Mitos: kebutuhan proyek berubah terus-menerus, tetapi perubahan
tersebut dapat diakomodasi karena perangkat lunak bersifat fleksibel.
Kenyataan: Memang benar bahwa kebutuhan-kebutuhan perangkat lunak
selalu berubah. Tetapi pengaruh perubahan itu bervariasi sesuai waktu
saat perangkat lunak dikenalkan. Perubahan-perubahan pada fungsi,
unjuk kerja, atau karakteristik lain pada saat implementasi (kode dan tes)
besar pengaruhnya terhadap biaya. Perubahan, ketika diminta setelah

Lecture-Note Hal :
11
Rekayasa Perangkat Lunak

perangkat lunak diproduksi, dapat lebih mahal daripada bila perubahan


yang sama dilakukan pada saat yang lebih awal.

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.
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.
Mitos: satu-satunya yang dapat disampaikan untuk sebuah proyek yang
sukses adalah program yang bekerja.
Kenyataan: Program yang bekerja hanya merupakan salah satu bagian
dari konfigurasi perangkat lunak yang menyangkut program, dokumen,
dan data. Dokumentasi membentuk fondasi bagi perkembangan yang
berhasil, serta yang lebih penting lagi, memberikan tuntunan bagi tugas
pemeliharaan perangkat lunak.

Lecture-Note Hal :
12

Anda mungkin juga menyukai