MATERI 1
PENGANTAR
REKAYASA
PERANGKAT LUNAK
Direkonstruksi Oleh :
Muhammad Adri, S.Pd., M.T
Email : mhd.adri@unp.ac.id
Lisensi Dokumen:
Copyright © 2020 Universitas Negeri Padang
Seluruh dokumen di e-Learning Universitas Negeri Padang, hanya digunakan untuk kalangan
Internal Universitas, untuk kebutuhan Perkuliahan Online. Penggunaan dokumen ini di luar UNP tidak
diizinkan dan tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu
dari Penulis dan Universitas Negeri Padang.
Kita hidup dalam masyarakat informasi di mana kebanyakan orang terlibat dalam
kegiatan yang terhubung baik dengan memproduksi atau mengumpulkan data, atau
mengatur, memproses dan menyimpan data, dan mengambil dan menyebarkan
informasi yang tersimpan, atau menggunakan informasi tersebut untuk pengambilan
keputusan. Perkembangan luar biasa telah terjadi dalam teknologi perangkat keras
komputer, tetapi kunci untuk membuat teknologi ini bermanfaat bagi manusia
berbohong dengan teknologi perangkat lunak.
Dalam beberapa tahun terakhir industri perangkat lunak menunjukkan yang
tertinggi tingkat pertumbuhan di seluruh dunia, India tidak terkecuali. Buku ini tentang
rekayasa perangkat lunak dikhususkan untuk presentasi konsep, alat dan teknik
digunakan selama berbagai fase pengembangan perangkat lunak. Untuk menyiapkan
pengaturan untuk subjek, dalam bab pengantar ini, kami memberikan tinjauan historis
tentang subjek rekayasa perangkat lunak.
Rekayasa Perangkat Lunak hari ini bukanlah suatu bahasan yang muncul
belakangan dalam kajian Ilmu Komputer, namun kajian ini ikut berkembanng sejalan
dengan perkembangan perangkat keras komputer. Hal ini dapat kita lihat pada sejarah
perjalanan panjang dunia perangkat lunak.
Gilb (1977) menulis buku pertama tentang metrik perangkat lunak. Jones
(1978) menyoroti kesalahpahaman seputar kualitas dan produktivitas perangkat
lunak dan menyarankan berbagai ukuran kualitas dan produktivitas. DeMarco
(1978) memperkenalkan konsep diagram aliran data untuk analisis
terstruktur. Constantine dan Yourdon (1979) memberikan prinsip-prinsip desain
terstruktur.Eighties melihat konsolidasi ide-ide tentang rekayasa perangkat
lunak. Boehm (1981) disajikan model COCOMO untuk estimasi perangkat
lunak. Albrecht dan Gaffney (1983) memformalkan konsep "titik fungsi" sebagai
ukuran ukuran perangkat lunak. Gagasan berkembang selama dekade ini di
berbagai bidang seperti model proses, alat untuk analisis, desain dan pengujian.
Selama akhir 1960-an dan 1970-an, ada protes atas "krisis perangkat lunak"
yang akan datang. Itu gejala krisis seperti itu muncul kemudian dan hadir bahkan hari
ini. Gejala-gejalanya adalah sebagai berikut:Biaya perangkat lunak telah menunjukkan
tren meningkat, melampaui biaya perangkat keras. Boehm (1976, 1981) menunjukkan
bahwa sejak tahun lima puluhan, persentase dari total biaya perhitungan disebabkan
untuk perangkat keras telah berkurang secara dramatis dan yang disebabkan oleh
perangkat lunak telah sesuai meningkat (Gbr. 1.1). Sedangkan biaya perangkat lunak
hanya sedikit di atas 20% pada 1950-an, itu hampir 60% pada 1970-an, dan sekitar 80%
pada 1980-an.
1. Hari ini, sistem komputer yang kita miliki beli sebagai 'perangkat keras' umumnya
membuat vendor mengeluarkan biaya sekitar tiga kali lipat untuk perangkat
lunak seperti halnya untuk perangkat keras (Pressman 1992).
Gambar 1.1. Biaya perangkat keras dan perangkat lunak Rekayasa Perangkat Lunak
2. Biaya pemeliharaan perangkat lunak telah meningkat dan telah melampaui
biaya pengembangan. Boehm (1981) telah menunjukkan bahwa sebagian besar
biaya perangkat lunak adalah karena pemeliharaan daripada pengembangan .
3. Perangkat lunak hampir selalu dikirim terlambat dan melebihi biaya yang
dianggarkan, menunjukkan waktu dan pembengkakan biaya.
4. Tidak memiliki transparansi dan sulit untuk dipertahankan.
5. Kualitas perangkat lunak seringkali kurang memadai.
6. Ini sering tidak memuaskan pelanggan.
7. Produktivitas orang-orang perangkat lunak tidak mengikuti permintaan layanan
mereka.
8. Kemajuan dalam pengembangan perangkat lunak sulit diukur.
9. Sangat sedikit data dunia nyata yang tersedia pada proses pengembangan
perangkat lunak. Karena itu belum dimungkinkan untuk menetapkan standar
realistis.
10. Bagaimana orang-orang bekerja selama pengembangan perangkat lunak belum
dipahami dengan benar. Salah satu karya paling awal yang menjelaskan
sebagian besar penyebab krisis perangkat lunak adalah oleh Brooks (1972). Kita
akan melihat sekilas karya Brooks di bagian selanjutnya.
Perangkat lunak lebih logis daripada elemen sistem fisik. Oleh karena itu,
perangkat lunak memiliki karakteristik yang sangat berbeda dari perangkat keras
(Wolverton 1974, dan Pressman 1992). Beberapa dari perbedaan utama adalah sebagai
berikut:
4) Persyaratan pengguna seringkali tidak dipahami dengan baik; Oleh karena itu
sepotong perangkat lunak mengalami banyak modifikasi sebelum diterapkan
dengan memuaskan.
5) Hampir tidak ada standar objektif atau langkah-langkah yang digunakan untuk
mengevaluasi kemajuan pengembangan perangkat lunak.
Analisis Perancanan Perangkat Lunak |9
Materi 1. Pengantar Rekayasa Perangkat Lunak
6) Menguji perangkat lunak sangat sulit, karena bahkan program berukuran sedang
(<5.000 pernyataan yang dapat dieksekusi) dapat berisi jalur yang cukup dapat
dieksekusi ( mis ., cara untuk mendapatkan dari mulai dari program hingga akhir)
sehingga proses pengujian setiap path melalui Program bisa sangat mahal.
7) Perangkat lunak tidak aus.
a. Perangkat lunak biasanya tidak kehilangan fungsinya saat digunakan.
b. Akan tetapi, fungsionalitasnya akan berkurang tepat waktu, karena persyaratan
pengguna berubah.
c. Ketika cacat ditemukan, mereka dihapus dengan menulis ulang kode yang
relevan, bukan oleh menggantinya dengan kode yang tersedia. Itu artinya
konsep mengganti yang rusak kode dengan kode cadangan sangat tidak biasa
dalam pengembangan perangkat lunak.
d. Ketika cacat dihapus, ada kemungkinan bahwa cacat baru diperkenalkan.
E. DEFINISI
1. Perangkat lunak
10 | A n a l i s i s P e r a n c a n g a n P e a n g k a t L u n a k
Materi 1. Pengantar Rakayasa Perangkat Lunak|
Gambar 1.3 (Gilb 1977) menunjukkan tidak hanya dua elemen dari sistem
perangkat lunak, tetapi juga menunjukkan komponen lain juga.
A n a l i s i s P e r a n c a n a n P e r a n g k a t L u n a k | 11
Materi 1. Pengantar Rekayasa Perangkat Lunak
Assembly
12 | A n a l i s i s P e r a n c a n g a n P e a n g k a t L u n a k
Materi 1. Pengantar Rakayasa Perangkat Lunak|
2. Engineering
A n a l i s i s P e r a n c a n a n P e r a n g k a t L u n a k | 13
Materi 1. Pengantar Rekayasa Perangkat Lunak
Naur (Naur dan Randell 1969) yang ikut mengedit laporan tentang
konferensi NATO yang terkenal di Garnish juga ikut menulis salah satu buku
paling awal tentang masalah ini (Naur et al. 1976). Di dalam buku, ide-ide di
balik rekayasa perangkat lunak diberikan sebagai berikut:
Ada banyak definisi "Rekayasa Perangkat Lunak" seperti halnya ada penulis. Kami
berusaha sekilas melalui sampel definisi yang diberikan oleh eksponen di
lapangan. Bauer (1972) memberikan definisi paling awal untuk rekayasa
perangkat lunak (Bauer 1972, p. 530): "... pembentukan dan penggunaan prinsip-
prinsip teknik suara (metode) untuk mendapatkan perangkat lunak ekonomis
yang andal dan bekerja pada mesin nyata. " Menurut Boehm (1976), rekayasa
perangkat lunak adalah “... aplikasi praktis dari pengetahuan ilmiah dalam desain
dan konstruksi komputer program dan dokumentasi terkait yang diperlukan
untuk mengembangkan, mengoperasikan, dan memeliharanya. " Boehm (1976)
memperluas idenya dengan menekankan bahwa pengembangan perangkat lunak
paling mendesak masalah adalah di bidang analisis persyaratan, desain,
pengujian, dan pemeliharaan perangkat lunak aplikasi oleh teknisi dalam konteks
yang didorong oleh ekonomi daripada di bidang desain rinci dan pengkodean
perangkat lunak sistem oleh para ahli dalam konteks
yang relatif independen terhadap ekonomi .
14 | A n a l i s i s P e r a n c a n g a n P e a n g k a t L u n a k
Materi 1. Pengantar Rakayasa Perangkat Lunak|
Definisi yang lebih baru oleh Wang dan King (2000) menganggap rekayasa
perangkat lunak sebagai suatu disiplin dan membuat prinsip-prinsip teknik dan
atribut produk lebih eksplisit: “Rekayasa perangkat lunak adalah disiplin yang
mengadopsi pendekatan rekayasa seperti yang ditetapkan metodologi, proses,
alat, standar, metode organisasi, metode manajemen, kualitas sistem jaminan,
dan sejenisnya untuk mengembangkan perangkat lunak skala besar dengan
produktivitas tinggi, rendah biaya, kualitas yang dapat dikendalikan, dan jadwal
pengembangan pengukuran. "
a. Perumusan masalah,
b. Analisis masalah,
c. Mencari alternatif,
d. Keputusan,
e. Spesifikasi, dan
f. Implementasi.
b. Domain masalah rekayasa perangkat lunak bisa hampir apa saja, dari proses
kata- untuk kontrol waktu nyata dan dari game ke robotika. Dibandingkan
16 | A n a l i s i s P e r a n c a n g a n P e a n g k a t L u n a k
Materi 1. Pengantar Rakayasa Perangkat Lunak|
dengan teknik lainnya disiplin, karena itu jauh lebih luas cakupannya dan
dengan demikian menawarkan tantangan yang lebih besar.
c. Teknik manufaktur tradisional yang biasanya menekankan produksi massal
dimuat dengan fitur produksi. Dengan demikian, sangat intensif dalam
produksi . Rekayasa perangkat lunak, pada sisi lain, secara inheren desain
intensif .
d. Standardisasi produk membantu dalam pengurangan biaya dalam
pembuatan, sedangkan kemungkinan seperti itu jauh dalam rekayasa
perangkat lunak. Namun, kemungkinan standardisasi proses adalah sangat
tinggi pada yang terakhir.
e. Jumlah gagasan khusus domain dan aplikasi yang tidak terbatas berlaku di
bidang teknik disiplin ilmu. Rekayasa perangkat lunak, di sisi lain,
menggunakan angka yang terbatas, tetapi universal konsep, misalnya,
struktur logis standar urutan, kondisi, dan pengulangan.
Proyek perangkat lunak, tampak sederhana dan tanpa masalah, namun dapat
berubah menjadi proyek rawan kesalahan dengan overruns waktu dan biaya
tinggi. Menurut Brooks, esensi kesulitan yang terkait dengan rekayasa perangkat lunak
terletak pada spesifikasi, desain, dan pengujian konstruksi konseptual sementara
kesalahan selama representasi kecelakaan . Rekayasa perangkat lunak harus
membahas esensi, dan bukan kecelakaan . Sifat esensi dari sistem perangkat lunak
modern, menurut Brooks, Jr (1986) adalah berikut:
1. Kompleksitas:Tidak ada dua bagian dari produk perangkat lunak yang sama.
2. Kesesuaian:Tidak seperti hukum alam dalam sistem fisik, tampaknya tidak ada
menjadi teori pemersatu untuk sistem perangkat lunak.
3. Kemampuan berubah: Sementara produk yang diproduksi tidak terlalu sering
berubah, produk perangkat lunak berubah, terutama dengan persyaratan pengguna
berubah.
A n a l i s i s P e r a n c a n a n P e r a n g k a t L u n a k | 17
Materi 1. Pengantar Rekayasa Perangkat Lunak
4. Tidak ada representasi yang benar-benar geometris, tidak seperti rencana untuk
bangunan atau gambar desain mesin, dapat mewakili desain sebuah program
perangkat lunak.
Brooks, Jr berpendapat bahwa terobosan masa lalu, seperti bahasa tingkat tinggi,
pembagian waktu fasilitas, dan lingkungan pemrograman pemersatu (seperti Unix),
hanya menyerang yang tidak disengaja masalah rekayasa perangkat lunak, bukan yang
esensial. Dia juga skeptis tentang kemampuan seperti itu perkembangan sebagai
kemajuan dalam bahasa tingkat tinggi lainnya, pemrograman berorientasi objek, buatan
intelijen, sistem pakar, pemrograman otomatis, verifikasi program, lingkungan
pemrograman dan alat-alat, dan workstation dalam memecahkan masalah-masalah
penting dari rekayasa perangkat lunak. Brooks, Jr. menyarankan bahwa perkembangan
berikut memiliki potensi tinggi dalam mengatasi masalah mendasar dari rekayasa
perangkat lunak:
18 | A n a l i s i s P e r a n c a n g a n P e a n g k a t L u n a k
Materi 1. Pengantar Rakayasa Perangkat Lunak|
1) Mitos Manajemen:
a. Kami sudah memiliki buku yang penuh dengan standar dan prosedur untuk
membangun perangkat lunak. Biasa yang memberi orang saya segala yang
perlu mereka ketahui?
b. Orang-orang saya memang memiliki alat pengembangan perangkat lunak
canggih; setelah semua, kami membelinya komputer terbaru.
c. Jika kita terlambat, kita bisa menambah lebih banyak orang dan mengejar
ketinggalan.
2) Mitos Pelanggan:
a. Pernyataan tujuan secara umum sudah cukup untuk mulai menulis program —
kita dapat mengisi detailnya nanti.
b. Persyaratan proyek terus berubah, tetapi perubahan dapat dengan mudah
diakomodasi karena perangkat lunaknya fleksibel.
3) Mitos Praktisi:
a. Setelah kami menulis program dan mulai bekerja, pekerjaan kami selesai.
b. Sampai saya mendapatkan program “berjalan,” saya benar-benar tidak memiliki
cara untuk menilai kualitasnya.Satu-satunya hasil pengiriman untuk proyek
yang berhasil adalah program kerja. Ketika alat dan teknik rekayasa perangkat
lunak dikembangkan dan dipraktikkan, mitos ini memiliki diberikan cara untuk
kepedulian yang tulus untuk alat pengembangan baru dan keinginan yang kuat
untuk mengenal mereka. Itu bab berikut menjelaskan mereka dengan contoh
dan dengan referensi untuk pengembangan mereka dari masa lalu hingga
sekarang.
A n a l i s i s P e r a n c a n a n P e r a n g k a t L u n a k | 19