Selasa, 23 Februari 2010

Rekayasa Perangkat Lunak

REKAYASA PERANGKAT LUNAK
A. Pengantar Rekayasa Perangkat Lunak (RPL)
1. Perangkat Lunak (PL)
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).
 Pengertian Perangkat Lunak
1. Secara umum, perangkat lunak adalah program komputer yang apabila dieksekusi memberikan fungsi dan unjuk kerja yang diinginkan.
2. Stuktur data yang memungkinkan program memanipulasinya secara proporsional.
3. Merupakan dokumen yang menggambarkan operasi dan kegunaan program. Dikatakan menggambarkan operasi dan kegunaan program karena dokumen digunakan sebagai rekapan untuk melakukan perubahan-perubahan di kemudian hari.
Perbedaan software dengan program : Software merupakan perangkat lunak yang terdiri dari program, dokumen dan data. Program merupakan perangkat lunak yang hanya terdiri dari dokumen dan data saja.
 Peran perangkat lunak
1. Sebagai produk, yaitu melakukan transformasi informasi yang memproduksi, mengatur, memodifikasi, menampilkan atau memancarkan informasi.
2. Sebagai kendaraan, yaittu sebagai pengantar perangkat lunak lain, sebagai kontrol komputer, komunikasi informasi dan kontrol terhadap piranti lingkungan.

 Aplikasi perangkat lunak :
1. Perangkat Lunak SystemAdalah sekumpulan program yang dibangun untuk melayani program lainnya.
2. Perangkat Lunak Real TimeProgram yang memonitor, mengontrol dan menganalisis kejadian dunia nyata pada saat terjadinya.
3. Perangkat Lunak BisnisProgram yang digunakan untuk membantu operasional bisnis.
4. Perangkat Lunak Teknik dan Ilmu PengetahuanProgram khusus untuk bidang teknik dan ilmu pengetahuan seperti astronomi, volkanologi, otomotif dan bio mokuler.
5. Perangkat Lunak yang Dilekatkan (Embedded Software)Program yang dibuat untuk operasi dan fungsi kontrol perangkat elektronik tertentu.
6. Perangkat Lunak Komputer PersonalProgram pada komputer personal seperti pengolah kata (Microsoft Word), spreadsheet (Microsoft Excel), multimedia, dan lain-lain.
7. Perangkat lunak kecerdasan buatanProgram khusus untuk memecahkan masalah kompleks seperti sistem pakar, jaringan saraf tiruan dan sistem pendukung keputusan.
 Sifat-sifat perangkat lunak:
1. Perangkat lunak dibangun dan dikembangkan tetapi tidak dipabrikasi.
2. Perangkat lunak tidak pernah usang.
3. Perangkat lunak umumnya dibangun custom build (tersendiri), tidak dirakit dari komponen yang sudah ada.
 Krisis-krisis perangkat lunak:
1. Aplikasi sistem informasi dibangun 20 tahun yang lalu telah mengalami beberapa perubahan dan sekarang tidak mungkin dilakukan perubahan lagi karena akan menyebabkan kegagalan beroperasi.
2. Aplikasi desain telah tua dan tidak ada orang yang mengetahui struktur internalnya.
3. Embedded system untuk kontrol (misalnya rambu-rambu udara) seringkali memiliki kelakuan aneh dan tidak mungkin diperbaiki karena tidak dapat digantikan posisinya.
 Karakteristik Perangkat Lunak
1. Dikembangkan atau direkayasa, tidak dibuat dalam pengertian pada umumnya.
2. Tidak 'lapuk' atau mengalami penyusutan secara fisis.
3. Pada umumnya dibuat secara khusus, tidak disusun dari komponen-komponen yang telah ada.
 Problem Perangkat Lunak
1. Perangkat lunak tidak berfungsi secara baik (kualitas yang kurang).
2. Ketidaktepatan penjadwalan proses dan biaya produksi.
3. Produktivitas yang belum dapat memenuhi tuntutan kebutuhan pemakai.
4. Pemeliharaan yang sukar.
5. Perkembangan teknologi perangkat keras di luar kemampuan programmer untuk membuat perangkat lunak yang dapat memanfaatkan potensi perangkat keras secara maksimal.

2. Rekayasa Perangkat Lunak (RPL)
 Pengertian Rekayasa Perangkat Lunak (RPL)
o Perangkat Lunak: aplikasi program komputer.
o Rekayasa: analisa, desain, pembuatan, verifikasi, dan manajemen teknis.
o Rekayasa Perangkat Lunak (Software Engineering) à 3 Definisi.
1. Umum : Perancangan, pengembangan, dan pemeliharaan sistem perangkat lunak.
2. Menurut Fritz Bauer: disiplin ilmu yang menerapkan prinsip-prinsip engineering agar mendapatkan software yang ekonomis, dapat dipercaya, dan bekerja lebih efisien pada mesin yang sebenarnya (memiliki 3 elemen kunci yaitu metode, tools, dan prosedur).
3. Menurut IEEE: Aplikasi yang sistematis, tertata, mampu untuk dikembangkan, dioperasikan, dirawat, diperbaiki, dan dipelajari.
 Tujuan RPL
 Memperoleh biaya produksi dan perawatan perangkat lunak yang rendah.
 Menghasilkan perangkat lunak yang berkinerja tinggi, handal, dan tepat waktu.
 Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.
 Meningkatkan keakuratan, performance, dan efficiency produk secara keseluruhan dalam pengembangan.
 Menerapkan metodologi yang terdefinisi dengan baik untuk resolusi software.
 Melengkapi secara rasional konflik-konflik dan dokumentasi.
 Pengembangan sofware yang baik
 Ruang Lingkup RPL
o Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
o Software design mencakup proses penentuan arsitektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak.
o Software construction berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan.
o Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
o Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
o Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
o Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
o Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.
o Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
o Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.

3. Mitos Perangkat Lunak (PL)
 Mitos Manajemen
a. Buku yang lengkap dan banyak sebagai referensi telah cukup untuk pengembangan sebuah software
b. Disediakan komputer terbaru
c. Jika pengembangan terlambat, tambahkan programmer baru
 Mitos Pelanggan
a. Pernyataan umum sudah dapat digunakan untuk memulai pembuatan program
b. Kebutuhan proyek pengembangan software akan terus berubah, tapi perubahan dapat mudah diatasi
 Praktisi
a. Sekali menulis programàdapat membuatnya bekerjaà pekerjaan selesai.
b. Untuk menilai kualitas programà membuat sendiri program itu bisa berjalan
c. Hasil akhir dari sebuah proyek à hanyalah dapat berjalan atau tidaknya program

B. Software Process
 Definisi
Sekumpulan aktifitas yang saling terkait (koheren) untuk menspesifikasikan, design, implementasi dan pengujian sistem perangkat lunak.
 Atribut dan karakteristik proses
o Understandability
o Visibility
o Supportability
o Acceptability
o Reliability
o Maintainability
o Rapidity
 Kegiatan Yang Umum Bagi Semua Proses PL
a. Spesifikasi perangkat lunak, apa yang harus dilakukan oleh perangkat lunak dan batasan/kendala pengembangannya
b. Pengembangan (perancangan dan implementasi), proses memproduksi sistem perangkat lunak
c. Validasi perangkat lunak, pengujian perangkat lunak terhadap keinginan pengguna
d. Evolusi perangkat lunak, perubahan perangkat lunak berdasarkan perubahan keinginan.
 Ada 5 tingkat kematangan proses yang dikemukakan SEI (Software Engineering Institute), yaitu:
a. Level 1: Initial
Proses PL yang ditandai sebagai Ad Hoc dan kadang-kadang bersifat kacau (Chaotic)
b. Level 2: Repeatable
Proses manajemen proyek dasar dibangun untuk menelusuri biaya, jadwal dan fungsi
c. Level 3: Defined
Proses PL, baik untuk manajemen didokumentasikan, distandarkan dan diintegrasikan ke dalam proses PL
d. Level 4: Managed
Pengukuran detail terhadap proses PL dan kualitas produksi dikumpulkan dan dipahami secara kuantitatif
e. Level 5: Optimizing
Pertambahan proses yang terus-menerus dimungkinkan oleh umpan balik kuantitaif
Model Proses Perangkat Lunak
o Model Konvensional
1. Sekuensial Linear (waterfall)
• Disajikan dalam proses terpisah
• Bersifat sistematis
• Berurutan (mendefinisikan setiap langkah)
Kekurangan:
 Proyek nyata sering tidak sesuai dengan aliran tahapan.
 Pengembang sering melakukan penundaan yang tidak perlu, karena menunggu tim lain yang memiliki ketergantungan tinggi.
 Pelanggan harus sabar.
Kelebihan:
 Dokumentasi lengkap mencakup tiap tahapan.
 Mudah dipahami.
 Paling banyak digunakan.
2. RAD (Rapid Aplication Development )
• Menekankan siklus perkembangan sangat pendek
• Pendekatan kontruksi berbasis komponen
Kekurangan:
 Perlu SDM yang memadai untuk menciptakan jumlah tim RAD yang baik.
 RAD menuntut pengembang dan pelanggan punya komitmen dalam aktifitas untuk melengkapi sistem.
 Hasil tidak modular.
Kelebihan:
 Waktu penyelesaian proyek lebih cepat, ± 60-90 hari
o Model Evolusioner
1. Prototype
Menurut Howard (1997):
“Mendemonstrasikan bagaimana perangkat lunak bekerja dalam lingkungannya sebelum tahapan konstruksi aktual”.
Berfungsi sebagai mekanisme pengidentifikasian kebutuhan software.
Kekurangan:
 Pengembang sering membuat kompromi-kompromi implementasi untuk membuat prototype bekerja cepat.
 Pelanggan sering hanya melihat apa yang tampak dari software tanpa memperhatikan kualitas, sehingga ketika pengembang menawarkan informasi, pelanggan menolak.
Kelebihan:
 User dapat langsung melihat wujud PL yang akan dibangun meski sederhana
2. Model Pertambahan (incremental model)
Kekurangan:
 Timbul masalah terkait arsitektur sistem.
 Tiap fase iterasi bersifat kaku
Kelebihan:
 Lenih fleksibel
 Mudah diuji/di debug
 Resiko lebih rendah
3. Model Spiral
Menekankan pada putaran, dalam 1 putaran semua tahap dilakukan. Setelah 1 putaran selesai lalu dirilis kemudian diulang dari awal.
4. Model Rakitan Komponen (component-based development model)
5. Model Perkembangan Konkuren
o Model Formal
Metode ini berbasiskan pada transformasi spesifikasi secara matematik melalui representasi yang berbeda untuk suatu program yang dapat dieksekusi. Trasformasi menyatakan spesifikasi program Menggunakan pendekatan ‘Cleanroom’ untuk pengembangan PL.

0 komentar:

Template by : Kendhin x-template.blogspot.com